Merge branch 'dmp-refactoring' of https://code-repo.d4science.org/MaDgiK-CITE/argos into dmp-refactoring

This commit is contained in:
Sofia Papacharalampous 2024-04-11 16:43:28 +03:00
commit f75d9ba777
42 changed files with 37 additions and 5628 deletions

View File

@ -1,6 +1,7 @@
package gr.cite.annotation.web.model; package gr.cite.annotation.web.model;
import gr.cite.commons.web.authz.configuration.AuthorizationConfiguration; import gr.cite.commons.web.authz.configuration.AuthorizationConfiguration;
import gr.cite.commons.web.authz.configuration.Permission;
import gr.cite.commons.web.oidc.principal.CurrentPrincipalResolver; import gr.cite.commons.web.oidc.principal.CurrentPrincipalResolver;
import gr.cite.commons.web.oidc.principal.MyPrincipal; import gr.cite.commons.web.oidc.principal.MyPrincipal;
import gr.cite.commons.web.oidc.principal.extractor.ClaimExtractor; import gr.cite.commons.web.oidc.principal.extractor.ClaimExtractor;
@ -12,10 +13,7 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
@Component @Component
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@ -76,6 +74,11 @@ public class AccountBuilder {
if (fields.hasField(Account._permissions)) { if (fields.hasField(Account._permissions)) {
List<String> roles = claimExtractor.roles(currentPrincipalResolver.currentPrincipal()); List<String> roles = claimExtractor.roles(currentPrincipalResolver.currentPrincipal());
Set<String> permissions = authorizationConfiguration.permissionsOfRoles(roles); Set<String> permissions = authorizationConfiguration.permissionsOfRoles(roles);
for (Map.Entry<String, Permission> permissionEntry : authorizationConfiguration.getRawPolicies().entrySet()){
if (permissionEntry.getValue().getAllowAuthenticated()){
permissions.add(permissionEntry.getKey());
}
}
model.setPermissions(new ArrayList<>(permissions)); model.setPermissions(new ArrayList<>(permissions));
} }
return model; return model;

View File

@ -1,50 +0,0 @@
package eu.eudat.controllers.old;
import eu.eudat.authorization.Permission;
import eu.eudat.logic.managers.DatasetProfileManager;
import gr.cite.commons.web.authz.service.AuthorizationService;
import jakarta.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@CrossOrigin
@RequestMapping(value = {"/api/management/"})
public class ManagementController{
private final DatasetProfileManager datasetProfileManager;
private final AuthorizationService authorizationService;
@Autowired
public ManagementController(DatasetProfileManager datasetProfileManager, AuthorizationService authorizationService){
this.datasetProfileManager = datasetProfileManager;
this.authorizationService = authorizationService;
}
@Transactional
@RequestMapping(method = RequestMethod.POST, value = {"/addSemantics"})
public boolean addSemanticsInDatasetProfiles() throws Exception {
this.authorizationService.authorizeForce(Permission.AdminRole);
try {
this.datasetProfileManager.addSemanticsInDatasetProfiles();
return true;
} catch (Exception exception) {
return false;
}
}
@Transactional
@RequestMapping(method = RequestMethod.POST, value = {"/addRdaInSemantics"})
public boolean addRdaInSemanticsInDatasetProfiles() throws Exception {
this.authorizationService.authorizeForce(Permission.AdminRole);
try {
this.datasetProfileManager.addRdaInSemanticsInDatasetProfiles();
return true;
} catch (Exception exception) {
return false;
}
}
}

View File

@ -1,35 +0,0 @@
package eu.eudat.controllers.old;
import eu.eudat.authorization.Permission;
import eu.eudat.logic.managers.ValidationManager;
import gr.cite.commons.web.authz.service.AuthorizationService;
import gr.cite.tools.exception.MyNotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@CrossOrigin
@RequestMapping(value = {"/api"})
public class Validation {
private ValidationManager validationManager;
private final AuthorizationService authorizationService;
@Autowired
public Validation(ValidationManager validationManager, AuthorizationService authorizationService) {
this.validationManager = validationManager;
this.authorizationService = authorizationService;
}
@RequestMapping(method = RequestMethod.GET, value = {"/external/validation"}, produces = "application/json")
public @ResponseBody
Boolean validate(
@RequestParam(value = "query", required = false) String query, @RequestParam(value = "type", required = false) String type
) throws MyNotFoundException {
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
Boolean isValid = this.validationManager.validateIdentifier(query, type);
return isValid;
}
}

View File

@ -1,85 +0,0 @@
package eu.eudat.logic.managers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.management.InvalidApplicationException;
import javax.xml.xpath.XPathExpressionException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component
public class DatasetProfileManager {
private static final Logger logger = LoggerFactory.getLogger(DatasetProfileManager.class);
private static final List<String> cache = new ArrayList<>();
// private final RemoteFetcherService remoteFetcherService;
@Autowired
public DatasetProfileManager() {
}
private static String parseItem(Object item) {
if (item instanceof String) {
return (String) item;
}
if (item instanceof List) {
List listedItems = (List) item;
return parseItem(listedItems.get(0));
}
if (item instanceof Map) {
return String.valueOf(((Map)item).get("$"));
}
return item != null ? item.toString() : null;
}
public void addSemanticsInDatasetProfiles() throws XPathExpressionException, InvalidApplicationException {
// List<DescriptionTemplateEntity> ids = this.databaseRepository.getDatasetProfileDao().getAllIds();
// for(DescriptionTemplateEntity dp: ids){
// DescriptionTemplateEntity descriptionTemplateEntity = this.databaseRepository.getDatasetProfileDao().find(dp.getId());
// Document document = XmlBuilder.fromXml(descriptionTemplateEntity.getDefinition());
// XPathFactory xpathFactory = XPathFactory.newInstance();
// XPath xpath = xpathFactory.newXPath();
// XPathExpression expr = xpath.compile("//rdaCommonStandard");
// NodeList rdaProperties = (NodeList) expr.evaluate(document, XPathConstants.NODESET);
// for(int i = 0; i < rdaProperties.getLength(); i++){
// Node rdaPropertyNode = rdaProperties.item(i);
// String rdaProperty = rdaPropertyNode.getTextContent();
// Element schematics = document.createElement("schematics");
// Node fieldParent = rdaPropertyNode.getParentNode();
// if(rdaProperty != null && !rdaProperty.isEmpty()){
// Element schematic = document.createElement("schematic");
// schematic.setTextContent("rda." + rdaProperty);
// schematics.appendChild(schematic);
// }
// fieldParent.insertBefore(schematics, rdaPropertyNode);
// fieldParent.removeChild(rdaPropertyNode);
// }
// this.updateDatasetProfileXml(document, descriptionTemplateEntity);
// }
}
public void addRdaInSemanticsInDatasetProfiles() throws XPathExpressionException, InvalidApplicationException {
// List<DescriptionTemplateEntity> ids = this.databaseRepository.getDatasetProfileDao().getAllIds();
// for(DescriptionTemplateEntity dp: ids){
// DescriptionTemplateEntity descriptionTemplateEntity = this.databaseRepository.getDatasetProfileDao().find(dp.getId());
// Document document = XmlBuilder.fromXml(descriptionTemplateEntity.getDefinition());
// XPathFactory xpathFactory = XPathFactory.newInstance();
// XPath xpath = xpathFactory.newXPath();
// XPathExpression expr = xpath.compile("//schematic");
// NodeList schematics = (NodeList) expr.evaluate(document, XPathConstants.NODESET);
// for (int i = 0; i < schematics.getLength(); i++) {
// Node schematicNode = schematics.item(i);
// String schematicRda = schematicNode.getTextContent();
// if (schematicRda != null && !schematicRda.isEmpty() && !schematicRda.startsWith("rda.")) {
// schematicNode.setTextContent("rda." + schematicRda);
// }
// }
// this.updateDatasetProfileXml(document, descriptionTemplateEntity);
// }
}
}

View File

@ -1,32 +0,0 @@
package eu.eudat.logic.managers;
import eu.eudat.commons.scope.user.UserScope;
import gr.cite.tools.exception.MyNotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import eu.eudat.service.externalfetcher.criteria.ExternalReferenceCriteria;
@Component
public class ValidationManager {
// private RemoteFetcherService remoteFetcherService;
private final UserScope userScope;
@Autowired
public ValidationManager(UserScope userScope) {
super();
// this.remoteFetcherService = remoteFetcherService;
this.userScope = userScope;
}
public Boolean validateIdentifier(String identifier, String type) throws MyNotFoundException {
ExternalReferenceCriteria externalReferenceCriteria = new ExternalReferenceCriteria(identifier, null);
// Integer count = this.remoteFetcherService.countEntries(externalReferenceCriteria, type);
Integer count = 1;
return this.userScope.isSet() && count > 0;
}
}

View File

@ -6,6 +6,7 @@ import eu.eudat.commons.types.user.AdditionalInfoEntity;
import eu.eudat.data.TenantEntityManager; import eu.eudat.data.TenantEntityManager;
import eu.eudat.data.UserEntity; import eu.eudat.data.UserEntity;
import gr.cite.commons.web.authz.configuration.AuthorizationConfiguration; import gr.cite.commons.web.authz.configuration.AuthorizationConfiguration;
import gr.cite.commons.web.authz.configuration.Permission;
import gr.cite.commons.web.oidc.principal.CurrentPrincipalResolver; import gr.cite.commons.web.oidc.principal.CurrentPrincipalResolver;
import gr.cite.commons.web.oidc.principal.MyPrincipal; import gr.cite.commons.web.oidc.principal.MyPrincipal;
import gr.cite.commons.web.oidc.principal.extractor.ClaimExtractor; import gr.cite.commons.web.oidc.principal.extractor.ClaimExtractor;
@ -96,6 +97,11 @@ public class AccountBuilder {
if (fields.hasField(Account._permissions)) { if (fields.hasField(Account._permissions)) {
List<String> roles = claimExtractor.roles(currentPrincipalResolver.currentPrincipal()); List<String> roles = claimExtractor.roles(currentPrincipalResolver.currentPrincipal());
Set<String> permissions = authorizationConfiguration.permissionsOfRoles(roles); Set<String> permissions = authorizationConfiguration.permissionsOfRoles(roles);
for (Map.Entry<String, Permission> permissionEntry : authorizationConfiguration.getRawPolicies().entrySet()){
if (permissionEntry.getValue().getAllowAuthenticated()){
permissions.add(permissionEntry.getKey());
}
}
model.setPermissions(new ArrayList<>(permissions)); model.setPermissions(new ArrayList<>(permissions));
} }

View File

@ -1,99 +0,0 @@
<configuration>
<configurationProperties>
<property>
<id>field1</id>
<name>DMP-EDITOR.FIELDS.PROJECT</name>
<sourceUrl>http://localhost:9091/api/project/</sourceUrl>
<queryProperty>search</queryProperty>
<externalFieldId>id</externalFieldId>
<externalFieldLabel>name</externalFieldLabel>
<dependencies>
<dependency>
<id>field2</id>
<queryProperty>funder</queryProperty>
</dependency>
</dependencies>
<required>false</required>
</property>
<property>
<id>field2</id>
<name>DMP-EDITOR.FIELDS.FUNDER</name>
<sourceUrl>http://localhost:9091/api/funder/</sourceUrl>
<queryProperty>search</queryProperty>
<externalFieldId>id</externalFieldId>
<externalFieldLabel>name</externalFieldLabel>
<dependencies>
</dependencies>
<required>false</required>
</property>
<property>
<id>field3</id>
<name>DMP-EDITOR.FIELDS.GRANT</name>
<sourceUrl>http://localhost:9091/api/grant/</sourceUrl>
<queryProperty>search</queryProperty>
<externalFieldId>id</externalFieldId>
<externalFieldLabel>name</externalFieldLabel>
<dependencies>
</dependencies>
<required>false</required>
</property>
</configurationProperties>
<mainExternalField>
<id>field3</id>
<name>project.configuration.grant.name</name>
<urlConfig>
<ordinal>1</ordinal>
<url>https://eestore.paas2.uninett.no/api/projectrepo/</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
<source>'source'</source>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<externalFieldId>pid</externalFieldId>
<externalFieldLabel>name</externalFieldLabel>
<language>
<languageProperty>
<key>navbar</key>
<languageKey>NAV-BAR.PROJECTS</languageKey>
</languageProperty>
<languageProperty>
<key>listingTitle</key>
<languageKey>PROJECT-LISTING.TITLE</languageKey>
</languageProperty>
<languageProperty>
<key>editorTitle</key>
<languageKey>PROJECT-EDITOR.TITLE.NEW</languageKey>
</languageProperty>
<languageProperty>
<key>editorLogo</key>
<languageKey>PROJECT-EDITOR.FIELDS.LOGO</languageKey>
</languageProperty>
<languageProperty>
<key>dmpEditor</key>
<languageKey>DMP-EDITOR.FIELDS.PROJECT</languageKey>
</languageProperty>
<languageProperty>
<key>criteriaStart</key>
<languageKey>CRITERIA.PROJECTS.PERIOD-FROM</languageKey>
</languageProperty>
<languageProperty>
<key>criteriaEnd</key>
<languageKey>CRITERIA.PROJECTS.PERIOD-TO</languageKey>
</languageProperty>
<languageProperty>
<key>dmpCriteria</key>
<languageKey>CRITERIA.DMP.PROJECTS</languageKey>
</languageProperty>
</language>
<dependencies>
</dependencies>
<required></required>
</mainExternalField>
</configuration>

View File

@ -1,14 +0,0 @@
<?xml version="1.0"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="DMPBackendPersistence">
<description>Persistence unit for DPM Backend</description>
<!-- <provider>org.hibernate.ejb.HibernatePersistence</provider> --> <!--this is for hibernate versions before 5.2.1 -->
<provider>org.hibernate.jpa.HibernatePersistenceProvider
</provider> <!-- this is for hibernate versions after 5.2.1 -->
</persistence-unit>
</persistence>

View File

@ -1,82 +0,0 @@
dataset.data_quality_assurance
dataset.distribution.access_url
dataset.distribution.available_until
dataset.distribution.byte_size
dataset.distribution.data_access
dataset.distribution.description
dataset.distribution.download_url
dataset.distribution.format
dataset.distribution.host.availability
dataset.distribution.host.backup_frequency
dataset.distribution.host.backup_type
dataset.distribution.host.certified_with
dataset.distribution.host.description
dataset.distribution.host.geo_location
dataset.distribution.host.pid_system
dataset.distribution.host.storage_type
dataset.distribution.host.supports_versioning
dataset.distribution.host.title
dataset.distribution.host.url
dataset.distribution.license.license_ref
dataset.distribution.license.start_date
dataset.distribution.title
dataset.keyword
dataset.language
dataset.metadata.description
dataset.metadata.language
dataset.metadata.metadata_standard_id
dataset.metadata.metadata_standard_id.identifier
dataset.metadata.metadata_standard_id.type
dataset.personal_data
dataset.preservation_statement
dataset.security_and_privacy
dataset.security_and_privacy.description
dataset.security_and_privacy.title
dataset.sensitive_data
dataset.technical_resource.description
dataset.technical_resource.name
dataset.title
dataset.type
dataset.issued
dataset.dataset_id
dataset.dataset_id.identifier
dataset.dataset_id.type
dataset.description
dmp.contact
dmp.contact.contact_id.identifier
dmp.contact.contact_id.type
dmp.contact.mbox
dmp.contact.name
dmp.contributor
dmp.contributor.contributor_id.identifier
dmp.contributor.contributor_id.type
dmp.contributor.mbox
dmp.contributor.name
dmp.contributor.role
dmp.cost
dmp.cost.currency_code
dmp.cost.description
dmp.cost.title
dmp.cost.value
dmp.created
dmp.description
dmp.dmp_id
dmp.dmp_id.identifier
dmp.dmp_id.type
dmp.ethical_issues_description
dmp.ethical_issues_exist
dmp.ethical_issues_report
dmp.language
dmp.modified
dmp.project
dmp.project.description
dmp.project.end
dmp.project.funding
dmp.project.funding.funder_id.identifier
dmp.project.funding.funder_id.type
dmp.project.funding.funding_status
dmp.project.funding.grant_id.identifier
dmp.project.funding.grant_id.type
dmp.project.start
dmp.project.title
dmp.title

View File

@ -1,72 +0,0 @@
{
"providers": [
{
"enabled": false,
"type": "oauth2",
"configurableLoginId": "oauth2-localhost",
"name": "myApp",
"clientId": "",
"clientSecret": "",
"redirect_uri": "",
"access_token_url": "",
"grant_type": "authorization_code",
"token": {
"access_token": "access_token",
"expires_in": "expires_in"
},
"user": {
"id": "sub",
"name": "name",
"email": "email",
"user_info_url": ""
},
"oauthUrl": "/authorize",
"scope": "email",
"state": "123562",
"logoUrl": null
},
{
"enabled": false,
"type": "saml2",
"configurableLoginId": "",
"name": ""
"name": "",
"spEntityId": "",
"idpEntityId": "",
"idpUrl": "",
"idpMetadataUrl": "",
"idpArtifactUrl": "",
"binding": "Redirect",
"logoUrl": "",
"responseSigned": true,
"assertionSigned": true,
"assertionEncrypted": true,
"encryptionCert" : {
"alias": "",
"password": "",
"keystorePath": "encryptionkeystore.jks",
"keystorePassword": "",
"keyFormat": "JKS"
},
"signingCert" : {
"alias": "",
"password": "",
"keystorePath": "signingkeystore.jks",
"keystorePassword": "",
"keyFormat": "JKS"
},
"assertionConsumerServiceUrl": "",
"wantAssertionsSigned": true,
"authnRequestsSigned": true,
"usingFormat": "friendly_name",
"configurableUserFromAttributes": {
"email": "email",
"name": "givenName"
},
"attributeTypes": {
"email": "XSString",
"givenName": "XSString"
}
}
]
}

View File

@ -1,323 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<externalUrls>
<maxresults>1000</maxresults> <!-- if you want it disabled, please enter a negative number -->
<registries>
<urls>
<urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>RegistriesInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<label>'name'</label>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</registries>
<tags>
<urls>
<urlConfig>
<key>internal</key>
<label>internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>TagsInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</tags>
<grants>
<urls>
<urlConfig>
<key>openAIRE</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<url>https://services.openaire.eu/search/v2/api/resources?query=((oaftype exact project) and ((projectcode_nt exact "{like}")or({like}))){funderQuery}&amp;page={page}&amp;size={pageSize}&amp;format=json</url>
<funderQuery>&amp;fq=(funder exact "{funderId}")</funderQuery>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['results'][*]['result']['metadata']['oaf:entity']['oaf:project']</path>
<fields>
<id>'originalId'</id>
<name>'title'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</grants>
<projects>
<urls>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</projects>
<funders>
<urls>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/publications?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/datasets?&amp;refine=true&amp;fields=relfunder&amp;page=0&amp;size={page}&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/software?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/other?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</funders>
<repositories>
<urls>
<urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>RepositoriesInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</repositories>
<services>
<urls>
<urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>ServicesInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<label>'name'</label>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</services>
<researchers>
<urls>
<urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>ResearcherInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>orcid</key>
<label>ORCID</label>
<ordinal>2</ordinal>
<type>External</type>
<url>https://pub.orcid.org/v3.0/expanded-search/?q={like}&amp;start={page}&amp;rows={pageSize}</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=UTF-8</contenttype>
<data>
<path>$['expanded-result'][*]</path>
<fields>
<id>'orcid-id'</id>
<firstName>'given-names'</firstName>
<lastName>'family-names'</lastName>
<name>'name'</name>
</fields>
</data>
<paginationpath>$['num-found']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</researchers>
<organisations>
<urls>
<urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>OrganisationInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</organisations>
<datasets>
<urls>
<urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>DatasetsInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</datasets>
<validators>
<urls>
<urlConfig>
<key>zenodo</key>
<label>Zenodo</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://zenodo.org/api/records/?page={page}&amp;size={pageSize}&amp;q="{like}"</url>
<firstPage>1</firstPage>
<contenttype>application/json</contenttype>
<data>
<path>$[*]</path>
<fields>
<id>'conceptrecid'</id>
<name>'conceptdoi'</name>
<uri>'doi'</uri>
<description>'created'</description>
</fields>
</data>
<paginationpath>$['hits']['total']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode>
</validators>
</externalUrls>

View File

@ -1,360 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<externalUrls>
<maxresults>1000</maxresults> <!-- if you want it disabled, please enter a negative number -->
<registries>
<urls>
<!-- <urlConfig>-->
<!-- <key>cristin</key>-->
<!-- <label>Cristin</label>-->
<!-- <ordinal>1</ordinal>-->
<!-- <type>External</type>-->
<!-- <url>https://eestore.paas2.uninett.no/api/metadataschema/?search={like}&amp;page={page}&amp;size={pageSize}</url>-->
<!-- <firstPage>1</firstPage>-->
<!-- <contenttype>application/vnd.api+json; charset=utf-8</contenttype>-->
<!-- <data>-->
<!-- <path>$['data'][*]['attributes']</path>-->
<!-- <fields>-->
<!-- <id>'pid'</id>-->
<!-- <name>'name'</name>-->
<!-- <uri>'uri'</uri>-->
<!-- <description>'description'</description>-->
<!-- <source>'source'</source>-->
<!-- </fields>-->
<!-- </data>-->
<!-- <paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>-->
<!-- </urlConfig>-->
<urlConfig>
<key>rda-metadata-schemes</key>
<label>RDA Metadata Schemes</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://rdamsc.bath.ac.uk/api2/m?q={like}&amp;start=1&amp;pageSize=111</url>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['data']['items'][*]</path>
<fields>
<id>'mscid'</id>
<name>'title'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</registries>
<tags>
<urls>
<urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/tags/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</tags>
<grants>
<urls>
<urlConfig>
<key>openAIRE</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<url>https://services.openaire.eu/search/v2/api/resources?query=((oaftype exact project) and ((projectcode_nt exact "{like}")or({like}))){funderQuery}&amp;page={page}&amp;size={pageSize}&amp;format=json</url>
<funderQuery>&amp;fq=(funder exact "{funderId}")</funderQuery>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['results'][*]['result']['metadata']['oaf:entity']['oaf:project']</path>
<fields>
<id>'originalId'</id>
<name>'title'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</grants>
<projects>
<urls>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</projects>
<funders>
<urls>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/publications?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/datasets?&amp;refine=true&amp;fields=relfunder&amp;page=0&amp;size={page}&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/software?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/other?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</funders>
<repositories>
<urls>
<urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/datarepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
<source>'source'</source>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</repositories>
<services>
<urls>
<urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/servicerepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
<source>'source'</source>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</services>
<researchers>
<urls>
<urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/personrepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>orcid</key>
<label>ORCID</label>
<ordinal>2</ordinal>
<type>External</type>
<url>https://pub.orcid.org/v3.0/expanded-search/?q={like}&amp;start={page}&amp;rows={pageSize}</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=UTF-8</contenttype>
<data>
<path>$['expanded-result'][*]</path>
<fields>
<id>'orcid-id'</id>
<firstName>'given-names'</firstName>
<lastName>'family-names'</lastName>
<name>'name'</name>
</fields>
</data>
<paginationpath>$['num-found']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</researchers>
<organisations>
<urls>
<urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/organizationrepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</organisations>
<datasets>
<urls>
<urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/datasetmdrepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
<source>'source'</source>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</datasets>
<validators>
<urls>
<urlConfig>
<key>zenodo</key>
<label>Zenodo</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://zenodo.org/api/records/?page={page}&amp;size={pageSize}&amp;q="{like}"</url>
<firstPage>1</firstPage>
<contenttype>application/json</contenttype>
<data>
<path>$[*]</path>
<fields>
<id>'conceptrecid'</id>
<name>'conceptdoi'</name>
<uri>'doi'</uri>
<description>'created'</description>
</fields>
</data>
<paginationpath>$['hits']['total']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode>
</validators>
</externalUrls>

View File

@ -1,215 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<funders>
<urls>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/publications?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
<filterType>local</filterType>
</urlConfig>
<!-- <urlConfig>
<key>openaire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/datasets?&amp;refine=true&amp;fields=relfunder&amp;page=0&amp;size={page}&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/software?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/other?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>-->
<!-- <urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/projectrepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>-->
<urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/projectrepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>crossref</key>
<label>Crossref Funder Registry</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://api.crossref.org/funders?query={like}&amp;rows={pageSize}</url>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['message']['items'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<!-- <urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/publications?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/datasets?&amp;refine=true&amp;fields=relfunder&amp;page=0&amp;size={page}&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/software?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>
<urlConfig>
<key>servicesOpenAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/other?&amp;refine=true&amp;fields=relfunder&amp;page={page}&amp;size=0&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['refineResults']['relfunder'][*]</path>
<fields>
<name>'name'</name>
<id>'id'</id>
<count>'count'</count>
</fields>
</data>
</urlConfig>-->
<!-- <urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>web/src/main/resources/mockData/FunderInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>-->
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</funders>

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<journals>
<urls>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE Journals</label>
<ordinal>1</ordinal>
<type>External</type>
<request>POST</request>
<url>https://services.openaire.eu/openaire/ds/searchdetails/{page}/{pageSize}?requestSortBy=id&amp;order=ASCENDING</url>
<firstPage>0</firstPage>
<contenttype>application/json</contenttype>
<requestBody>{"officialname": "{like}", "typology":"journal"}</requestBody>
<data>
<path>$['datasourceInfo'][*]</path>
<fields>
<id>'id'</id>
<name>'officialname'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</journals>

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<licenses>
<urls>
<urlConfig>
<key>opendefinition</key>
<label>Open Definition</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://licenses.opendefinition.org/licenses/groups/all.json</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$[*]</path>
<fields>
<id>'id'</id>
<name>'title'</name>
<uri>'url'</uri>
<description>'maintainer'</description>
</fields>
</data>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode>
</licenses>

View File

@ -1,80 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projects>
<urls>
<!-- <urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/projectrepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/resources?query=((oaftype exact project) and ((projectcode_nt exact "*")or(*)))&amp;fq=(funder exact {funderId})&amp;page={page}&amp;size={pageSize}&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json; charset=utf-8</contenttype>
<data>
<path>$['response']['results']['result'][*]['metadata']['oaf:entity']['oaf:project']</path>
<fields>
<id>'originalId'</id>
<name>'title'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>openAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/projectrepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>web/src/main/resources/mockData/ProjectInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>-->
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</projects>

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<pubRepositories>
<urls>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE publication repositories 1</label>
<ordinal>1</ordinal>
<type>External</type>
<request>POST</request>
<url>https://services.openaire.eu/openaire/ds/searchdetails/{page}/{pageSize}?requestSortBy=id&amp;order=ASCENDING</url>
<firstPage>0</firstPage>
<contenttype>application/json</contenttype>
<requestBody>{"officialname": "{like}", "typology":"pubsrepository::institutional"}</requestBody>
<data>
<path>$['datasourceInfo'][*]</path>
<fields>
<id>'id'</id>
<name>'officialname'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE publication repositories 2</label>
<ordinal>1</ordinal>
<type>External</type>
<request>POST</request>
<url>https://services.openaire.eu/openaire/ds/searchdetails/{page}/{pageSize}?requestSortBy=id&amp;order=ASCENDING</url>
<firstPage>0</firstPage>
<contenttype>application/json</contenttype>
<requestBody>{"officialname": "{like}", "typology":"pubsrepository::thematic"}</requestBody>
<data>
<path>$['datasourceInfo'][*]</path>
<fields>
<id>'id'</id>
<name>'officialname'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE publication repositories 3</label>
<ordinal>1</ordinal>
<type>External</type>
<request>POST</request>
<url>https://services.openaire.eu/openaire/ds/searchdetails/{page}/{pageSize}?requestSortBy=id&amp;order=ASCENDING</url>
<firstPage>0</firstPage>
<contenttype>application/json</contenttype>
<requestBody>{"officialname": "{like}", "typology":"pubsrepository::unknown"}</requestBody>
<data>
<path>$['datasourceInfo'][*]</path>
<fields>
<id>'id'</id>
<name>'officialname'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</pubRepositories>

View File

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<publications>
<urls>
<urlConfig>
<key>openaire</key>
<label>OpenAIRE Publications</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://services.openaire.eu/search/v2/api/resources?query=oaftype exact result and {query}&amp;page={page}&amp;size={pageSize}&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json;charset=UTF-8</contenttype>
<queries>
<query>
<ordinal>0</ordinal>
<condition>(10[.][0-9]{4,}(?:[.][0-9]+)*\/(?:(?![&quot;&amp;\&#39;&lt;&gt;])[[:graph:]])+)</condition>
<value>(pidclassid exact "doi" and pid="{like}")</value>
</query>
<query>
<ordinal>1</ordinal>
<condition>(10[.][0-9]{4,}(?:[.][0-9]+)*\/(?:(?![&quot;&amp;\&#39;&lt;&gt;])\S)+)</condition>
<value>(pidclassid exact "doi" and pid="{like}")</value>
</query>
<query>
<ordinal>2</ordinal>
<condition>.+</condition>
<value>{like}</value>
</query>
</queries>
<data>
<path>$['results'][*]['result']['metadata']['oaf:entity']['oaf:result']</path>
<fields>
<id>'originalId'</id>
<pid>pid.content</pid>
<pidTypeField>pid.classid</pidTypeField>
<name>'title'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</publications>

View File

@ -1,124 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<repositories>
<urls>
<!-- <urlConfig>
<key>openaire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
&lt;!&ndash; <url>https://services.openaire.eu/search/v2/api/datasources?q={like}&amp;fq=datasourcetypeuiname exact "Data Repository"&amp;page={page}&amp;size={pageSize}&amp;format=json</url>&ndash;&gt;
&lt;!&ndash; Replaced with id field instead of name&ndash;&gt;
<url>https://services.openaire.eu/search/v2/api/datasources?q={like}&amp;fq=datasourcetypeuiid exact "datarepository::unknown"&amp;page={page}&amp;size={pageSize}&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json;charset=UTF-8</contenttype>
<data>
<path>$['results'][*]['result']['metadata']['oaf:entity']['oaf:datasource']</path>
<fields>
<id>'originalId'</id>
<name>'officialname'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<urlConfig>
<key>openairealt</key>
<label>OpenAIRE Alternative</label>
<ordinal>1</ordinal>
<type>External</type>
&lt;!&ndash; Uncomment to exclude Journals&ndash;&gt;
&lt;!&ndash; <url>https://services.openaire.eu/search/v2/api/resources?query=oaftype exact datasource and {like} and datasourcetypeuiid &lt;&gt; &quot;pubsrepository::journal&quot; and datasourcetypeuiid &lt;&gt; &quot;aggregator::pubsrepository::journals&quot;&amp;page={page}&amp;size=2&amp;format=json</url>&ndash;&gt;
<url>https://services.openaire.eu/search/v2/api/resources?query=oaftype exact datasource and {like}&amp;page={page}&amp;size={pageSize}&amp;format=json</url>
<firstPage>0</firstPage>
<contenttype>application/json;charset=UTF-8</contenttype>
<data>
<path>$['results'][*]['result']['metadata']['oaf:entity']['oaf:datasource']</path>
<fields>
<id>'originalId'</id>
<name>'officialname'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>-->
<urlConfig>
<key>openairealt2</key>
<label>Another OpenAIRE Alternative</label>
<ordinal>1</ordinal>
<type>External</type>
<request>POST</request>
<url>https://services.openaire.eu/openaire/ds/searchdetails/{page}/{pageSize}?requestSortBy=id&amp;order=ASCENDING</url>
<!-- <url>https://services.openaire.eu/openaire/ds/searchregistered/{page}/{pageSize}?requestSortBy=id&amp;order=ASCENDING</url>-->
<firstPage>0</firstPage>
<contenttype>application/json</contenttype>
<requestBody>{"officialname": "{like}", "typology":"data"}</requestBody>
<data>
<path>$['datasourceInfo'][*]</path>
<fields>
<id>'id'</id>
<name>'officialname'</name>
<count>'count'</count>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>
<!--<urlConfig>
<key>cristin</key>
<label>Cristin</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/datarepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
<source>'source'</source>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>-->
<!-- <urlConfig>
<key>openAire</key>
<label>OpenAIRE</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/datarepo/?search={like}&amp;page={page}&amp;size={pageSize}</url>
<firstPage>1</firstPage>
<contenttype>application/vnd.api+json; charset=utf-8</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>-->
<!--<urlConfig>
<key>internal</key>
<label>Internal</label>
<ordinal>1</ordinal>
<type>Internal</type>
<url>web/src/main/resources/mockData/RepositoriesInternalMockUpData.json</url>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<uri>'uri'</uri>
<description>'description'</description>
</fields>
</data>
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
</urlConfig>-->
</urls>
<fetchMode>FIRST</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</repositories>

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<taxonomies>
<urls>
<urlConfig>
<key>taxonomy</key>
<label>Taxonomies</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://eestore.paas2.uninett.no/api/taxonomy/</url>
<firstPage>0</firstPage>
<contenttype>application/vnd.api+json</contenttype>
<data>
<path>$['data'][*]['attributes']</path>
<fields>
<id>'pid'</id>
<name>'name'</name>
<count>'count'</count>
</fields>
</data>
<!-- <paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>-->
</urlConfig>
</urls>
<fetchMode>ALL</fetchMode> <!-- EITHER 'FIRST' OR 'ALL' -->
</taxonomies>

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<validators>
<urls>
<urlConfig>
<key>zenodo</key>
<label>Zenodo</label>
<ordinal>1</ordinal>
<type>External</type>
<url>https://sandbox.zenodo.org/api/records/?page={page}&amp;size={pageSize}&amp;q="{like}"</url>
<firstPage>1</firstPage>
<contenttype>application/json</contenttype>
<data>
<path>$[*]</path>
<fields>
<id>'conceptrecid'</id>
<name>'conceptdoi'</name>
<uri>'doi'</uri>
<description>'created'</description>
</fields>
</data>
<paginationpath>$['hits']['total']</paginationpath>
</urlConfig>
</urls>
<fetchMode>FIRST</fetchMode>
</validators>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,186 +0,0 @@
{
"aar": "aa",
"abk": "ab",
"afr": "af",
"aka": "ak",
"amh": "am",
"ara": "ar",
"arg": "an",
"asm": "as",
"ava": "av",
"ave": "ae",
"aym": "ay",
"aze": "az",
"bak": "ba",
"bam": "bm",
"bel": "be",
"ben": "bn",
"bis": "bi",
"bod": "bo",
"bos": "bs",
"bre": "br",
"bul": "bg",
"cat": "ca",
"ces": "cs",
"cha": "ch",
"che": "ce",
"chu": "cu",
"chv": "cv",
"cor": "kw",
"cos": "co",
"cre": "cr",
"cym": "cy",
"dan": "da",
"deu": "de",
"div": "dv",
"dzo": "dz",
"ell": "el",
"eng": "en",
"epo": "eo",
"est": "et",
"eus": "eu",
"ewe": "ee",
"fao": "fo",
"fas": "fa",
"fij": "fj",
"fin": "fi",
"fra": "fr",
"fry": "fy",
"ful": "ff",
"gla": "gd",
"gle": "ga",
"glg": "gl",
"glv": "gv",
"grn": "gn",
"guj": "gu",
"hat": "ht",
"hau": "ha",
"hbs": "sh",
"heb": "he",
"her": "hz",
"hin": "hi",
"hmo": "ho",
"hrv": "hr",
"hun": "hu",
"hye": "hy",
"ibo": "ig",
"ido": "io",
"iii": "ii",
"iku": "iu",
"ile": "ie",
"ina": "ia",
"ind": "id",
"ipk": "ik",
"isl": "is",
"ita": "it",
"jav": "jv",
"jpn": "ja",
"kal": "kl",
"kan": "kn",
"kas": "ks",
"kat": "ka",
"kau": "kr",
"kaz": "kk",
"khm": "km",
"kik": "ki",
"kin": "rw",
"kir": "ky",
"kom": "kv",
"kon": "kg",
"kor": "ko",
"kua": "kj",
"kur": "ku",
"lao": "lo",
"lat": "la",
"lav": "lv",
"lim": "li",
"lin": "ln",
"lit": "lt",
"ltz": "lb",
"lub": "lu",
"lug": "lg",
"mah": "mh",
"mal": "ml",
"mar": "mr",
"mkd": "mk",
"mlg": "mg",
"mlt": "mt",
"mon": "mn",
"mri": "mi",
"msa": "ms",
"mya": "my",
"nau": "na",
"nav": "nv",
"nbl": "nr",
"nde": "nd",
"ndo": "ng",
"nep": "ne",
"nld": "nl",
"nno": "nn",
"nob": "nb",
"nor": "no",
"nya": "ny",
"oci": "oc",
"oji": "oj",
"ori": "or",
"orm": "om",
"oss": "os",
"pan": "pa",
"pli": "pi",
"pol": "pl",
"por": "pt",
"pus": "ps",
"que": "qu",
"roh": "rm",
"ron": "ro",
"run": "rn",
"rus": "ru",
"sag": "sg",
"san": "sa",
"sin": "si",
"slk": "sk",
"slv": "sl",
"sme": "se",
"smo": "sm",
"sna": "sn",
"snd": "sd",
"som": "so",
"sot": "st",
"spa": "es",
"sqi": "sq",
"srd": "sc",
"srp": "sr",
"ssw": "ss",
"sun": "su",
"swa": "sw",
"swe": "sv",
"tah": "ty",
"tam": "ta",
"tat": "tt",
"tel": "te",
"tgk": "tg",
"tgl": "tl",
"tha": "th",
"tir": "ti",
"ton": "to",
"tsn": "tn",
"tso": "ts",
"tuk": "tk",
"tur": "tr",
"twi": "tw",
"uig": "ug",
"ukr": "uk",
"urd": "ur",
"uzb": "uz",
"ven": "ve",
"vie": "vi",
"vol": "vo",
"wln": "wa",
"wol": "wo",
"xho": "xh",
"yid": "yi",
"yor": "yo",
"zha": "za",
"zho": "zh",
"zul": "zu"
}

View File

@ -1,32 +0,0 @@
[
{
"pid": "datasetssmockup:internal/001",
"remote_id": "",
"remote_pid": "",
"name": "Datasets test 1",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "datasetssmockup:internal/002",
"remote_id": "",
"remote_pid": "",
"name": "Datasets test 2",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "datasetssmockup:internal/003",
"remote_id": "",
"remote_pid": "",
"name": "Datasets test 3",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,32 +0,0 @@
[
{
"pid": "fundermockup:internal/001",
"remote_id": "",
"remote_pid": "",
"name": "Funder test 1",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "fundermockup:internal/002",
"remote_id": "",
"remote_pid": "",
"name": "Funder test 2",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "fundermockup:internal/003",
"remote_id": "",
"remote_pid": "",
"name": "Funder test 3",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,32 +0,0 @@
[
{
"pid": "grantmockup:internal/001",
"remote_id": "",
"remote_pid": "",
"name": "Grant test 1",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "grantmockup:internal/002",
"remote_id": "",
"remote_pid": "",
"name": "Grant test 2",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "grantmockup:internal/003",
"remote_id": "",
"remote_pid": "",
"name": "Grant test 3",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,32 +0,0 @@
[
{
"pid": "organisationmockup:internal/001",
"remote_id": "",
"remote_pid": "",
"name": "Organisation test 1",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "organisationmockup:internal/002",
"remote_id": "",
"remote_pid": "",
"name": "Organisation test 2",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "organisationmockup:internal/003",
"remote_id": "",
"remote_pid": "",
"name": "Organisation test 3",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,32 +0,0 @@
[
{
"pid": "projectmockup:internal/001",
"remote_id": "",
"remote_pid": "",
"name": "Project test 1",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "projectmockup:internal/002",
"remote_id": "",
"remote_pid": "",
"name": "Project test 2",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "projectmockup:internal/003",
"remote_id": "",
"remote_pid": "",
"name": "Project test 3",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,29 +0,0 @@
[
{
"pid": "registriesmockup:internal/001",
"abbreviation": "RT1",
"label": "Registries test 1",
"uri": "mock.registries.com",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "registriesmockup:internal/002",
"abbreviation": "RT2",
"label": "Registries test 2",
"uri": "mock.registries.com",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "registriesmockup:internal/003",
"abbreviation": "RT3",
"label": "Registries test 3",
"uri": "mock.registries.com",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,32 +0,0 @@
[
{
"pid": "repositoriesmockup:internal/001",
"remote_id": "",
"remote_pid": "",
"name": "Repositories test 1",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "repositoriesmockup:internal/002",
"remote_id": "",
"remote_pid": "",
"name": "Repositories test 2",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "repositoriesmockup:internal/003",
"remote_id": "",
"remote_pid": "",
"name": "Repositories test 3",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,32 +0,0 @@
[
{
"pid": "researchermockup:internal/001",
"remote_id": "",
"remote_pid": "",
"name": "Researcher test 1",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "researchermockup:internal/002",
"remote_id": "",
"remote_pid": "",
"name": "Researcher test 2",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "researchermockup:internal/003",
"remote_id": "",
"remote_pid": "",
"name": "Researcher test 3",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,29 +0,0 @@
[
{
"pid": "servicesmockup:internal/001",
"abbreviation": "ST1",
"label": "Services test 1",
"uri": "mock.services.com",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "servicesmockup:internal/002",
"abbreviation": "ST2",
"label": "Services test 2",
"uri": "mock.services.com",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "servicesmockup:internal/003",
"abbreviation": "ST3",
"label": "Services test 3",
"uri": "mock.services.com",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,32 +0,0 @@
[
{
"pid": "tagsmockup:internal/001",
"remote_id": "",
"remote_pid": "",
"name": "Tags test 1",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "tagsmockup:internal/002",
"remote_id": "",
"remote_pid": "",
"name": "Tags test 2",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
},
{
"pid": "tagsmockup:internal/003",
"remote_id": "",
"remote_pid": "",
"name": "Tags test 3",
"uri": "",
"last_fetched": "",
"description": "",
"tag": "internal"
}
]

View File

@ -1,22 +0,0 @@
[
{
"pid": "1",
"name": "Tag1",
"label": ""
},
{
"pid": "2",
"name": "Tag2",
"label": ""
},
{
"pid": "3",
"name": "Tag3",
"label": ""
},
{
"pid": "4",
"name": "Tag4",
"label": ""
}
]

View File

@ -77,7 +77,7 @@ export class DescriptionTemplatePreviewDialogComponent extends BaseComponent imp
} }
select(): void { select(): void {
this.dialogRef.close(true); this.dialogRef.close(this.descriptionTemplate.groupId);
} }
closeDialog(): void { closeDialog(): void {

View File

@ -244,7 +244,7 @@
<div class="col-12 col-lg-6 col-xl-3"> <div class="col-12 col-lg-6 col-xl-3">
<mat-form-field class="w-100 mt-3"> <mat-form-field class="w-100 mt-3">
<mat-label>{{'DMP-BLUEPRINT-EDITOR.FIELDS.DESCRIPTION-TEMPLATE' | translate}}</mat-label> <mat-label>{{'DMP-BLUEPRINT-EDITOR.FIELDS.DESCRIPTION-TEMPLATE' | translate}}</mat-label>
<app-single-auto-complete [formControl]="descriptionTemplate.get('descriptionTemplateGroupId')" [hidePlaceholder]="true" [configuration]="descriptionTempalteGroupSingleAutocompleteConfiguration" (optionActionClicked)="onPreviewDescriptionTemplate($event, i)"></app-single-auto-complete> <app-single-auto-complete [formControl]="descriptionTemplate.get('descriptionTemplateGroupId')" [hidePlaceholder]="true" [configuration]="descriptionTempalteGroupSingleAutocompleteConfiguration" (optionActionClicked)="onPreviewDescriptionTemplate($event, sectionIndex, descriptionTemplateIndex)"></app-single-auto-complete>
<mat-error *ngIf="descriptionTemplate.get('descriptionTemplateGroupId').hasError('backendError')">{{descriptionTemplate.get('descriptionTemplateGroupId').getError('backendError').message}}</mat-error> <mat-error *ngIf="descriptionTemplate.get('descriptionTemplateGroupId').hasError('backendError')">{{descriptionTemplate.get('descriptionTemplateGroupId').getError('backendError').message}}</mat-error>
<mat-error *ngIf="descriptionTemplate.get('descriptionTemplateGroupId').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error> <mat-error *ngIf="descriptionTemplate.get('descriptionTemplateGroupId').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</mat-form-field> </mat-form-field>

View File

@ -1,6 +1,6 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { FormArray, UntypedFormGroup } from '@angular/forms'; import { FormArray, UntypedFormArray, UntypedFormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { DmpBlueprintService } from '@app/core/services/dmp/dmp-blueprint.service'; import { DmpBlueprintService } from '@app/core/services/dmp/dmp-blueprint.service';
@ -464,7 +464,7 @@ export class DmpBlueprintEditorComponent extends BaseEditor<DmpBlueprintEditorMo
} }
onPreviewDescriptionTemplate(event: DescriptionTemplate, sectionId: Guid) { onPreviewDescriptionTemplate(event: DescriptionTemplate, sectionIndex: number, descriptionTemplateIndex: number) {
const dialogRef = this.dialog.open(DescriptionTemplatePreviewDialogComponent, { const dialogRef = this.dialog.open(DescriptionTemplatePreviewDialogComponent, {
width: '590px', width: '590px',
minHeight: '200px', minHeight: '200px',
@ -474,24 +474,10 @@ export class DmpBlueprintEditorComponent extends BaseEditor<DmpBlueprintEditorMo
}, },
panelClass: 'custom-modalbox' panelClass: 'custom-modalbox'
}); });
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(groupId => {
// if (result) { if (groupId){
// let blueprints = this.sectionsArray().at(sectionIndex).get('descriptionTemplates').value;//this.formGroup.get('blueprints').value; ((this.formGroup.get('definition').get('sections') as UntypedFormArray).at(sectionIndex).get('descriptionTemplates') as UntypedFormArray).at(descriptionTemplateIndex).get('descriptionTemplateGroupId').patchValue(groupId);
// const blueprint: DescriptionTemplatesInSectionEditor = new DescriptionTemplatesInSectionEditor(); }
// blueprint.id = Guid.create().toString();
// blueprint.descriptionTemplateId = event.id;
// blueprint.label = event.label;
// blueprints.push(blueprint.buildForm());
// this.sectionsArray().at(sectionIndex).get('descriptionTemplates').setValue(blueprints);//this.formGroup.get('blueprints').setValue(blueprints);
// this.blueprintsAutoCompleteConfiguration = {
// filterFn: this.filterProfiles.bind(this),
// initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))),
// displayFn: (item) => item['label'],
// titleFn: (item) => item['label'],
// subtitleFn: (item) => item['description'],
// popupItemActionIcon: 'visibility'
// };
// }
}); });
} }

View File

@ -501,17 +501,15 @@ export class DmpEditorComponent extends BaseEditor<DmpEditorModel, Dmp> implemen
}, },
panelClass: 'custom-modalbox' panelClass: 'custom-modalbox'
}); });
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(groupId => {
if (result) { if (groupId) {
// this.addProfile(event, sectionIndex); let data = this.formGroup.get('descriptionTemplates').get(sectionId.toString()).value as Guid[];
// this.profilesAutoCompleteConfiguration = { if (data){
// filterFn: this.filterProfiles.bind(this), data.push(groupId);
// initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))), this.formGroup.get('descriptionTemplates').get(sectionId.toString()).patchValue(data);
// displayFn: (item) => item['label'], } else{
// titleFn: (item) => item['label'], this.formGroup.get('descriptionTemplates').get(sectionId.toString()).patchValue([groupId]);
// subtitleFn: (item) => item['description'], }
// popupItemActionIcon: 'visibility'
// };
} }
}); });
} }

View File

@ -1,6 +1,7 @@
package gr.cite.notification.web.model; package gr.cite.notification.web.model;
import gr.cite.commons.web.authz.configuration.AuthorizationConfiguration; import gr.cite.commons.web.authz.configuration.AuthorizationConfiguration;
import gr.cite.commons.web.authz.configuration.Permission;
import gr.cite.commons.web.oidc.principal.CurrentPrincipalResolver; import gr.cite.commons.web.oidc.principal.CurrentPrincipalResolver;
import gr.cite.commons.web.oidc.principal.MyPrincipal; import gr.cite.commons.web.oidc.principal.MyPrincipal;
import gr.cite.commons.web.oidc.principal.extractor.ClaimExtractor; import gr.cite.commons.web.oidc.principal.extractor.ClaimExtractor;
@ -12,10 +13,7 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
@Component @Component
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@ -76,6 +74,11 @@ public class AccountBuilder {
if (fields.hasField(Account._permissions)) { if (fields.hasField(Account._permissions)) {
List<String> roles = claimExtractor.roles(currentPrincipalResolver.currentPrincipal()); List<String> roles = claimExtractor.roles(currentPrincipalResolver.currentPrincipal());
Set<String> permissions = authorizationConfiguration.permissionsOfRoles(roles); Set<String> permissions = authorizationConfiguration.permissionsOfRoles(roles);
for (Map.Entry<String, Permission> permissionEntry : authorizationConfiguration.getRawPolicies().entrySet()){
if (permissionEntry.getValue().getAllowAuthenticated()){
permissions.add(permissionEntry.getKey());
}
}
model.setPermissions(new ArrayList<>(permissions)); model.setPermissions(new ArrayList<>(permissions));
} }
return model; return model;