Project

General

Profile

Task #1599

Story #312: Identifier generation and reservation

Generate pid when not provided in CNCore.generateIdentifier

Added by Dave Vieglais almost 13 years ago. Updated over 12 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
d1_cn_service
Start date:
2011-05-31
Due date:
% Done:

100%

Milestone:
CCI-1.0.0
Product Version:
*
Story Points:
Sprint:

Description

Implement the http://mule1.dataone.org/ArchitectureDocs-current/apis/CN_APIs.html#CNRead.generateIdentifier method.

This method should delegate to the EZID service (http://n2t.net/ezid) for production of the identifier. There may be some issues to consider for the intended longevity of identifiers created there - can we create a temporary identifier, that can later be confirmed as being real?

History

#1 Updated by Ben Leinfelder almost 13 years ago

  • Subject changed from Implement CNRead.reserveIdentifier to Implement CNCore.reserveIdentifier

#2 Updated by Ben Leinfelder almost 13 years ago

  • Milestone set to CCI-0.6.3
  • Subject changed from Implement CNCore.reserveIdentifier to Generate pid when not provided in CNCore.reserveIdentifier

#3 Updated by Ben Leinfelder over 12 years ago

My current understanding is the DataONE won't actually be able to dole out identifiers it gets from EZID.

#4 Updated by Dave Vieglais over 12 years ago

  • Milestone changed from CCI-0.6.3 to CCI-1.0.0
  • Category set to d1_libclient_java
  • Assignee changed from Ben Leinfelder to Matthew Jones
  • Target version set to Sprint-2011.46-Block.6

#5 Updated by Ben Leinfelder over 12 years ago

  • Subject changed from Generate pid when not provided in CNCore.reserveIdentifier to Generate pid when not provided in CNCore.generateIdentifier

I'm not sure DataONE was approved to mint IDs for everyone...kind of eats into the EZID income stream. Perhaps MNs should be wholly responsible for ID generation.

#6 Updated by Matthew Jones over 12 years ago

  • Target version changed from Sprint-2011.48-Block.6 to Sprint-2011.46-Block.6
  • Category changed from d1_libclient_java to d1_cn_service

Decided not to use the EZID service for now due to policy issues. Will revisit that later. For now, implement a simple id generator that creates and reserves the identifier using a simple timestamp or UUID based id scheme, and return it to the caller.

#7 Updated by Matthew Jones over 12 years ago

  • % Done changed from 0 to 100
  • Status changed from New to Closed

generateIdentifier() method added to ReserveIdentifierController and ReserveIdentifierService, completing this task. The only identifier scheme current supported is UUID. You can try the service by running a command such as this:

curl -X POST -s \
-H "Charset: utf-8" \
-H "Content-Type: multipart/form-data; boundary=----------6B3C985C-6290-11DF-A355-A6ECDED72085_$" \
-H "Accept: text/xml" \
-H "User-Agent: curl-tester" \
--cert /tmp/x509up_u501 \
-F scheme=UUID \
-F fragment=nothing \
"https://cn-dev.dataone.org/cn/v1/generate"

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 14.8 MB)