Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5cf0afb
Added support to rafts specific configuration properties.
aratikakadiya Mar 26, 2025
7febd5c
merge
aratikakadiya Apr 3, 2025
62d5b3c
Added support to fetch all the public DOIs.
aratikakadiya Apr 8, 2025
35a8abf
Code refactoring.
aratikakadiya Apr 8, 2025
1f4d3c5
Added Int Tests for RAFTS specific settings and permissions.
aratikakadiya Apr 9, 2025
25c6743
Code refactoring.
aratikakadiya Apr 10, 2025
713c3ad
Merge remote-tracking branch 'origin/main' into rafts
aratikakadiya Apr 25, 2025
94d2515
Added POST endpoint /search with filter options - Role and Status.
aratikakadiya Apr 28, 2025
0832589
Added few more Integration Tests for rafts.
aratikakadiya Apr 30, 2025
4c84de1
Formatted code.
aratikakadiya Apr 30, 2025
24c81a4
Updated StandardID in capabilities.
aratikakadiya May 1, 2025
1c33cdd
Code cleaning,
aratikakadiya May 1, 2025
79b0ff2
Code refactoring nad restructuring.
aratikakadiya May 2, 2025
06e15da
Code review rework : Code refactoring and restructuring.
aratikakadiya May 6, 2025
757610b
Updated integration tests readme file.
aratikakadiya May 6, 2025
98de1ca
Rework - code review
aratikakadiya May 6, 2025
40290c4
Rework - Resolved Code review comments.
aratikakadiya May 8, 2025
5ec692e
updated test variables.
aratikakadiya May 12, 2025
ad993c1
Updated swagger UI to use latest js.
aratikakadiya May 12, 2025
4db40b4
Merge remote-tracking branch 'origin/rafts' into rafts
aratikakadiya May 12, 2025
0b23e3e
gradle dependancy updated.
aratikakadiya May 12, 2025
1a9fa42
Updated IntTest property file to have doiIdentifierPrefix prop.
aratikakadiya May 13, 2025
e82b0cf
Renamed property of IntTest.
aratikakadiya May 13, 2025
8845f53
Update variable name change in README file.
aratikakadiya May 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 33 additions & 13 deletions doi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ ca.nrc.cadc.doi.datacite.password = {password}

# DataCite account prefix
ca.nrc.cadc.doi.datacite.accountPrefix = {account prefix}

# (Optional) DOI Identifier Prefix
ca.nrc.cadc.doi.doiIdentifierPrefix = {DOI Identifier Prefix}
```

_parentUri_ is the URI to the DOI parent folder in the VOSpace service.
Expand All @@ -65,6 +68,23 @@ _password_ is the DataCite account password.

_accountPrefix_ is the registered prefix for a DataCite account.

_doiIdentifierPrefix_ is prefix to the DOI Identifier.

**For Alternative DOI Settings ONLY**
```
# Publisher Group URI
ca.nrc.cadc.doi.publisherGroupURI = {Publisher Group URI}

# self Publish
ca.nrc.cadc.doi.selfPublish = {true|false}
```

_publisherGroupURI_ is the URI to the group which gives permission to Approve/Publish or Reject DOIs to the user associated with this group.

_selfPublish_ is to give permission to Mint DOIs. If set to true, only DOI Owner can Mint his DOI. If set to false, only a user from publisher group can Mint all the DOIs.

#### Note: If `publisherGroupURI` is configured, `selfPublish` has to be configured 'false'.

**For developer testing only:**
```
# (optional) Create a random DOI ID for testing
Expand Down Expand Up @@ -126,7 +146,7 @@ At this point the metadata and the data sub-directory are available to the user
- update metadata using the GUI

### Finalizing the DOI
After all data files have been uploaded and the metadata have been updated, the user can finalize the DOI using the GUI. The process to finalize a DOI is a bit involved. Please refer to the status table below for the possible status transitions. Finalizing a DOI results in the following work to be performed.
After all data files have been uploaded and the metadata have been updated, the user(The owner of the DOI OR a user from publisher group specified in doi.config) can finalize the DOI using the GUI. The process to finalize a DOI is a bit involved. Please refer to the status table below for the possible status transitions. Finalizing a DOI results in the following work to be performed.
- change the following to read only and make them publicly accessible:
- data sub-directory
- all directories and their sub-directories, and data files contained in the data sub-directory
Expand Down Expand Up @@ -169,15 +189,15 @@ Among the supported the DOI metadata, the following are user editable:
## DOI Status
A status is assigned to each DOI to indicate where it is in the service lifecycle. The following (incomplete) table associates the statuses with the service lifecylce.

From Status | Action/Event | To Status
--------------------|----------------|--------------------
(start) | create DOI | in progress
in progress | update DOI | in progress
in progress | mint DOI | locking data
locking data | error | error locking data
error locking data | mint DOI | locking data
locking data | success | locked data
locked data | mint DOI | registering
registering | error | error registering
error registering | mint DOI | registering
registering | success | minted
| From Status | Action/Event | To Status |
|--------------------|--------------|--------------------|
| (start) | create DOI | in progress |
| in progress | update DOI | in progress |
| in progress | mint DOI | locking data |
| locking data | error | error locking data |
| error locking data | mint DOI | locking data |
| locking data | success | locked data |
| locked data | mint DOI | registering |
| registering | error | error registering |
| error registering | mint DOI | registering |
| registering | success | minted |
6 changes: 2 additions & 4 deletions doi/build.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
plugins {
id 'java-test-fixtures'
id 'war'
id 'maven'
id 'maven-publish'
id 'checkstyle'
}

Expand All @@ -19,7 +17,7 @@ group = 'ca.nrc.cadc'

war {
from(System.getenv('RPS') + '/resources/') {
include 'swagger-ui/'
include 'swagger-openapi/'
}
from('.') {
include 'VERSION'
Expand All @@ -35,7 +33,7 @@ dependencies {
implementation 'org.opencadc:cadc-vos:[2.0.7,3.0)'
implementation 'org.opencadc:cadc-vos-client:[2.0.4,3.0)'

runtimeOnly 'org.opencadc:cadc-registry:[1.7.2,)'
runtimeOnly 'org.opencadc:cadc-registry:[1.8.0,)'

testFixturesImplementation 'junit:junit:[4.0,5.0)'
testFixturesImplementation 'org.jdom:jdom2:[2.0,3.0)'
Expand Down
14 changes: 11 additions & 3 deletions doi/src/intTest/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,29 @@
# doi service integration tests

The integration tests can run against a local `doi` service, and either a local or remote VOSpace service.
The integration tests can run against two local `doi` service - one with basic configuration and one with alternate configuration, and either a local or remote VOSpace service.

## configuration
While running both the basic and alternate configuration tests, _groupPrefix_ property can be set to `TEST.DOI-` to differentiate the test groups.

A file called `intTest.properties` can be in the classpath (in `src/intTest/resources`) to override properties.

### intTest.properties
```
doiResourceID={resourceID of the doi service}
vospaceParentUri={VOSURI to the DOI parent folder in the VOSpace service}
doiVospaceParentUri={VOSURI to the DOI parent folder in the VOSpace service}
doiAltResourceID={resourceID of the doi service with alternate configuration}
doiAltVospaceParentUri={VOSURI to the Alt DOI parent folder in the VOSpace service}
doiAltIdentifierPrefix={prefix for the DOI Identifier}
```

**_vospaceParentUri_** must match `ca.nrc.cadc.doi.vospaceParentUri` configured in the doi service `doi.properties`.
**_doiVospaceParentUri_** must match `ca.nrc.cadc.doi.vospaceParentUri` configured in the doi service `doi.properties`.
**_doiAltVospaceParentUri_** must match `ca.nrc.cadc.doi.vospaceParentUri` configured in the Alternate doi service `doi.properties`.
**_doiAltIdentifierPrefix_** must match `doiIdentifierPrefix` configured in the Alternate doi service `doi.properties`.

### certificates
Client test certificates in the `$A/test-certificates/` directory are used to authenticate to the doi service.
The following certificates are expected.
- `doi-admin.pem` owns and has full permissions to the test DOI.
- `doi-auth.pem` is a member of a group that has read-write permissions to the test DOI.
- `doi-noauth.pem` is not a member of any group that has permissions to the test DOI, resulting in read-only permissions to the test DOI.
- `doi-publisher.pem` is a member of a group that has publish permissions to the test DOI.
Loading