Code Monkey home page Code Monkey logo

d1_cn_rest's Issues

Make sure d1_cn_rest not decode url

We found an issue that cn.archive can't handle the pid http://dx.doi.org/10.5061/dryad.12?ver=2017-08-29T11:52:08.075-04:00 correctly.
First we thought there was an issue in Metacat. After some poking around, it seems the issue is not in Metacat. The details is in this [ticket].(NCEAS/metacat#1711)

Add new API endpoint to add members to a Group without sending complete updated group

Problem

Currently, our CNIdentity.updateGroup endpoint requires the client to send the complete Group object when they want to add new members to a group. This means the client must know all the existing members of the group, which may not be feasible or efficient in all scenarios. It also adds extra complexity and potential for errors, as the client has to manage the state of the whole group.

Expected behaviour

I would expect changes to a group should be possible with minimal input from the client.

I propose adding a new endpoint which would allow clients to add new members to a group by sending only the new members' details. This way, the server would handle merging the new members with the existing ones, thus reducing client-side complexity and potential errors.

Context

The current implementation recently caused an issue within MetacatUI. @vchendrix reported a problem where a user was added a large group of 263 member before the group was fully loaded in the UI. It lead to the group losing about a third of its existing users due to an incomplete group being sent to updateGroup.

We have considered client-side mitigations like delaying user actions until the entire group is loaded, though in this case, it takes ~30 seconds for the API to return a response (https://cn.dataone.org/cn/v2/accounts/CN%3Dess-dive-users%2CDC%3Ddataone%2CDC%3Dorg).

ServiceRestriction object list only shows one subject on the node capacity information

In the capacity of a member node, it shows two subjects in the service restriction part:

<service name="MNStorage" version="v1" available="true">
  <restriction methodName="create">
    <subject>http://orcid.org/0000-0002-1209-5268</subject>
    <subject>cn=parc,o=PARC,dc=ecoinformatics,dc=org</subject>
  </restriction>
  <restriction methodName="update">
    <subject>http://orcid.org/0000-0002-1209-5268</subject>
    <subject>cn=parc,o=PARC,dc=ecoinformatics,dc=org</subject>
  </restriction>
</service>
<service name="MNStorage" version="v2" available="true">
  <restriction methodName="create">
    <subject>http://orcid.org/0000-0002-1209-5268</subject>
    <subject>cn=parc,o=PARC,dc=ecoinformatics,dc=org</subject>
  </restriction>
  <restriction methodName="update">
    <subject>http://orcid.org/0000-0002-1209-5268</subject>
    <subject>cn=parc,o=PARC,dc=ecoinformatics,dc=org</subject>
  </restriction>
</service>

However, it only shows one subject on the cn part after a user updated the node capactiy:

<service name="MNStorage" version="v1" available="true">
  <restriction methodName="create">
    <subject>CN=parc,O=PARC,DC=ecoinformatics,DC=org</subject>
  </restriction>
  <restriction methodName="update">
    <subject>CN=parc,O=PARC,DC=ecoinformatics,DC=org</subject>
  </restriction>
  </service>
  <service name="MNStorage" version="v2" available="true">
  <restriction methodName="create">
    <subject>CN=parc,O=PARC,DC=ecoinformatics,DC=org</subject>
  </restriction>
  <restriction methodName="update">
    <subject>CN=parc,O=PARC,DC=ecoinformatics,DC=org</subject>
  </restriction>
</service>

You can see the ORCID http://orcid.org/0000-0002-1209-5268 is missing.
I looked at the LDAP server on the CN which stores the node information and found there is no information for the ORCID. So somehow, the first subject was skipped during the registration/update process.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.