Äï������ådocutils.nodesîådocumentîìî)Åî}î(å rawsourceîå�îåchildrenî]îh�åsectionîìî)Åî}î(hhh]î(h�åtitleîìî)Åî}î(håDataONE Member Node Supportîh]îh�åTextîìîåDataONE Member Node SupportîÖîÅî}î(hhåparentîhhhåsourceîNålineîNubaå attributesî}î(åidsî]îåclassesî]îånamesî]îådupnamesî]îåbackrefsî]îuåtagnameîhhhhhhåY/var/lib/jenkins/jobs/metacat_beta/workspace/metacat/docs/user/metacat/source/dataone.rstîhKubh�å paragraphîìî)Åî}î(hXù��DataONE_ is a federation of data repositories that aims to improve interoperability among data repository software systems and advance the preservation of scientific data for future use. Metacat deployments can be configured to participate in DataONE_. This chapter describes the DataONE_ data federation, its architecture, and the way in which Metacat can be used to participate as a node in the DataONE system.îh]î(h�å referenceîìî)Åî}î(håDataONE_îh]îhåDataONEîÖîÅî}î(hhhh3ubah}î(h]îh!]îh#]îh%]îh']îånameîåDataONEîårefuriîåhttp://dataone.org/îuh)h1hh-åresolvedîKubhåÎ is a federation of data repositories that aims to improve interoperability among data repository software systems and advance the preservation of scientific data for future use. Metacat deployments can be configured to participate in îÖîÅî}î(håÎ is a federation of data repositories that aims to improve interoperability among data repository software systems and advance the preservation of scientific data for future use. Metacat deployments can be configured to participate in îhh-hhhNhNubh2)Åî}î(håDataONE_îh]îhåDataONEîÖîÅî}î(hhhhKubah}î(h]îh!]îh#]îh%]îh']îånameîåDataONEîhChDuh)h1hh-hEKubhå. This chapter describes the îÖîÅî}î(hå. This chapter describes the îhh-hhhNhNubh2)Åî}î(håDataONE_îh]îhåDataONEîÖîÅî}î(hhhh`ubah}î(h]îh!]îh#]îh%]îh']îånameîåDataONEîhChDuh)h1hh-hEKubhå} data federation, its architecture, and the way in which Metacat can be used to participate as a node in the DataONE system.îÖîÅî}î(hå} data federation, its architecture, and the way in which Metacat can be used to participate as a node in the DataONE system.îhh-hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKhhhhubh�åtargetîìî)Åî}î(hå .. _DataONE: http://dataone.org/îh]îh}î(h]îådataoneîah!]îh#]îådataoneîah%]îh']îhChDuh)h{hK hhhhhh*å referencedîKubh )Åî}î(hhh]î(h)Åî}î(håWhat is DataONE?îh]îhåWhat is DataONE?îÖîÅî}î(hhèhhçhhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhhähhhh*hK ubh,)Åî}î(hX&��The DataONE_ project is a collaboration among scientists, technologists, librarians, and social scientists to build a robust, interoperable, and sustainable system for preserving and accessing Earth observational data at national and global scales. Supported by the U.S. National Science Foundation, DataONE partners focus on technological, financial, and organizational sustainability approaches to building a distributed network of data repositories that are fully interoperable, even when those repositories use divergent underlying software and support different data and metadata content standards. DataONE defines a common web-service service programming interface that allows the main software components of the DataONE system to seamlessly communicate. The components of the DataONE system include:îh]î(håThe îÖîÅî}î(håThe îhhõhhhNhNubh2)Åî}î(håDataONE_îh]îhåDataONEîÖîÅî}î(hhhh§ubah}î(h]îh!]îh#]îh%]îh']îånameîåDataONEîhChDuh)h1hhõhEKubhX�� project is a collaboration among scientists, technologists, librarians, and social scientists to build a robust, interoperable, and sustainable system for preserving and accessing Earth observational data at national and global scales. Supported by the U.S. National Science Foundation, DataONE partners focus on technological, financial, and organizational sustainability approaches to building a distributed network of data repositories that are fully interoperable, even when those repositories use divergent underlying software and support different data and metadata content standards. DataONE defines a common web-service service programming interface that allows the main software components of the DataONE system to seamlessly communicate. The components of the DataONE system include:îÖîÅî}î(hX�� project is a collaboration among scientists, technologists, librarians, and social scientists to build a robust, interoperable, and sustainable system for preserving and accessing Earth observational data at national and global scales. Supported by the U.S. National Science Foundation, DataONE partners focus on technological, financial, and organizational sustainability approaches to building a distributed network of data repositories that are fully interoperable, even when those repositories use divergent underlying software and support different data and metadata content standards. DataONE defines a common web-service service programming interface that allows the main software components of the DataONE system to seamlessly communicate. The components of the DataONE system include:îhhõhhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKhhähhubh�åbullet_listîìî)Åî}î(hhh]î(h�å list_itemîìî)Åî}î(håDataONE Service Interfaceîh]îh,)Åî}î(hh»h]îhåDataONE Service InterfaceîÖîÅî}î(hh»hh ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKhh∆ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhh¡hhhh*hNubh≈)Åî}î(håMember Nodesîh]îh,)Åî}î(hhflh]îhåMember NodesîÖîÅî}î(hhflhh·ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKhh›ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhh¡hhhh*hNubh≈)Åî}î(håCoordinating Nodesîh]îh,)Åî}î(hhˆh]îhåCoordinating NodesîÖîÅî}î(hhˆhh¯ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKhhÙubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhh¡hhhh*hNubh≈)Åî}î(håInvestigator Toolkit îh]îh,)Åî}î(håInvestigator Toolkitîh]îhåInvestigator ToolkitîÖîÅî}î(hj��hj��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKhj��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhh¡hhhh*hNubeh}î(h]îh!]îh#]îh%]îh']îåbulletîå*îuh)høhh*hKhhähhubh,)Åî}î(hX“��Metacat implements the services needed to operate as a DataONE Member Node, as described below. The service interface then allows many different scientific software tools for data management, analysis, visualization and other parts of the scientific lifecycle to directly communicate with Metacat without being further specialized beyond the support needed for DataONE. This streamlines the process of writing scientific software both for servers and client tools.îh]îhX“��Metacat implements the services needed to operate as a DataONE Member Node, as described below. The service interface then allows many different scientific software tools for data management, analysis, visualization and other parts of the scientific lifecycle to directly communicate with Metacat without being further specialized beyond the support needed for DataONE. This streamlines the process of writing scientific software both for servers and client tools.îÖîÅî}î(hj-��hj+��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKhhähhubeh}î(h]îåwhat-is-dataoneîah!]îh#]îåwhat is dataone?îah%]îh']îuh)h hhhhhh*hK ubh )Åî}î(hhh]î(h)Åî}î(håThe DataONE Service Interfaceîh]îhåThe DataONE Service InterfaceîÖîÅî}î(hjF��hjD��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhjA��hhhh*hK&ubh,)Åî}î(hXl��DataONE acheives interoperability by defining a lightweight but powerful set of REST_ web services that can be implemented by various data management software systems to allow those systems to effectively communicate with one another, exchange data, metadata, and other scientific objects. This `DataONE Service Interface`_ is an open standard that defines the communication protocols and technical expectations for software components that wish to participate in the DataONE federation. This service interface is divided into `four distinct tiers`_, with the intention that any given software system may implement only those tiers that are relevant to their repository; for example, a data aggregator might only implement the Tier 1 interfaces that provide anonymous access to public data sets, while a complete data management system like Metacat implements all four tiers:îh]î(håPDataONE acheives interoperability by defining a lightweight but powerful set of îÖîÅî}î(håPDataONE acheives interoperability by defining a lightweight but powerful set of îhjR��hhhNhNubh2)Åî}î(håREST_îh]îhåRESTîÖîÅî}î(hhhj[��ubah}î(h]îh!]îh#]îh%]îh']îånameîåRESTîhCå<http://en.wikipedia.org/wiki/Representational_state_transferîuh)h1hjR��hEKubhå” web services that can be implemented by various data management software systems to allow those systems to effectively communicate with one another, exchange data, metadata, and other scientific objects. This îÖîÅî}î(hå” web services that can be implemented by various data management software systems to allow those systems to effectively communicate with one another, exchange data, metadata, and other scientific objects. This îhjR��hhhNhNubh2)Åî}î(hå`DataONE Service Interface`_îh]îhåDataONE Service InterfaceîÖîÅî}î(hhhjq��ubah}î(h]îh!]îh#]îh%]îh']îånameîåDataONE Service InterfaceîhCå8http://releases.dataone.org/online/d1-architecture-1.0.0îuh)h1hjR��hEKubhåà is an open standard that defines the communication protocols and technical expectations for software components that wish to participate in the DataONE federation. This service interface is divided into îÖîÅî}î(håà is an open standard that defines the communication protocols and technical expectations for software components that wish to participate in the DataONE federation. This service interface is divided into îhjR��hhhNhNubh2)Åî}î(hå`four distinct tiers`_îh]îhåfour distinct tiersîÖîÅî}î(hhhjá��ubah}î(h]îh!]îh#]îh%]îh']îånameîåfour distinct tiersîhCåHhttp://releases.dataone.org/online/d1-architecture-1.0.0/apis/index.htmlîuh)h1hjR��hEKubhXF��, with the intention that any given software system may implement only those tiers that are relevant to their repository; for example, a data aggregator might only implement the Tier 1 interfaces that provide anonymous access to public data sets, while a complete data management system like Metacat implements all four tiers:îÖîÅî}î(hXF��, with the intention that any given software system may implement only those tiers that are relevant to their repository; for example, a data aggregator might only implement the Tier 1 interfaces that provide anonymous access to public data sets, while a complete data management system like Metacat implements all four tiers:îhjR��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK'hjA��hhubh�åenumerated_listîìî)Åî}î(hhh]î(h≈)Åî}î(hå,**Tier 1:** Read-only, anonymous data accessîh]îh,)Åî}î(hj™��h]î(h�åstrongîìî)Åî}î(hå**Tier 1:**îh]îhåTier 1:îÖîÅî}î(hhhj±��ubah}î(h]îh!]îh#]îh%]îh']îuh)jØ��hj¨��ubhå! Read-only, anonymous data accessîÖîÅî}î(hå! Read-only, anonymous data accessîhj¨��ubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK3hj®��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj•��hhhh*hNubh≈)Åî}î(hå=**Tier 2:** Read-only, with authentication and access controlîh]îh,)Åî}î(hj“��h]î(j∞��)Åî}î(hå**Tier 2:**îh]îhåTier 2:îÖîÅî}î(hhhj◊��ubah}î(h]îh!]îh#]îh%]îh']îuh)jØ��hj‘��ubhå2 Read-only, with authentication and access controlîÖîÅî}î(hå2 Read-only, with authentication and access controlîhj‘��ubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK4hj–��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj•��hhhh*hNubh≈)Åî}î(hå**Tier 3:** Full Write accessîh]îh,)Åî}î(hj¯��h]î(j∞��)Åî}î(hå**Tier 3:**îh]îhåTier 3:îÖîÅî}î(hhhj˝��ubah}î(h]îh!]îh#]îh%]îh']îuh)jØ��hj˙��ubhå Full Write accessîÖîÅî}î(hå Full Write accessîhj˙��ubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK5hjˆ��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj•��hhhh*hNubh≈)Åî}î(hå(**Tier 4:** Replication target services îh]îh,)Åî}î(hå'**Tier 4:** Replication target servicesîh]î(j∞��)Åî}î(hå**Tier 4:**îh]îhåTier 4:îÖîÅî}î(hhhj$��ubah}î(h]îh!]îh#]îh%]îh']îuh)jØ��hj ��ubhå Replication target servicesîÖîÅî}î(hå Replication target servicesîhj ��ubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK6hj��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj•��hhhh*hNubeh}î(h]îh!]îh#]îh%]îh']îåenumtypeîåarabicîåprefixîhåsuffixîå.îuh)j£��hjA��hhhh*hK3ubh|)Åî}î(håF.. _REST: http://en.wikipedia.org/wiki/Representational_state_transferîh]îh}î(h]îårestîah!]îh#]îårestîah%]îh']îhCjk��uh)h{hK8hjA��hhhh*hâKubh|)Åî}î(håW.. _DataONE Service Interface: http://releases.dataone.org/online/d1-architecture-1.0.0îh]îh}î(h]îådataone-service-interfaceîah!]îh#]îådataone service interfaceîah%]îh']îhCjÅ��uh)h{hK:hjA��hhhh*hâKubh|)Åî}î(håa.. _four distinct tiers: http://releases.dataone.org/online/d1-architecture-1.0.0/apis/index.htmlîh]îh}î(h]îåfour-distinct-tiersîah!]îh#]îåfour distinct tiersîah%]îh']îhCjó��uh)h{hK<hjA��hhhh*hâKubeh}î(h]îåthe-dataone-service-interfaceîah!]îh#]îåthe dataone service interfaceîah%]îh']îuh)h hhhhhh*hK&ubh )Åî}î(hhh]î(h)Åî}î(håMember Nodesîh]îhåMember NodesîÖîÅî}î(hj��hj}��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhjz��hhhh*hK?ubh,)Åî}î(hX(��In DataONE, Member Nodes represent the core of the network, in that they represent particular scientific communities, manage and preserve their data and metadata, and provide tools to their community for contributing, managing, and accessing data. DataONE provides a standard way for these individual repositories to interact, and helps to coordinate among the Member Nodes in the federation. This allows Member Nodes to provide services to each other, such as replication of data for backup and failover. To be a Member Node, a repository must implement the Member Node service interface, and then register with DataONE. Metacat provides this implementation automatically, and provides an easy configuration option to register a Metacat instance as a DataONE Member Node (see configuration section below). If you are deploying a Metacat instance, it is relatively simple to become a Member Node, but keep in mind that DataONE is aiming for longevity and preservation, and so is selecting for nodes that have long-term data preservation as part of their mission.îh]îhX(��In DataONE, Member Nodes represent the core of the network, in that they represent particular scientific communities, manage and preserve their data and metadata, and provide tools to their community for contributing, managing, and accessing data. DataONE provides a standard way for these individual repositories to interact, and helps to coordinate among the Member Nodes in the federation. This allows Member Nodes to provide services to each other, such as replication of data for backup and failover. To be a Member Node, a repository must implement the Member Node service interface, and then register with DataONE. Metacat provides this implementation automatically, and provides an easy configuration option to register a Metacat instance as a DataONE Member Node (see configuration section below). If you are deploying a Metacat instance, it is relatively simple to become a Member Node, but keep in mind that DataONE is aiming for longevity and preservation, and so is selecting for nodes that have long-term data preservation as part of their mission.îÖîÅî}î(hjç��hjã��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK@hjz��hhubeh}î(h]îåmember-nodesîah!]îh#]îåmember nodesîah%]îh']îuh)h hhhhhh*hK?ubh )Åî}î(hhh]î(h)Åî}î(håCoordinating Nodesîh]îhåCoordinating NodesîÖîÅî}î(hj¶��hj§��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhj°��hhhh*hKOubh,)Åî}î(hå˙The DataONE Coordinating Nodes provide a set of services to Member Nodes that allow Member Nodes to easily interact with one another and to provide a unified view of the whole DataONE Federation. The main services provided by Coordinating Nodes are:îh]îhå˙The DataONE Coordinating Nodes provide a set of services to Member Nodes that allow Member Nodes to easily interact with one another and to provide a unified view of the whole DataONE Federation. The main services provided by Coordinating Nodes are:îÖîÅî}î(hj¥��hj≤��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKPhj°��hhubh¿)Åî}î(hhh]î(h≈)Åî}î(håFGlobal search index for all metadata and web portal for data discoveryîh]îh,)Åî}î(hj≈��h]îhåFGlobal search index for all metadata and web portal for data discoveryîÖîÅî}î(hj≈��hj«��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKUhj√��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj¿��hhhh*hNubh≈)Åî}î(håOResolution service to map unique identifiers to the Member Nodes that hold dataîh]îh,)Åî}î(hj‹��h]îhåOResolution service to map unique identifiers to the Member Nodes that hold dataîÖîÅî}î(hj‹��hjfi��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKVhj⁄��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj¿��hhhh*hNubh≈)Åî}î(håOAuthentication against a shared set of accounts based on CILogon_ and InCommon_îh]îh,)Åî}î(hjÛ��h]î(hå9Authentication against a shared set of accounts based on îÖîÅî}î(hå9Authentication against a shared set of accounts based on îhjı��ubh2)Åî}î(håCILogon_îh]îhåCILogonîÖîÅî}î(hhhj˝��ubah}î(h]îh!]îh#]îh%]îh']îånameîåCILogonîhCåhttp://www.cilogon.orgîuh)h1hjı��hEKubhå and îÖîÅî}î(hå and îhjı��ubh2)Åî}î(hå InCommon_îh]îhåInCommonîÖîÅî}î(hhhj��ubah}î(h]îh!]îh#]îh%]îh']îånameîåInCommonîhCåhttp://incommon.orgîuh)h1hjı��hEKubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKWhjÒ��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj¿��hhhh*hNubh≈)Åî}î(håhReplication management services to reliably replicate data according to policies set by the Member Nodesîh]îh,)Åî}î(håhReplication management services to reliably replicate data according to policies set by the Member Nodesîh]îhåhReplication management services to reliably replicate data according to policies set by the Member NodesîÖîÅî}î(hj6��hj4��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKXhj0��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj¿��hhhh*hNubh≈)Åî}î(hå=Fixity checking to ensure that preserved objects remain validîh]îh,)Åî}î(hjJ��h]îhå=Fixity checking to ensure that preserved objects remain validîÖîÅî}î(hjJ��hjL��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKZhjH��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj¿��hhhh*hNubh≈)Åî}î(hå'Member Node registration and managementîh]îh,)Åî}î(hja��h]îhå'Member Node registration and managementîÖîÅî}î(hja��hjc��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK[hj_��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj¿��hhhh*hNubh≈)Åî}î(hå?Aggregated logging for data access across the whole federation îh]îh,)Åî}î(hå>Aggregated logging for data access across the whole federationîh]îhå>Aggregated logging for data access across the whole federationîÖîÅî}î(hj|��hjz��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK\hjv��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj¿��hhhh*hNubeh}î(h]îh!]îh#]îh%]îh']îj)��j*��uh)høhh*hKUhj°��hhubh,)Åî}î(hX§��Three geographically distributed Coordinating Nodes replicate these coordinating services at UC Santa Barbara, the University of New Mexico, and the Oak Ridge Campus. Coordinating Nodes are set up in a fully redundant manner, such that any of the coordinating nodes can be offline and the others will continue to provide availability of the services without interruption. The DataONE services expose their services at::îh]îhX£��Three geographically distributed Coordinating Nodes replicate these coordinating services at UC Santa Barbara, the University of New Mexico, and the Oak Ridge Campus. Coordinating Nodes are set up in a fully redundant manner, such that any of the coordinating nodes can be offline and the others will continue to provide availability of the services without interruption. The DataONE services expose their services at:îÖîÅî}î(hX£��Three geographically distributed Coordinating Nodes replicate these coordinating services at UC Santa Barbara, the University of New Mexico, and the Oak Ridge Campus. Coordinating Nodes are set up in a fully redundant manner, such that any of the coordinating nodes can be offline and the others will continue to provide availability of the services without interruption. The DataONE services expose their services at:îhjî��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK^hj°��hhubh�å literal_blockîìî)Åî}î(håhttps://cn.dataone.org/cnîh]îhåhttps://cn.dataone.org/cnîÖîÅî}î(hhhj•��ubah}î(h]îh!]îh#]îh%]îh']îå xml:spaceîåpreserveîuh)j£��hKdhj°��hhhh*ubh,)Åî}î(hå.And the DataONE search portal is available at:îh]îhå.And the DataONE search portal is available at:îÖîÅî}î(hj∑��hjµ��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKfhj°��hhubh�åblock_quoteîìî)Åî}î(hhh]îh,)Åî}î(håhttps://search.dataone.org/îh]îh2)Åî}î(hj ��h]îhåhttps://search.dataone.org/îÖîÅî}î(hhhjÃ��ubah}î(h]îh!]îh#]îh%]îh']îårefuriîj ��uh)h1hj»��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKhhj≈��ubah}î(h]îh!]îh#]îh%]îh']îuh)j√��hj°��hhhh*hNubh|)Åî}î(hå#.. _CILogon: http://www.cilogon.orgîh]îh}î(h]îåcilogonîah!]îh#]îåcilogonîah%]îh']îhCj ��uh)h{hKjhj°��hhhh*hâKubh|)Åî}î(hå!.. _InCommon: http://incommon.orgîh]îh}î(h]îåincommonîah!]îh#]îåincommonîah%]îh']îhCj#��uh)h{hKlhj°��hhhh*hâKubeh}î(h]îåcoordinating-nodesîah!]îh#]îåcoordinating nodesîah%]îh']îuh)h hhhhhh*hKOubh )Åî}î(hhh]î(h)Åî}î(håInvestigator Toolkitîh]îhåInvestigator ToolkitîÖîÅî}î(hj��hj ��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhj��hhhh*hKoubh,)Åî}î(hXó��In order to provide scientists with convenient access to the data and metadata in DataONE, the third component represents a library of software tools that have been adapted to work with DataONE via the service interface and can be used to discover, manage, analyze, and visualize data in DataONE. For example, DataONE has released metadata editors (e.g., Morpho), data search tools (e.g., Mercury), data access tools (e.g., ONEDrive), and data analysis tools (e.g., R) that all know how to interact with DataONE Member Nodes and Coordinating Nodes. Consequently, scientists will be able to access data from any DataONE Member Node, such as a Metacat node, directly from within the R environment. In addition, software tools that are written to work with one Member Node should also work with others, thereby greatly increasing the efficiency of creating an entire toolkit of software that is useful to investigators.îh]îhXó��In order to provide scientists with convenient access to the data and metadata in DataONE, the third component represents a library of software tools that have been adapted to work with DataONE via the service interface and can be used to discover, manage, analyze, and visualize data in DataONE. For example, DataONE has released metadata editors (e.g., Morpho), data search tools (e.g., Mercury), data access tools (e.g., ONEDrive), and data analysis tools (e.g., R) that all know how to interact with DataONE Member Nodes and Coordinating Nodes. Consequently, scientists will be able to access data from any DataONE Member Node, such as a Metacat node, directly from within the R environment. In addition, software tools that are written to work with one Member Node should also work with others, thereby greatly increasing the efficiency of creating an entire toolkit of software that is useful to investigators.îÖîÅî}î(hj��hj��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKphj��hhubh,)Åî}î(hX†��Because DataONE services are REST web services, software written in any programming language can be adapted to interact with DataONE. In addition, to ease the process of adapting tools to work with DataONE, libraries are provided for common programming languages such as Java (d1-libclient-java) and Python (d1_libclient-python) are provided that allow simple function calls to be used to access any DataONE service.îh]îhX†��Because DataONE services are REST web services, software written in any programming language can be adapted to interact with DataONE. In addition, to ease the process of adapting tools to work with DataONE, libraries are provided for common programming languages such as Java (d1-libclient-java) and Python (d1_libclient-python) are provided that allow simple function calls to be used to access any DataONE service.îÖîÅî}î(hj'��hj%��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK}hj��hhubeh}î(h]îåinvestigator-toolkitîah!]îh#]îåinvestigator toolkitîah%]îh']îuh)h hhhhhh*hKoubh )Åî}î(hhh]î(h)Åî}î(hå$Configuring Metacat as a Member Nodeîh]îhå$Configuring Metacat as a Member NodeîÖîÅî}î(hj@��hj>��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhj;��hhhh*hKÖubh,)Åî}î(hå≠Configuring Metacat as a DataONE Member Node is accomplished with the standard Metacat Administrative configuration utility. To access the utility, visit the following URL::îh]îhå¨Configuring Metacat as a DataONE Member Node is accomplished with the standard Metacat Administrative configuration utility. To access the utility, visit the following URL:îÖîÅî}î(hå¨Configuring Metacat as a DataONE Member Node is accomplished with the standard Metacat Administrative configuration utility. To access the utility, visit the following URL:îhjL��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKÜhj;��hhubj§��)Åî}î(hå%http://<yourhost.org>/<context>/adminîh]îhå%http://<yourhost.org>/<context>/adminîÖîÅî}î(hhhj[��ubah}î(h]îh!]îh#]îh%]îh']îj≥��j¥��uh)j£��hKähj;��hhhh*ubh,)Åî}î(hX��where ``<yourhost.org>`` represents the hostname of your webserver running metacat, and ``<context>`` is the name of the web context in which Metacat was installed. Once at the administrative utility, click on the DataONE configuration link, which should show the following screen:îh]î(håwhere îÖîÅî}î(håwhere îhji��hhhNhNubh�åliteralîìî)Åî}î(hå``<yourhost.org>``îh]îhå<yourhost.org>îÖîÅî}î(hhhjt��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hji��ubhå@ represents the hostname of your webserver running metacat, and îÖîÅî}î(hå@ represents the hostname of your webserver running metacat, and îhji��hhhNhNubjs��)Åî}î(hå ``<context>``îh]îhå <context>îÖîÅî}î(hhhjá��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hji��ubhå¥ is the name of the web context in which Metacat was installed. Once at the administrative utility, click on the DataONE configuration link, which should show the following screen:îÖîÅî}î(hå¥ is the name of the web context in which Metacat was installed. Once at the administrative utility, click on the DataONE configuration link, which should show the following screen:îhji��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKåhj;��hhubh�åfigureîìî)Åî}î(hhh]î(h�åimageîìî)Åî}î(håÜ.. figure:: images/screenshots/image068.png :align: center The configuration screen for configuring Metacat as a DataONE node. îh]îh}î(h]îh!]îh#]îh%]îh']îåuriîåimages/screenshots/image068.pngîå candidatesî}îj*��j≤��suh)j•��hj¢��hh*hKîubh�åcaptionîìî)Åî}î(håCThe configuration screen for configuring Metacat as a DataONE node.îh]îhåCThe configuration screen for configuring Metacat as a DataONE node.îÖîÅî}î(hjπ��hj∑��ubah}î(h]îh!]îh#]îh%]îh']îuh)jµ��hh*hKîhj¢��ubeh}î(h]îåid1îah!]îh#]îh%]îh']îåalignîåcenterîuh)j†��hKîhj;��hhhh*ubh,)Åî}î(hXí��To configure Metacat as a node in the DataONE network, configure the properties shown in the figure above. The Node Name should be a short name for the node that can be used in user interface displays that list the node. For example, one node in DataONE is the 'Knowledge Network for Biocomplexity'. Also provide a brief sentence or two describing the node, including its intended scope and purpose.îh]îhXñ��To configure Metacat as a node in the DataONE network, configure the properties shown in the figure above. The Node Name should be a short name for the node that can be used in user interface displays that list the node. For example, one node in DataONE is the ‚ÄòKnowledge Network for Biocomplexity‚Äô. Also provide a brief sentence or two describing the node, including its intended scope and purpose.îÖîÅî}î(hj–��hjŒ��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKñhj;��hhubh,)Åî}î(hXÃ��The Node Identifier field is a unique identifier assigned by DataONE to identify this node even when the node changes physical locations over time. After Metacat registers with the DataONE Coordinating Nodes (when you click 'Register' at the bottom of this form), the Node Identifier should not be changed. **It is critical that you not change the Node Identifier after registration**, as that will break the connection with the DataONE network. Changing this field should only happen in the rare case in which a new Metacat instance is being established to act as the provider for an existing DataONE Member Node, in which case the field can be edited to set it to the value of a valid, existing Node Identifier.îh]î(hX9��The Node Identifier field is a unique identifier assigned by DataONE to identify this node even when the node changes physical locations over time. After Metacat registers with the DataONE Coordinating Nodes (when you click ‚ÄòRegister‚Äô at the bottom of this form), the Node Identifier should not be changed. îÖîÅî}î(hX5��The Node Identifier field is a unique identifier assigned by DataONE to identify this node even when the node changes physical locations over time. After Metacat registers with the DataONE Coordinating Nodes (when you click 'Register' at the bottom of this form), the Node Identifier should not be changed. îhj‹��hhhNhNubj∞��)Åî}î(håM**It is critical that you not change the Node Identifier after registration**îh]îhåIIt is critical that you not change the Node Identifier after registrationîÖîÅî}î(hhhjÂ��ubah}î(h]îh!]îh#]îh%]îh']îuh)jØ��hj‹��ubhXJ��, as that will break the connection with the DataONE network. Changing this field should only happen in the rare case in which a new Metacat instance is being established to act as the provider for an existing DataONE Member Node, in which case the field can be edited to set it to the value of a valid, existing Node Identifier.îÖîÅî}î(hXJ��, as that will break the connection with the DataONE network. Changing this field should only happen in the rare case in which a new Metacat instance is being established to act as the provider for an existing DataONE Member Node, in which case the field can be edited to set it to the value of a valid, existing Node Identifier.îhj‹��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKúhj;��hhubh,)Åî}î(hX"��The Node Subject and Node Certificate Path are linked fields that are critical for proper operation of the node. To act as a Member Node in DataONE, you must obtain an X.509 certificate that can be used to identify this node and allow it to securely communicate using SSL with other nodes and client applications. This certificate can be obtained from the DataONE Certificate Authority. Once you have the certificate in hand, use a tool such as ``openssl`` to determine the exact subject distinguished name in the certificate, and use that to set the Node Subject field. Set the Node Certificate Path to the location on the system in which you stored the certificate file. Be sure to protect the certificate file, as it contains the private key that is used to authenticate this node within DataONE.îh]î(hXø��The Node Subject and Node Certificate Path are linked fields that are critical for proper operation of the node. To act as a Member Node in DataONE, you must obtain an X.509 certificate that can be used to identify this node and allow it to securely communicate using SSL with other nodes and client applications. This certificate can be obtained from the DataONE Certificate Authority. Once you have the certificate in hand, use a tool such as îÖîÅî}î(hXø��The Node Subject and Node Certificate Path are linked fields that are critical for proper operation of the node. To act as a Member Node in DataONE, you must obtain an X.509 certificate that can be used to identify this node and allow it to securely communicate using SSL with other nodes and client applications. This certificate can be obtained from the DataONE Certificate Authority. Once you have the certificate in hand, use a tool such as îhj˛��hhhNhNubjs��)Åî}î(hå``openssl``îh]îhåopensslîÖîÅî}î(hhhj��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj˛��ubhXX�� to determine the exact subject distinguished name in the certificate, and use that to set the Node Subject field. Set the Node Certificate Path to the location on the system in which you stored the certificate file. Be sure to protect the certificate file, as it contains the private key that is used to authenticate this node within DataONE.îÖîÅî}î(hXX�� to determine the exact subject distinguished name in the certificate, and use that to set the Node Subject field. Set the Node Certificate Path to the location on the system in which you stored the certificate file. Be sure to protect the certificate file, as it contains the private key that is used to authenticate this node within DataONE.îhj˛��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK¶hj;��hhubh�ånoteîìî)Åî}î(hå¥For Tier 2 deployments and above, the Metacat Member Node must have Apache configured to request client certificates. Detailed instructions are included at the end of this chapter.îh]îh,)Åî}î(hå¥For Tier 2 deployments and above, the Metacat Member Node must have Apache configured to request client certificates. Detailed instructions are included at the end of this chapter.îh]îhå¥For Tier 2 deployments and above, the Metacat Member Node must have Apache configured to request client certificates. Detailed instructions are included at the end of this chapter.îÖîÅî}î(hj(��hj&��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK¥hj"��ubah}î(h]îh!]îh#]îh%]îh']îuh)j ��hj;��hhhh*hNubh,)Åî}î(hX+��The ``Enable DataONE Services`` checkbox allows the administrator to decide whether to turn on synchronization with the DataONE network. When this box is unchecked, the DataONE Coordinating Nodes will not attempt to synchronize at all, but when checked, then DataONE will periodically contact the node to synchronize all metadata content. To be part of the DataONE network, this box must be checked as that allows DataONE to receive a copy of the metadata associated with each object in the Metacat system. The switch is provided for those rare cases when a node needs to be disconnected from DataONE for maintenance or service outages. When the box is checked, DataONE contacts the node using the schedule provided in the ``Synchronization Schedule`` fields. The example in the dialog above has synchronization occurring once every third minutes at the 10 second mark of those minutes. The syntax for these schedules follows the Quartz Crontab Entry syntax, which provides for many flexible schedule configurations. If the administrator desires a less frequent schedule, such as daily, that can be configured by changing the ``*`` in the ``Hours`` field to be a concrete hour (such as ``11``) and the ``Minutes`` field to a concrete value like``15``, which would change the schedule to synchronize at 11:15 am daily.îh]î(håThe îÖîÅî}î(håThe îhj:��hhhNhNubjs��)Åî}î(hå``Enable DataONE Services``îh]îhåEnable DataONE ServicesîÖîÅî}î(hhhjC��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj:��ubhX∑�� checkbox allows the administrator to decide whether to turn on synchronization with the DataONE network. When this box is unchecked, the DataONE Coordinating Nodes will not attempt to synchronize at all, but when checked, then DataONE will periodically contact the node to synchronize all metadata content. To be part of the DataONE network, this box must be checked as that allows DataONE to receive a copy of the metadata associated with each object in the Metacat system. The switch is provided for those rare cases when a node needs to be disconnected from DataONE for maintenance or service outages. When the box is checked, DataONE contacts the node using the schedule provided in the îÖîÅî}î(hX∑�� checkbox allows the administrator to decide whether to turn on synchronization with the DataONE network. When this box is unchecked, the DataONE Coordinating Nodes will not attempt to synchronize at all, but when checked, then DataONE will periodically contact the node to synchronize all metadata content. To be part of the DataONE network, this box must be checked as that allows DataONE to receive a copy of the metadata associated with each object in the Metacat system. The switch is provided for those rare cases when a node needs to be disconnected from DataONE for maintenance or service outages. When the box is checked, DataONE contacts the node using the schedule provided in the îhj:��hhhNhNubjs��)Åî}î(hå``Synchronization Schedule``îh]îhåSynchronization ScheduleîÖîÅî}î(hhhjV��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj:��ubhXz�� fields. The example in the dialog above has synchronization occurring once every third minutes at the 10 second mark of those minutes. The syntax for these schedules follows the Quartz Crontab Entry syntax, which provides for many flexible schedule configurations. If the administrator desires a less frequent schedule, such as daily, that can be configured by changing the îÖîÅî}î(hXz�� fields. The example in the dialog above has synchronization occurring once every third minutes at the 10 second mark of those minutes. The syntax for these schedules follows the Quartz Crontab Entry syntax, which provides for many flexible schedule configurations. If the administrator desires a less frequent schedule, such as daily, that can be configured by changing the îhj:��hhhNhNubjs��)Åî}î(hå``*``îh]îhå*îÖîÅî}î(hhhji��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj:��ubhå in the îÖîÅî}î(hå in the îhj:��hhhNhNubjs��)Åî}î(hå ``Hours``îh]îhåHoursîÖîÅî}î(hhhj|��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj:��ubhå& field to be a concrete hour (such as îÖîÅî}î(hå& field to be a concrete hour (such as îhj:��hhhNhNubjs��)Åî}î(hå``11``îh]îhå11îÖîÅî}î(hhhjè��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj:��ubhå ) and the îÖîÅî}î(hå ) and the îhj:��hhhNhNubjs��)Åî}î(hå``Minutes``îh]îhåMinutesîÖîÅî}î(hhhj¢��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj:��ubhåh field to a concrete value like``15``, which would change the schedule to synchronize at 11:15 am daily.îÖîÅî}î(håh field to a concrete value like``15``, which would change the schedule to synchronize at 11:15 am daily.îhj:��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK∑hj;��hhubh,)Åî}î(hXN��The Replication section is used to configure replication options for the node overall and for objects stored in Metacat. The ``Accept and Store Replicas`` checkbox is used to indicate that the administrator of this node is willing to allow replica data and metadata from other Member Nodes to be stored on this node. We encourage people to allow replication to their nodes, as this increases the scalability and flexibility of the network overall. The three "Default" fields set the default values for the replication policies for data and metadata on this node that are generated when System Metadata is not available for an object (such as when it originates from a client that is not DataONE compliant). The ``Default Number of Replicas`` determines how many replica copies of the object should be stored on other Member Nodes. A value of 0 or less indicates that no replicas should be stored. In addition, you can specify a list of nodes that are either preferred for use when choosing replica nodes, or that are blocked from use as replica nodes. This allows Member Nodes to set up bidirectional agreements with partner nodes to replicate data across their sites. The values for both ``Default Preferred Nodes`` and ``Default Blocked Nodes`` is a comma-separated list of NodeReference identifiers that were assigned to the target nodes by DataONE.îh]î(hå~The Replication section is used to configure replication options for the node overall and for objects stored in Metacat. The îÖîÅî}î(hå~The Replication section is used to configure replication options for the node overall and for objects stored in Metacat. The îhjª��hhhNhNubjs��)Åî}î(hå``Accept and Store Replicas``îh]îhåAccept and Store ReplicasîÖîÅî}î(hhhjƒ��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjª��ubhX4�� checkbox is used to indicate that the administrator of this node is willing to allow replica data and metadata from other Member Nodes to be stored on this node. We encourage people to allow replication to their nodes, as this increases the scalability and flexibility of the network overall. The three ‚ÄúDefault‚Äù fields set the default values for the replication policies for data and metadata on this node that are generated when System Metadata is not available for an object (such as when it originates from a client that is not DataONE compliant). The îÖîÅî}î(hX0�� checkbox is used to indicate that the administrator of this node is willing to allow replica data and metadata from other Member Nodes to be stored on this node. We encourage people to allow replication to their nodes, as this increases the scalability and flexibility of the network overall. The three "Default" fields set the default values for the replication policies for data and metadata on this node that are generated when System Metadata is not available for an object (such as when it originates from a client that is not DataONE compliant). The îhjª��hhhNhNubjs��)Åî}î(hå``Default Number of Replicas``îh]îhåDefault Number of ReplicasîÖîÅî}î(hhhj◊��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjª��ubhX¬�� determines how many replica copies of the object should be stored on other Member Nodes. A value of 0 or less indicates that no replicas should be stored. In addition, you can specify a list of nodes that are either preferred for use when choosing replica nodes, or that are blocked from use as replica nodes. This allows Member Nodes to set up bidirectional agreements with partner nodes to replicate data across their sites. The values for both îÖîÅî}î(hX¬�� determines how many replica copies of the object should be stored on other Member Nodes. A value of 0 or less indicates that no replicas should be stored. In addition, you can specify a list of nodes that are either preferred for use when choosing replica nodes, or that are blocked from use as replica nodes. This allows Member Nodes to set up bidirectional agreements with partner nodes to replicate data across their sites. The values for both îhjª��hhhNhNubjs��)Åî}î(hå``Default Preferred Nodes``îh]îhåDefault Preferred NodesîÖîÅî}î(hhhjÍ��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjª��ubhå and îÖîÅî}î(hå and îhjª��hhhNhNubjs��)Åî}î(hå``Default Blocked Nodes``îh]îhåDefault Blocked NodesîÖîÅî}î(hhhj˝��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjª��ubhåj is a comma-separated list of NodeReference identifiers that were assigned to the target nodes by DataONE.îÖîÅî}î(håj is a comma-separated list of NodeReference identifiers that were assigned to the target nodes by DataONE.îhjª��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK»hj;��hhubh,)Åî}î(hX¬��Once these parameters have been properly set, us the ``Register`` button to request to register with the DataONE Coordinating Node. This will generate a registration document describing this Metacat instance and send it to the Coordinating Node registration service. At that point, all that remains is to wait for the DataONE administrators to approve the node registration. Details of the approval process can be found on the `DataONE web site`_.îh]î(hå5Once these parameters have been properly set, us the îÖîÅî}î(hå5Once these parameters have been properly set, us the îhj��hhhNhNubjs��)Åî}î(hå``Register``îh]îhåRegisterîÖîÅî}î(hhhj��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj��ubhXm�� button to request to register with the DataONE Coordinating Node. This will generate a registration document describing this Metacat instance and send it to the Coordinating Node registration service. At that point, all that remains is to wait for the DataONE administrators to approve the node registration. Details of the approval process can be found on the îÖîÅî}î(hXm�� button to request to register with the DataONE Coordinating Node. This will generate a registration document describing this Metacat instance and send it to the Coordinating Node registration service. At that point, all that remains is to wait for the DataONE administrators to approve the node registration. Details of the approval process can be found on the îhj��hhhNhNubh2)Åî}î(hå`DataONE web site`_îh]îhåDataONE web siteîÖîÅî}î(hhhj2��ubah}î(h]îh!]îh#]îh%]îh']îånameîåDataONE web siteîhCåhttps://dataone.orgîuh)h1hj��hEKubhå.îÖîÅî}î(hjM��hj��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hK⁄hj;��hhubh|)Åî}î(hå).. _DataONE web site: https://dataone.orgîh]îh}î(h]îådataone-web-siteîah!]îh#]îådataone web siteîah%]îh']îhCjB��uh)h{hK·hj;��hhhh*hâKubeh}î(h]îå$configuring-metacat-as-a-member-nodeîah!]îh#]îå$configuring metacat as a member nodeîah%]îh']îuh)h hhhhhh*hKÖubh )Åî}î(hhh]î(h)Åî}î(håAccess Control Policiesîh]îhåAccess Control PoliciesîÖîÅî}î(hjf��hjd��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhja��hhhh*hK‰ubh,)Åî}î(hX}��Metacat has supported fine grained access control for objects in the system since its inception. DataONE has devised a simple but effective access control system that is compatible with the prior system in Metacat. For each object in the DataONE system (including data objects, scientific metadata objects, and resource maps), a SystemMetadata_ document describes the critical metadata needed to manage that object in the system. This metadata includes a ``RightsHolder`` field and an ``AuthoritativeMemberNode`` field that are used to list the people and node that have ultimate control over the disposition of the object. In addition, a separate AccessPolicy_ can be included in the ``SystemMetadata`` for the object. This ``AccessPolicy`` consists of a set of rules that grant additional permissions to other people, groups, and systems in DataONE. For example, for one data file, two users (Alice and Bob) may be able make changes to the object, and the general public may be allowed to read the object. In the absence of explicit rules extending these permissions, Metacat enforces the rule that only the ``RightsHolder`` and ``AuthoritativeMemberNode`` have rights to the object, and that the Coordinating Node can manage ``SystemMetadata`` for the object. An example AccessPolicy that might be submitted with a dataset (giving Alice and Bob permission to read and write the object) follows:îh]î(hXK��Metacat has supported fine grained access control for objects in the system since its inception. DataONE has devised a simple but effective access control system that is compatible with the prior system in Metacat. For each object in the DataONE system (including data objects, scientific metadata objects, and resource maps), a îÖîÅî}î(hXK��Metacat has supported fine grained access control for objects in the system since its inception. DataONE has devised a simple but effective access control system that is compatible with the prior system in Metacat. For each object in the DataONE system (including data objects, scientific metadata objects, and resource maps), a îhjr��hhhNhNubh2)Åî}î(håSystemMetadata_îh]îhåSystemMetadataîÖîÅî}î(hhhj{��ubah}î(h]îh!]îh#]îh%]îh']îånameîåSystemMetadataîhCå[http://releases.dataone.org/online/d1-architecture-1.0.0/apis/Types.html#Types.AccessPolicyîuh)h1hjr��hEKubhåp document describes the critical metadata needed to manage that object in the system. This metadata includes a îÖîÅî}î(håp document describes the critical metadata needed to manage that object in the system. This metadata includes a îhjr��hhhNhNubjs��)Åî}î(hå``RightsHolder``îh]îhåRightsHolderîÖîÅî}î(hhhjë��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjr��ubhå field and an îÖîÅî}î(hå field and an îhjr��hhhNhNubjs��)Åî}î(hå``AuthoritativeMemberNode``îh]îhåAuthoritativeMemberNodeîÖîÅî}î(hhhj§��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjr��ubhåâ field that are used to list the people and node that have ultimate control over the disposition of the object. In addition, a separate îÖîÅî}î(håâ field that are used to list the people and node that have ultimate control over the disposition of the object. In addition, a separate îhjr��hhhNhNubh2)Åî}î(hå AccessPolicy_îh]îhåAccessPolicyîÖîÅî}î(hhhj∑��ubah}î(h]îh!]îh#]îh%]îh']îånameîåAccessPolicyîhCå[http://releases.dataone.org/online/d1-architecture-1.0.0/apis/Types.html#Types.AccessPolicyîuh)h1hjr��hEKubhå can be included in the îÖîÅî}î(hå can be included in the îhjr��hhhNhNubjs��)Åî}î(hå``SystemMetadata``îh]îhåSystemMetadataîÖîÅî}î(hhhjÕ��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjr��ubhå for the object. This îÖîÅî}î(hå for the object. This îhjr��hhhNhNubjs��)Åî}î(hå``AccessPolicy``îh]îhåAccessPolicyîÖîÅî}î(hhhj‡��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjr��ubhXs�� consists of a set of rules that grant additional permissions to other people, groups, and systems in DataONE. For example, for one data file, two users (Alice and Bob) may be able make changes to the object, and the general public may be allowed to read the object. In the absence of explicit rules extending these permissions, Metacat enforces the rule that only the îÖîÅî}î(hXs�� consists of a set of rules that grant additional permissions to other people, groups, and systems in DataONE. For example, for one data file, two users (Alice and Bob) may be able make changes to the object, and the general public may be allowed to read the object. In the absence of explicit rules extending these permissions, Metacat enforces the rule that only the îhjr��hhhNhNubjs��)Åî}î(hå``RightsHolder``îh]îhåRightsHolderîÖîÅî}î(hhhjÛ��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjr��ubhå and îÖîÅî}î(hå and îhjr��hhhNhNubjs��)Åî}î(hå``AuthoritativeMemberNode``îh]îhåAuthoritativeMemberNodeîÖîÅî}î(hhhj��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjr��ubhåF have rights to the object, and that the Coordinating Node can manage îÖîÅî}î(håF have rights to the object, and that the Coordinating Node can manage îhjr��hhhNhNubjs��)Åî}î(hå``SystemMetadata``îh]îhåSystemMetadataîÖîÅî}î(hhhj��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjr��ubhåò for the object. An example AccessPolicy that might be submitted with a dataset (giving Alice and Bob permission to read and write the object) follows:îÖîÅî}î(håò for the object. An example AccessPolicy that might be submitted with a dataset (giving Alice and Bob permission to read and write the object) follows:îhjr��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hKÂhja��hhubj§��)Åî}î(håÍ... <accessPolicy> <allow> <subject>/C=US/O=SomeIdP/CN=Alice</subject> <subject>/C=US/O=SomeIdP/CN=Bob</subject> <permission>read</permission> <permission>write</permission> </allow> </accessPolicy> ...îh]îhåÍ... <accessPolicy> <allow> <subject>/C=US/O=SomeIdP/CN=Alice</subject> <subject>/C=US/O=SomeIdP/CN=Bob</subject> <permission>read</permission> <permission>write</permission> </allow> </accessPolicy> ...îÖîÅî}î(hhhj2��ubah}î(h]îh!]îh#]îh%]îh']îj≥��j¥��uh)j£��hK˘hja��hhhh*ubh,)Åî}î(håÚThese AccessPolicies can be embedded inside of the ``SystemMetadata`` that accompany submission of an object through the `MNStorage.create`_ and `MNStorage.update`_ services, or can be set using the `CNAuthorization.setAccessPolicy`_ service.îh]î(hå3These AccessPolicies can be embedded inside of the îÖîÅî}î(hå3These AccessPolicies can be embedded inside of the îhj@��hhhNhNubjs��)Åî}î(hå``SystemMetadata``îh]îhåSystemMetadataîÖîÅî}î(hhhjI��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj@��ubhå4 that accompany submission of an object through the îÖîÅî}î(hå4 that accompany submission of an object through the îhj@��hhhNhNubh2)Åî}î(hå`MNStorage.create`_îh]îhåMNStorage.createîÖîÅî}î(hhhj\��ubah}î(h]îh!]îh#]îh%]îh']îånameîåMNStorage.createîhCå[http://releases.dataone.org/online/d1-architecture-1.0.0/apis/MN_APIs.html#MNStorage.createîuh)h1hj@��hEKubhå and îÖîÅî}î(hå and îhj@��hhhNhNubh2)Åî}î(hå`MNStorage.update`_îh]îhåMNStorage.updateîÖîÅî}î(hhhjr��ubah}î(h]îh!]îh#]îh%]îh']îånameîåMNStorage.updateîhCå[http://releases.dataone.org/online/d1-architecture-1.0.0/apis/MN_APIs.html#MNStorage.updateîuh)h1hj@��hEKubhå# services, or can be set using the îÖîÅî}î(hå# services, or can be set using the îhj@��hhhNhNubh2)Åî}î(hå"`CNAuthorization.setAccessPolicy`_îh]îhåCNAuthorization.setAccessPolicyîÖîÅî}î(hhhjà��ubah}î(h]îh!]îh#]îh%]îh']îånameîåCNAuthorization.setAccessPolicyîhCåjhttp://releases.dataone.org/online/d1-architecture-1.0.0/apis/CN_APIs.html#CNAuthorization.setAccessPolicyîuh)h1hj@��hEKubhå service.îÖîÅî}î(hå service.îhj@��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMhja��hhubh|)Åî}î(håo.. _SystemMetadata: http://releases.dataone.org/online/d1-architecture-1.0.0/apis/Types.html#Types.AccessPolicyîh]îh}î(h]îåsystemmetadataîah!]îh#]îåsystemmetadataîah%]îh']îhCjã��uh)h{hMhja��hhhh*hâKubh|)Åî}î(håm.. _AccessPolicy: http://releases.dataone.org/online/d1-architecture-1.0.0/apis/Types.html#Types.AccessPolicyîh]îh}î(h]îåaccesspolicyîah!]îh#]îåaccesspolicyîah%]îh']îhCj«��uh)h{hM hja��hhhh*hâKubh|)Åî}î(håq.. _MNStorage.create: http://releases.dataone.org/online/d1-architecture-1.0.0/apis/MN_APIs.html#MNStorage.createîh]îh}î(h]îåmnstorage-createîah!]îh#]îåmnstorage.createîah%]îh']îhCjl��uh)h{hMhja��hhhh*hâKubh|)Åî}î(håq.. _MNStorage.update: http://releases.dataone.org/online/d1-architecture-1.0.0/apis/MN_APIs.html#MNStorage.updateîh]îh}î(h]îåmnstorage-updateîah!]îh#]îåmnstorage.updateîah%]îh']îhCjÇ��uh)h{hMhja��hhhh*hâKubh|)Åî}î(håè.. _CNAuthorization.setAccessPolicy: http://releases.dataone.org/online/d1-architecture-1.0.0/apis/CN_APIs.html#CNAuthorization.setAccessPolicyîh]îh}î(h]îåcnauthorization-setaccesspolicyîah!]îh#]îåcnauthorization.setaccesspolicyîah%]îh']îhCjò��uh)h{hMhja��hhhh*hâKubeh}î(h]îåaccess-control-policiesîah!]îh#]îåaccess control policiesîah%]îh']îuh)h hhhhhh*hK‰ubh )Åî}î(hhh]î(h)Åî}î(hå%Configuration as a replication targetîh]îhå%Configuration as a replication targetîÖîÅî}î(hjÌ��hjÎ��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhjË��hhhh*hMubh,)Åî}î(hX⁄��DataONE is designed to enable a robust preservation environment through replication of digital objects at multiple Member Nodes. Any Member Node in DataONE that implements the Tier 4 Service interface can offer to act as a target for object replication. Currently, Metacat configuration supports turning this replication function on or off. When the 'Act as a replication target' checkbox is checked, then Metacat will notify the Coordinating Nodes in DataONE that it is available to house replicas of objects from other nodes. Shortly thereafter, the Coordinating Nodes may notify Metacat to replicate objects from throughout the system, which it will start to do. There objects will begin to be listed in the Metacat catalog.îh]îhXfi��DataONE is designed to enable a robust preservation environment through replication of digital objects at multiple Member Nodes. Any Member Node in DataONE that implements the Tier 4 Service interface can offer to act as a target for object replication. Currently, Metacat configuration supports turning this replication function on or off. When the ‚ÄòAct as a replication target‚Äô checkbox is checked, then Metacat will notify the Coordinating Nodes in DataONE that it is available to house replicas of objects from other nodes. Shortly thereafter, the Coordinating Nodes may notify Metacat to replicate objects from throughout the system, which it will start to do. There objects will begin to be listed in the Metacat catalog.îÖîÅî}î(hj˚��hj˘��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMhjË��hhubj!��)Åî}î(håˆFuture versions of Metacat will allow finer specification of the Node Replication Policy, which determines the set of objects that it is willing to replicate, using constraints on object size, total objects, source nodes, and object format types.îh]îh,)Åî}î(håˆFuture versions of Metacat will allow finer specification of the Node Replication Policy, which determines the set of objects that it is willing to replicate, using constraints on object size, total objects, source nodes, and object format types.îh]îhåˆFuture versions of Metacat will allow finer specification of the Node Replication Policy, which determines the set of objects that it is willing to replicate, using constraints on object size, total objects, source nodes, and object format types.îÖîÅî}î(hj ��hj��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hM hj��ubah}î(h]îh!]îh#]îh%]îh']îuh)j ��hjË��hhhh*hNubeh}î(h]îå%configuration-as-a-replication-targetîah!]îh#]îå%configuration as a replication targetîah%]îh']îuh)h hhhhhh*hMubh )Åî}î(hhh]î(h)Åî}î(håObject Replication Policiesîh]îhåObject Replication PoliciesîÖîÅî}î(hj,��hj*��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhj'��hhhh*hM&ubh,)Åî}î(hX��In addition to access control, each object also can have a ``ReplicationPolicy`` associated with it that determines whether DataONE should attempt to replicate the object for failover and backup purposes to other Member Nodes in the federation. Both the ``RightsHolder`` and ``AuthoritativeMemberNode`` for an object can set the ``ReplicationPolicy``, which consists of fields that describe how many replicas should be maintained, and any nodes that are preferred for housing those replicas, or that should be blocked from housing replicas.îh]î(hå;In addition to access control, each object also can have a îÖîÅî}î(hå;In addition to access control, each object also can have a îhj8��hhhNhNubjs��)Åî}î(hå``ReplicationPolicy``îh]îhåReplicationPolicyîÖîÅî}î(hhhjA��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj8��ubhåÆ associated with it that determines whether DataONE should attempt to replicate the object for failover and backup purposes to other Member Nodes in the federation. Both the îÖîÅî}î(håÆ associated with it that determines whether DataONE should attempt to replicate the object for failover and backup purposes to other Member Nodes in the federation. Both the îhj8��hhhNhNubjs��)Åî}î(hå``RightsHolder``îh]îhåRightsHolderîÖîÅî}î(hhhjT��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj8��ubhå and îÖîÅî}î(hå and îhj8��hhhNhNubjs��)Åî}î(hå``AuthoritativeMemberNode``îh]îhåAuthoritativeMemberNodeîÖîÅî}î(hhhjg��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj8��ubhå for an object can set the îÖîÅî}î(hå for an object can set the îhj8��hhhNhNubjs��)Åî}î(hå``ReplicationPolicy``îh]îhåReplicationPolicyîÖîÅî}î(hhhjz��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj8��ubhåæ, which consists of fields that describe how many replicas should be maintained, and any nodes that are preferred for housing those replicas, or that should be blocked from housing replicas.îÖîÅî}î(håæ, which consists of fields that describe how many replicas should be maintained, and any nodes that are preferred for housing those replicas, or that should be blocked from housing replicas.îhj8��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hM'hj'��hhubh,)Åî}î(hå˙These ReplicationPolicies can be embedded inside of the ``SystemMetadata`` that accompany submission of an object through the `MNStorage.create`_ and `MNStorage.update`_ services, or can be set using the `CNReplication.setReplicationPolicy`_ service.îh]î(hå8These ReplicationPolicies can be embedded inside of the îÖîÅî}î(hå8These ReplicationPolicies can be embedded inside of the îhjì��hhhNhNubjs��)Åî}î(hå``SystemMetadata``îh]îhåSystemMetadataîÖîÅî}î(hhhjú��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjì��ubhå4 that accompany submission of an object through the îÖîÅî}î(hå4 that accompany submission of an object through the îhjì��hhhNhNubh2)Åî}î(hå`MNStorage.create`_îh]îhåMNStorage.createîÖîÅî}î(hhhjØ��ubah}î(h]îh!]îh#]îh%]îh']îånameîåMNStorage.createîhCjl��uh)h1hjì��hEKubhå and îÖîÅî}î(hå and îhjì��hhhNhNubh2)Åî}î(hå`MNStorage.update`_îh]îhåMNStorage.updateîÖîÅî}î(hhhjƒ��ubah}î(h]îh!]îh#]îh%]îh']îånameîåMNStorage.updateîhCjÇ��uh)h1hjì��hEKubhå# services, or can be set using the îÖîÅî}î(hå# services, or can be set using the îhjì��hhhNhNubh2)Åî}î(hå%`CNReplication.setReplicationPolicy`_îh]îhå"CNReplication.setReplicationPolicyîÖîÅî}î(hhhjŸ��ubah}î(h]îh!]îh#]îh%]îh']îånameîå"CNReplication.setReplicationPolicyîhCåmhttp://releases.dataone.org/online/d1-architecture-1.0.0/apis/CN_APIs.html#CNReplication.setReplicationPolicyîuh)h1hjì��hEKubhå service.îÖîÅî}î(hå service.îhjì��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hM/hj'��hhubh|)Åî}î(håï.. _CNReplication.setReplicationPolicy: http://releases.dataone.org/online/d1-architecture-1.0.0/apis/CN_APIs.html#CNReplication.setReplicationPolicyîh]îh}î(h]îå"cnreplication-setreplicationpolicyîah!]îh#]îå"cnreplication.setreplicationpolicyîah%]îh']îhCjÈ��uh)h{hM3hj'��hhhh*hâKubeh}î(h]îåobject-replication-policiesîah!]îh#]îåobject replication policiesîah%]îh']îuh)h hhhhhh*hM&ubh )Åî}î(hhh]î(h)Åî}î(hå"Generating DataONE System Metadataîh]îhå"Generating DataONE System MetadataîÖîÅî}î(hj ��hj ��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhj ��hhhh*hM7ubh,)Åî}î(hX��When a Metacat instance becomes a Member Node, System Metadata must be generated for the existing content. This can be invoked in the Replication configuration screen of the Metacat administration interface. Initially, Metacat instances will only need to generate System Metadata for their local content (the ``localhost`` entry). In cases where Metacat has participated in replication with other Metacat servers, it may be useful to generate System Metadata for those replica records as well. Please consult both the replication partner's administrator and the DataONE administrators before generating System Metadata for replica content.îh]î(hX5��When a Metacat instance becomes a Member Node, System Metadata must be generated for the existing content. This can be invoked in the Replication configuration screen of the Metacat administration interface. Initially, Metacat instances will only need to generate System Metadata for their local content (the îÖîÅî}î(hX5��When a Metacat instance becomes a Member Node, System Metadata must be generated for the existing content. This can be invoked in the Replication configuration screen of the Metacat administration interface. Initially, Metacat instances will only need to generate System Metadata for their local content (the îhj ��hhhNhNubjs��)Åî}î(hå ``localhost``îh]îhå localhostîÖîÅî}î(hhhj# ��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj ��ubhX?�� entry). In cases where Metacat has participated in replication with other Metacat servers, it may be useful to generate System Metadata for those replica records as well. Please consult both the replication partner‚Äôs administrator and the DataONE administrators before generating System Metadata for replica content.îÖîÅî}î(hX=�� entry). In cases where Metacat has participated in replication with other Metacat servers, it may be useful to generate System Metadata for those replica records as well. Please consult both the replication partner's administrator and the DataONE administrators before generating System Metadata for replica content.îhj ��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hM8hj ��hhubj°��)Åî}î(hhh]î(j¶��)Åî}î(håá.. figure:: images/screenshots/image069.png :align: center The replication configuration screen for generating System Metadata. îh]îh}î(h]îh!]îh#]îh%]îh']îåuriîåimages/screenshots/image069.pngîj≥��}îj*��jJ ��suh)j•��hj< ��hh*hMBubj∂��)Åî}î(håDThe replication configuration screen for generating System Metadata.îh]îhåDThe replication configuration screen for generating System Metadata.îÖîÅî}î(hjN ��hjL ��ubah}î(h]îh!]îh#]îh%]îh']îuh)jµ��hh*hMBhj< ��ubeh}î(h]îåid2îah!]îh#]îh%]îh']îjÃ��åcenterîuh)j†��hMBhj ��hhhh*ubeh}î(h]îå"generating-dataone-system-metadataîah!]îh#]îå"generating dataone system metadataîah%]îh']îuh)h hhhhhh*hM7ubh )Åî}î(hhh]î(h)Åî}î(håApache configuration detailsîh]îhåApache configuration detailsîÖîÅî}î(hjo ��hjm ��hhhNhNubaï‚A������h}î(h]îh!]îh#]îh%]îh']îuh)hhjj ��hhhh*hMEubh,)Åî}î(hX��A number of Apache directives are required for a Member Node to function at Tier 2 or higher and various combinations of these directives may be required for your installation depending on which version of Apache you are running and other requirements detailed below.îh]îhX��A number of Apache directives are required for a Member Node to function at Tier 2 or higher and various combinations of these directives may be required for your installation depending on which version of Apache you are running and other requirements detailed below.îÖîÅî}î(hj} ��hj{ ��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMGhjj ��hhubh,)Åî}î(hX��It's recommended to use LetsEncrypt_ to enable TLS (HTTPS) for your installation and ensure the following directives are set in your VirtualHost to set up both TLS across your host and also enable client certificate based authentication of requests from the Coordinating Node.îh]î(håIt‚Äôs recommended to use îÖîÅî}î(håIt's recommended to use îhjâ ��hhhNhNubh2)Åî}î(håLetsEncrypt_îh]îhåLetsEncryptîÖîÅî}î(hhhjí ��ubah}î(h]îh!]îh#]îh%]îh']îånameîåLetsEncryptîhCåhttps://letsencrypt.org/îuh)h1hjâ ��hEKubhå to enable TLS (HTTPS) for your installation and ensure the following directives are set in your VirtualHost to set up both TLS across your host and also enable client certificate based authentication of requests from the Coordinating Node.îÖîÅî}î(hå to enable TLS (HTTPS) for your installation and ensure the following directives are set in your VirtualHost to set up both TLS across your host and also enable client certificate based authentication of requests from the Coordinating Node.îhjâ ��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMIhjj ��hhubh,)Åî}î(hå[Ensure your configuration has directives similar to the following at the VirtualHost level:îh]îhå[Ensure your configuration has directives similar to the following at the VirtualHost level:îÖîÅî}î(hj∞ ��hjÆ ��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMKhjj ��hhubj§��)Åî}î(hX��SSLEngine on SSLOptions +StrictRequire +StdEnvVars +ExportCertData SSLVerifyClient none # The default, but explicitly included here SSLVerifyDepth 10 SSLCertificateFile /etc/letsencrypt/live/<yourhost.org>/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/<yourhost.org>/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/<yourhost.org>/chain.pem SSLCACertificatePath /etc/ssl/certs/ # Enable authentication with client certificates only for the REST API and # only when the request's user agent isn't a web brwoser or common programming # environment (i.e., is the DataONE Coordinating Node) <Location "/<yourcontext>/d1/mn"> <If " ! ( %{HTTP_USER_AGENT} =~ /(windows|chrome|mozilla|safari|webkit|httr|julia|python)/i )"> SSLVerifyClient optional </If> </Location>îh]îhX��SSLEngine on SSLOptions +StrictRequire +StdEnvVars +ExportCertData SSLVerifyClient none # The default, but explicitly included here SSLVerifyDepth 10 SSLCertificateFile /etc/letsencrypt/live/<yourhost.org>/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/<yourhost.org>/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/<yourhost.org>/chain.pem SSLCACertificatePath /etc/ssl/certs/ # Enable authentication with client certificates only for the REST API and # only when the request's user agent isn't a web brwoser or common programming # environment (i.e., is the DataONE Coordinating Node) <Location "/<yourcontext>/d1/mn"> <If " ! ( %{HTTP_USER_AGENT} =~ /(windows|chrome|mozilla|safari|webkit|httr|julia|python)/i )"> SSLVerifyClient optional </If> </Location>îÖîÅî}î(hhhjº ��ubah}î(h]îh!]îh#]îh%]îh']îj≥��j¥��uh)j£��hMOhjj ��hhhh*ubh,)Åî}î(hålNote: Setting `SSLVerifyClient none` and the `Location` block above is a workaround for two separate issues:îh]î(håNote: Setting îÖîÅî}î(håNote: Setting îhj ��hhhNhNubh�åtitle_referenceîìî)Åî}î(hå`SSLVerifyClient none`îh]îhåSSLVerifyClient noneîÖîÅî}î(hhhj’ ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj ��ubhå and the îÖîÅî}î(hå and the îhj ��hhhNhNubj‘ ��)Åî}î(hå `Location`îh]îhåLocationîÖîÅî}î(hhhjË ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj ��ubhå5 block above is a workaround for two separate issues:îÖîÅî}î(hå5 block above is a workaround for two separate issues:îhj ��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMbhjj ��hhubjƒ��)Åî}î(hhh]î(j§��)Åî}î(hhh]î(h≈)Åî}î(hX>��Safari 11 attempts to send a client certificate when `SSLVerifyClient` is set to `optional` even though other browsers do not. Without the above `Location` directive, Safari 11 users will be prompted to select a client certificate to authenticate with even when attempting to browse as a public (unauthenticated) user.îh]îh,)Åî}î(hj ��h]î(hå5Safari 11 attempts to send a client certificate when îÖîÅî}î(hå5Safari 11 attempts to send a client certificate when îhj ��ubj‘ ��)Åî}î(hå`SSLVerifyClient`îh]îhåSSLVerifyClientîÖîÅî}î(hhhj ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj ��ubhå is set to îÖîÅî}î(hå is set to îhj ��ubj‘ ��)Åî}î(hå `optional`îh]îhåoptionalîÖîÅî}î(hhhj& ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj ��ubhå6 even though other browsers do not. Without the above îÖîÅî}î(hå6 even though other browsers do not. Without the above îhj ��ubj‘ ��)Åî}î(hå `Location`îh]îhåLocationîÖîÅî}î(hhhj9 ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj ��ubhå£ directive, Safari 11 users will be prompted to select a client certificate to authenticate with even when attempting to browse as a public (unauthenticated) user.îÖîÅî}î(hå£ directive, Safari 11 users will be prompted to select a client certificate to authenticate with even when attempting to browse as a public (unauthenticated) user.îhj ��ubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMdhj ��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj ��ubh≈)Åî}î(håÍlibcurl deprecated sending the HTTP `Expect` header with POST requests and programmatic uploads from clients such as the R dataone package will fail unless this `Location` directive is in place and `SSLVerifyClient` is set to `none`. îh]îh,)Åî}î(håÈlibcurl deprecated sending the HTTP `Expect` header with POST requests and programmatic uploads from clients such as the R dataone package will fail unless this `Location` directive is in place and `SSLVerifyClient` is set to `none`.îh]î(hå$libcurl deprecated sending the HTTP îÖîÅî}î(hå$libcurl deprecated sending the HTTP îhj\ ��ubj‘ ��)Åî}î(hå`Expect`îh]îhåExpectîÖîÅî}î(hhhje ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj\ ��ubhåu header with POST requests and programmatic uploads from clients such as the R dataone package will fail unless this îÖîÅî}î(håu header with POST requests and programmatic uploads from clients such as the R dataone package will fail unless this îhj\ ��ubj‘ ��)Åî}î(hå `Location`îh]îhåLocationîÖîÅî}î(hhhjx ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj\ ��ubhå directive is in place and îÖîÅî}î(hå directive is in place and îhj\ ��ubj‘ ��)Åî}î(hå`SSLVerifyClient`îh]îhåSSLVerifyClientîÖîÅî}î(hhhjã ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj\ ��ubhå is set to îÖîÅî}î(hå is set to îhj\ ��ubj‘ ��)Åî}î(hå`none`îh]îhånoneîÖîÅî}î(hhhjû ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj\ ��ubhå.îÖîÅî}î(hjM��hj\ ��ubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMehjX ��ubah}î(h]îh!]îh#]îh%]îh']îuh)hƒhj ��ubeh}î(h]îh!]îh#]îh%]îh']îjI��jJ��jK��hjL��jM��uh)j£��hj ��ubh,)Åî}î(håhIf you are running a version of Apache older than 2.4.29, the above set of directives should work fully.îh]îhåhIf you are running a version of Apache older than 2.4.29, the above set of directives should work fully.îÖîÅî}î(hjƒ ��hj¬ ��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMghj ��ubh,)Åî}î(hX��If you are running a version of Apache between 2.4.29 and 2.4.39, omit the entire `Location` block in the above snippet and set `SSLVerifyClient optional` instead of `none` across your VirtualHost. Apache 2.4.29 introduced a bug which causes significant delays on TLS renegotiation when using the above `Location` block. But note that this will cause Safari 11 users to see the erroneous client certificate prompt mentioned above. Programmatic uploads from environments such as R will still work.îh]î(håRIf you are running a version of Apache between 2.4.29 and 2.4.39, omit the entire îÖîÅî}î(håRIf you are running a version of Apache between 2.4.29 and 2.4.39, omit the entire îhj– ��ubj‘ ��)Åî}î(hå `Location`îh]îhåLocationîÖîÅî}î(hhhjŸ ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj– ��ubhå$ block in the above snippet and set îÖîÅî}î(hå$ block in the above snippet and set îhj– ��ubj‘ ��)Åî}î(hå`SSLVerifyClient optional`îh]îhåSSLVerifyClient optionalîÖîÅî}î(hhhjÏ ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj– ��ubhå instead of îÖîÅî}î(hå instead of îhj– ��ubj‘ ��)Åî}î(hå`none`îh]îhånoneîÖîÅî}î(hhhjˇ ��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj– ��ubhåÉ across your VirtualHost. Apache 2.4.29 introduced a bug which causes significant delays on TLS renegotiation when using the above îÖîÅî}î(håÉ across your VirtualHost. Apache 2.4.29 introduced a bug which causes significant delays on TLS renegotiation when using the above îhj– ��ubj‘ ��)Åî}î(hå `Location`îh]îhåLocationîÖîÅî}î(hhhj��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj– ��ubhå∑ block. But note that this will cause Safari 11 users to see the erroneous client certificate prompt mentioned above. Programmatic uploads from environments such as R will still work.îÖîÅî}î(hå∑ block. But note that this will cause Safari 11 users to see the erroneous client certificate prompt mentioned above. Programmatic uploads from environments such as R will still work.îhj– ��ubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMihj ��ubh,)Åî}î(håtIf you are running a version of Apache newer than or equal to 2.4.39, the above set of directives should work fully.îh]îhåtIf you are running a version of Apache newer than or equal to 2.4.39, the above set of directives should work fully.îÖîÅî}î(hj-��hj+��ubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMkhj ��ubeh}î(h]îh!]îh#]îh%]îh']îuh)j√��hjj ��hhhh*hNubh,)Åî}î(hX…��The DataONE Certiciate Authority certificate - available from the DataONE administrators - will also need to be added to the directory specified by ``SSLCACertificatePath`` in order to validate client certificates signed by that authority. DataONE has also provided a CA chain file that may be used in lieu of directory-based CA confinguration. The `SSLCACertificateFile` directive should be used when configuring your member node with the DataONE CA chain.îh]î(håîThe DataONE Certiciate Authority certificate - available from the DataONE administrators - will also need to be added to the directory specified by îÖîÅî}î(håîThe DataONE Certiciate Authority certificate - available from the DataONE administrators - will also need to be added to the directory specified by îhj?��hhhNhNubjs��)Åî}î(hå``SSLCACertificatePath``îh]îhåSSLCACertificatePathîÖîÅî}î(hhhjH��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hj?��ubhå± in order to validate client certificates signed by that authority. DataONE has also provided a CA chain file that may be used in lieu of directory-based CA confinguration. The îÖîÅî}î(hå± in order to validate client certificates signed by that authority. DataONE has also provided a CA chain file that may be used in lieu of directory-based CA confinguration. The îhj?��hhhNhNubj‘ ��)Åî}î(hå`SSLCACertificateFile`îh]îhåSSLCACertificateFileîÖîÅî}î(hhhj[��ubah}î(h]îh!]îh#]îh%]îh']îuh)j” ��hj?��ubhåV directive should be used when configuring your member node with the DataONE CA chain.îÖîÅî}î(håV directive should be used when configuring your member node with the DataONE CA chain.îhj?��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMmhjj ��hhubh,)Åî}î(håAWhen these changes have been applied, Apache should be restarted:îh]îhåAWhen these changes have been applied, Apache should be restarted:îÖîÅî}î(hjv��hjt��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hMrhjj ��hhubj§��)Åî}î(hå@cd /etc/ssl/certs sudo c_rehash sudo /etc/init.d/apache2 restartîh]îhå@cd /etc/ssl/certs sudo c_rehash sudo /etc/init.d/apache2 restartîÖîÅî}î(hhhjÇ��ubah}î(h]îh!]îh#]îh%]îh']îj≥��j¥��uh)j£��hMvhjj ��hhhh*ubh|)Åî}î(hå).. _LetsEncrypt: https://letsencrypt.org/îh]îh}î(h]îåletsencryptîah!]îh#]îåletsencryptîah%]îh']îhCj¢ ��uh)h{hMzhjj ��hhhh*hâKubeh}î(h]îåapache-configuration-detailsîah!]îh#]îåapache configuration detailsîah%]îh']îuh)h hhhhhh*hMEubh )Åî}î(hhh]î(h)Åî}î(hå-Configure Tomcat to allow DataONE identifiersîh]îhå-Configure Tomcat to allow DataONE identifiersîÖîÅî}î(hj©��hjß��hhhNhNubah}î(h]îh!]îh#]îh%]îh']îuh)hhj§��hhhh*hM}ubh,)Åî}î(hå4Edit ``/etc/tomcat/catalina.properties`` to include:îh]î(håEdit îÖîÅî}î(håEdit îhjµ��hhhNhNubjs��)Åî}î(hå#``/etc/tomcat/catalina.properties``îh]îhå/etc/tomcat/catalina.propertiesîÖîÅî}î(hhhjæ��ubah}î(h]îh!]îh#]îh%]îh']îuh)jr��hjµ��ubhå to include:îÖîÅî}î(hå to include:îhjµ��hhhNhNubeh}î(h]îh!]îh#]îh%]îh']îuh)h+hh*hM~hj§��hhubj§��)Åî}î(hå}org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=trueîh]îhå}org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=trueîÖîÅî}î(hhhj◊��ubah}î(h]îh!]îh#]îh%]îh']îj≥��j¥��uh)j£��hMÇhj§��hhhh*ubeh}î(h]îå-configure-tomcat-to-allow-dataone-identifiersîah!]îh#]îå-configure tomcat to allow dataone identifiersîah%]îh']îuh)h hhhhhh*hM}ubeh}î(h]îådataone-member-node-supportîah!]îh#]îådataone member node supportîah%]îh']îuh)h hhhhhh*hKubah}î(h]îh!]îh#]îh%]îh']îåsourceîh*uh)håcurrent_sourceîNåcurrent_lineîNåsettingsîådocutils.frontendîåValuesîìî)Åî}î(hNå generatorîNå datestampîNåsource_linkîNå source_urlîNå toc_backlinksîåentryîåfootnote_backlinksîKå sectnum_xformîKåstrip_commentsîNåstrip_elements_with_classesîNå strip_classesîNåreport_levelîKå halt_levelîKåexit_status_levelîKådebugîNåwarning_streamîNå tracebackîàåinput_encodingîå utf-8-sigîåinput_encoding_error_handlerîåstrictîåoutput_encodingîåutf-8îåoutput_encoding_error_handlerîj��åerror_encodingîåUTF-8îåerror_encoding_error_handlerîåbackslashreplaceîå language_codeîåenîårecord_dependenciesîNåconfigîNå id_prefixîhåauto_id_prefixîåidîå dump_settingsîNådump_internalsîNådump_transformsîNådump_pseudo_xmlîNåexpose_internalsîNåstrict_visitorîNå_disable_configîNå_sourceîh*å_destinationîNå _config_filesî]îåpep_referencesîNåpep_base_urlîå https://www.python.org/dev/peps/îåpep_file_url_templateîåpep-%04dîårfc_referencesîNårfc_base_urlîåhttps://tools.ietf.org/html/îå tab_widthîKåtrim_footnote_reference_spaceîâåfile_insertion_enabledîàåraw_enabledîKåsyntax_highlightîålongîåsmart_quotesîàåsmartquotes_localesîNåcharacter_level_inline_markupîâådoctitle_xformîâå docinfo_xformîKåsectsubtitle_xformîâåembed_stylesheetîâåcloak_email_addressesîàåenvîNågettext_compactîàubåreporterîNåindirect_targetsî]îåsubstitution_defsî}îåsubstitution_namesî}îårefnamesî}î(ådataoneî]î(h3hKh`h§eårestî]îj[��aådataone service interfaceî]îjq��aåfour distinct tiersî]îjá��aåcilogonî]îj˝��aåincommonî]îj��aådataone web siteî]îj2��aåsystemmetadataî]îj{��aåaccesspolicyî]îj∑��aåmnstorage.createî]î(j\��jØ��eåmnstorage.updateî]î(jr��jƒ��eåcnauthorization.setaccesspolicyî]îjà��aå"cnreplication.setreplicationpolicyî]îjŸ��aåletsencryptî]îjí ��auårefidsî}îånameidsî}î(jÚ��jÔ��hÜhÉj>��j;��jw��jt��jW��jT��jc��j`��jo��jl��jû��jõ��j��j���jÔ��jÏ��j˚��j¯��j8��j5��j^��j[��jV��jS��jÂ��j‚��j≠��j™��jπ��j∂��j≈��j¬��j—��jŒ��j›��j⁄��j$��j!��j ��j ��j˛��j˚��jg ��jd ��j°��jû��jô��jñ��jÍ��jÁ��uå nametypesî}î(jÚ��NhÜàj>��Njw��NjW��àjc��àjo��àjû��Nj��NjÔ��àj˚��àj8��Nj^��NjV��àjÂ��Nj≠��àjπ��àj≈��àj—��àj›��àj$��Nj ��Nj˛��àjg ��Nj°��Njô��àjÍ��Nuh}î(jÔ��hhÉh}j;��häjt��jA��jT��jN��j`��jZ��jl��jf��jõ��jz��j���j°��jÏ��jÊ��j¯��jÚ��j5��j��j[��j;��jS��jM��j‚��ja��j™��j§��j∂��j∞��j¬��jº��jŒ��j»��j⁄��j‘��j!��jË��j ��j'��j˚��jı��jd ��j ��jû��jj ��jñ��jê��jÁ��j§��j«��j¢��j\ ��j< ��uå footnote_refsî}îå citation_refsî}îå autofootnotesî]îåautofootnote_refsî]îåsymbol_footnotesî]îåsymbol_footnote_refsî]îå footnotesî]îå citationsî]îåautofootnote_startîKåsymbol_footnote_startîK�åid_startîKåparse_messagesî]îåtransform_messagesî]îåtransformerîNå decorationîNhhub.