Browse files

add design doc to collect design & refactoring ideas

  • Loading branch information...
gothub committed Sep 1, 2016
1 parent 293f4c9 commit 4e49379e06492b419ee6863a8d32bbf8b353a62c
Showing with 28 additions and 0 deletions.
  1. +28 −0 docs/
@@ -0,0 +1,28 @@
# *dataone* R Package Design

The intent of this document is to collect design ideas for the *dataone* R package.
Both new functionality and refactoring of current implementations can be included.
Once a consensus has been reached for a particular implementation, then more formal
documentation can be prepared, if desired, i.e. UML activity diagrams, sequence charts, etc.

## Design Goals

### Provide authentication for DataONE service calls

The current DataONE authentication for CNs and MNs can use either
authentication tokens or X.509 certificates. Authentication tokens
are only supported for DataONE nodes that support the V2 DataONE API.
Also, the DataONE service requests can be send to either production
or testing nodes, requiring different authentication for the production
versus testing environments.

### Current Implementation

The current implementation uses the DataONE API version number to determine
whether an authentication token can be used. The API version is obtained from
a DataONE node when the MNode or CNode instance for that node is created.
The node instance is passed along to the various auth_* methods so that
they can test for an retrieve the correct authentication for the node
that the request is being made to.

### Refactoring Ideas

0 comments on commit 4e49379

Please sign in to comment.