debugging complex types
This commit is contained in:
parent
1e9cc50909
commit
4d062b9c37
File diff suppressed because it is too large
Load Diff
|
@ -97,6 +97,7 @@
|
|||
"bootstrap-icons": "^1.11.1",
|
||||
"cytoscape": "3.25.0",
|
||||
"dayjs": "1.11.5",
|
||||
"jquery": "^3.7.1",
|
||||
"mat-select-filter": "^2.4.1",
|
||||
"material-icons-font": "^2.1.0",
|
||||
"mdb-angular-ui-kit": "^3.0.1",
|
||||
|
|
|
@ -1,27 +1,20 @@
|
|||
package org.gcube.informationsystem.service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.gcube.com.fasterxml.jackson.databind.ObjectWriter;
|
||||
import org.gcube.common.authorization.utils.manager.SecretManager;
|
||||
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
|
||||
import org.gcube.common.authorization.utils.secret.JWTSecret;
|
||||
import org.gcube.common.authorization.utils.secret.Secret;
|
||||
import org.gcube.informationsystem.base.reference.AccessType;
|
||||
import org.gcube.informationsystem.contexts.reference.entities.Context;
|
||||
import org.gcube.informationsystem.model.knowledge.ModelKnowledge;
|
||||
import org.gcube.informationsystem.model.reference.entities.Resource;
|
||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaNotFoundException;
|
||||
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClient;
|
||||
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClientFactory;
|
||||
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisher;
|
||||
|
@ -34,13 +27,9 @@ import org.gcube.informationsystem.service.dto.FacetSpecDTO;
|
|||
import org.gcube.informationsystem.service.dto.FacetTypeDTO;
|
||||
import org.gcube.informationsystem.service.dto.ResourceTypeDTO;
|
||||
import org.gcube.informationsystem.service.dto.ValidationObjDTO;
|
||||
import org.gcube.informationsystem.tree.Node;
|
||||
import org.gcube.informationsystem.tree.Tree;
|
||||
import org.gcube.informationsystem.types.PropertyTypeName;
|
||||
import org.gcube.informationsystem.types.PropertyTypeName.BaseType;
|
||||
import org.gcube.informationsystem.types.impl.entities.FacetTypeImpl;
|
||||
import org.gcube.informationsystem.types.impl.entities.ResourceTypeImpl;
|
||||
import org.gcube.informationsystem.types.impl.properties.PropertyDefinitionImpl;
|
||||
import org.gcube.informationsystem.types.knowledge.TypeInformation;
|
||||
import org.gcube.informationsystem.types.reference.Type;
|
||||
import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
|
||||
|
@ -48,16 +37,12 @@ import org.gcube.informationsystem.types.reference.properties.PropertyDefinition
|
|||
import org.gcube.informationsystem.utils.UUIDUtility;
|
||||
import org.gcube.informationsystem.web.rest.FacetDescription;
|
||||
import org.gcube.informationsystem.web.rest.ResourceDescription;
|
||||
import org.gcube.informationsystem.web.rest.TypeProperty;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.jayway.jsonpath.JsonPath;
|
||||
import com.jayway.jsonpath.internal.filter.ValueNode.JsonNode;
|
||||
import com.nimbusds.jose.shaded.json.JSONUtil;
|
||||
|
||||
import net.minidev.json.JSONArray;
|
||||
import net.minidev.json.JSONObject;
|
||||
|
||||
/**
|
||||
* Service class for managing InformationSystem resources.
|
||||
|
@ -421,6 +406,17 @@ public class InformationSystemService {
|
|||
ArrayList<JSONArray> extraProps = new ArrayList<JSONArray>();
|
||||
JSONArray props = new JSONArray();
|
||||
String sendingJson="";
|
||||
/*
|
||||
ResourceDescription(type=EService, consistsOf=[FacetDescription(type=IsIdentifiedBy,
|
||||
target={optional=true, name=Maria Teresa Paratore, group=gr, description=, version=v56, qualifier=}),
|
||||
FacetDescription(type=ConsistsOf, target={optional=true, name=name, group=ggg, description=, version=v4,
|
||||
qualifier=}), FacetDescription(type=ConsistsOf, target={protocol=proto, endpoint=endpoint,
|
||||
entryName=EntryNameMio, description=dddd, authorization={type=ValueSchema, schema=mariateresa, value=mtPwd}}),
|
||||
FacetDescription(type=ConsistsOf, target={event=on, date=2024-05-21}),
|
||||
FacetDescription(type=ConsistsOf, target={value=v7}),
|
||||
FacetDescription(type=ConsistsOf, target={textURL=myUrl, name=myName})],
|
||||
isRelatedTo=[])
|
||||
*/
|
||||
try {
|
||||
facetNames = JsonPath.parse(formData).read("$..facetName");
|
||||
facetRelations = JsonPath.parse(formData).read("$..relationFacet");
|
||||
|
@ -428,10 +424,18 @@ public class InformationSystemService {
|
|||
props = JsonPath.parse(formData).read("$..props");
|
||||
ResourceDescription rd = new ResourceDescription();
|
||||
rd = buildSendingJson(resourceType,facetNames,facetRelations,extraProps,props);
|
||||
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
|
||||
sendingJson = ow.writeValueAsString(rd);
|
||||
ObjectMapper om = new ObjectMapper();
|
||||
// Getting object as a json string
|
||||
sendingJson = om.writeValueAsString(rd);
|
||||
// Displaying JSON String on console
|
||||
log.debug("******** JSON STRING TO BE SENT:");
|
||||
log.debug(sendingJson);
|
||||
log.debug("********");
|
||||
|
||||
//ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
|
||||
//sendingJson = ow.writeValueAsString(rd);
|
||||
}catch(Exception e) {
|
||||
log.error(e.getMessage());
|
||||
log.error(e.getMessage(),e);
|
||||
}
|
||||
return sendingJson;
|
||||
}
|
||||
|
@ -445,13 +449,34 @@ public class InformationSystemService {
|
|||
LinkedHashMap targetMap_i = new LinkedHashMap<String, Object>();
|
||||
FacetDescription facet_i = new FacetDescription();
|
||||
facet_i.setType(relations.get(i));
|
||||
LinkedHashMap joProp_i = (LinkedHashMap)props.get(i);
|
||||
joProp_i.put("type", facetNames.get(i));
|
||||
Iterator<String> keyit = (Iterator) joProp_i.keySet().iterator();
|
||||
LinkedHashMap propMap_i = (LinkedHashMap)props.get(i);
|
||||
String facetName_i = facetNames.get(i);
|
||||
Iterator<String> keyit = (Iterator) propMap_i.keySet().iterator();
|
||||
targetMap_i.put("type", facetName_i);
|
||||
while(keyit.hasNext()) {
|
||||
String key = keyit.next();
|
||||
targetMap_i.put(key, joProp_i.get(key).toString());
|
||||
targetMap_i.put(key, propMap_i.get(key).toString());
|
||||
}
|
||||
|
||||
//modifica per tipo ValueSchema e campo authorization
|
||||
if (facetName_i.equals("AccessPointFacet")&& propMap_i.keySet().contains("schema")&& propMap_i.keySet().contains("value")) {
|
||||
TypeProperty vs = new TypeProperty();
|
||||
/*LinkedHashMap authTypeMap = new LinkedHashMap<String, Object>();
|
||||
authTypeMap.put("type", "ValueSchema");
|
||||
authTypeMap.put("schema", (String)targetMap_i.get("schema"));
|
||||
authTypeMap.put("value", (String)targetMap_i.get("value"));
|
||||
targetMap_i.put("authorization", authTypeMap);
|
||||
targetMap_i.remove("schema");
|
||||
targetMap_i.remove("value");
|
||||
*/
|
||||
vs.setType("ValueSchema");
|
||||
vs.setSchema((String)targetMap_i.get("schema"));
|
||||
vs.setValue((String)targetMap_i.get("value"));
|
||||
targetMap_i.put("authorization", vs);
|
||||
targetMap_i.remove("schema");
|
||||
targetMap_i.remove("value");
|
||||
}
|
||||
|
||||
JSONArray extra_joProps_i = (JSONArray)extraProps.get(i);
|
||||
if(extra_joProps_i.size()!=0) {
|
||||
for(int j=0; j<extra_joProps_i.size(); j++) {
|
||||
|
|
|
@ -17,11 +17,6 @@ import lombok.NoArgsConstructor;
|
|||
public class FacetDescription {
|
||||
String type;
|
||||
Map<String,String> target;
|
||||
/*
|
||||
String type;
|
||||
FacetPropertyGroup target;
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -249,13 +249,12 @@ public class InformationSystemResource{
|
|||
String currentContext = SecretManagerProvider.instance.get().getContext();
|
||||
String result = "";
|
||||
informationSystemService.setUma(createUmaToken(currentContext));
|
||||
formData = informationSystemService.createResourceInternal(resourceType, formData);
|
||||
try {
|
||||
formData = informationSystemService.createResourceInternal(resourceType, formData);
|
||||
ResourceRegistryPublisher publisher = ResourceRegistryPublisherFactory.create();
|
||||
result = publisher.createResource(formData);
|
||||
}catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error(e.getMessage());
|
||||
log.error(e.getMessage(),e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package org.gcube.informationsystem.web.rest;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TypeProperty {
|
||||
String type;
|
||||
String schema;
|
||||
String value;
|
||||
|
||||
/*@Override
|
||||
public
|
||||
String toString(){
|
||||
return this.type+"{\"schema:"+this.schema+",\"value:"+this.value+"}";
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
// TODO Auto-generated method stub
|
||||
return "\"TypeProperty [type "+ type + ", schema = " + schema + ", value = " + value + "]";
|
||||
}
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
|
||||
|
||||
{
|
||||
"type": "HostingNode",
|
||||
"consistsOf": [
|
||||
|
|
|
@ -49,12 +49,12 @@
|
|||
<p style="color: darkgrey;">{{prop.label}}</p>
|
||||
<mat-form-field>
|
||||
<mat-label>username</mat-label>
|
||||
<input matInput formControlName="username" id="username"
|
||||
<input matInput formControlName="schema" id="username"
|
||||
type="text"/>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-label>password</mat-label>
|
||||
<input matInput formControlName="password" id="password"
|
||||
<input matInput formControlName="value" id="password"
|
||||
type="password"/>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
@ -116,8 +116,8 @@
|
|||
|
||||
</div> <!-- ends the form -->
|
||||
</mat-dialog-content>
|
||||
<span>{{myForm.value|json}}</span>
|
||||
<mat-dialog-actions align="end">
|
||||
<button mat-button type="submit" (click)="onSubmit()">Submit</button>
|
||||
<button mat-button (click)="close()">Cancel</button>
|
||||
</mat-dialog-actions>
|
||||
<!--<span>{{myForm.value|json}}</span>-->
|
|
@ -222,10 +222,10 @@ export class FacetComposerComponent implements OnInit {
|
|||
}
|
||||
if(prop.type==="typeprop"){ //TODO: forse va messo il controllo anche sul tipo di facet
|
||||
let fc2:FormControl;
|
||||
propsFg.addControl("username",fc);
|
||||
propsFg.addControl("schema",fc);
|
||||
// eslint-disable-next-line prefer-const
|
||||
fc2 = this.fb.control('') //text or typeprop
|
||||
propsFg.addControl("password",fc2);
|
||||
propsFg.addControl("value",fc2);
|
||||
}else{
|
||||
propsFg.addControl(prop.name,fc); //formGroup.addControl(prop_'controlName', formControl);
|
||||
}
|
||||
|
|
|
@ -1,69 +1,18 @@
|
|||
[
|
||||
{
|
||||
"type": "ConsistsOfType",
|
||||
"id": "998bdc11-6f96-4708-afef-0806c365d44e",
|
||||
"name": "IsIdentifiedBy",
|
||||
"description": "Each {@link GCubeResource} has been defined to have at least a facet linked with an IsIdentifiedBy relation. IsIdentifiedBy indicates that the target facet represents a sort of identification for the source resource. For instance, a software can consist of one or more {@link SoftwareFacet} but the one related with IsIdentifiedBy represents the identify of the software.",
|
||||
"version": "1.0.0",
|
||||
"changelog": {
|
||||
"1.0.0": "First Version"
|
||||
},
|
||||
"abstract": false,
|
||||
"final": false,
|
||||
"extendedTypes": [
|
||||
"ConsistsOf"
|
||||
],
|
||||
"source": {
|
||||
"type": "ResourceType",
|
||||
"id": "4251601f-6b7c-4a0f-a827-892e0cba1de8",
|
||||
"name": "Resource",
|
||||
"description": "This is the base type for any Resource",
|
||||
"facets": [
|
||||
{
|
||||
"type": "LinkedEntity",
|
||||
"source": "Resource",
|
||||
"relation": "ConsistsOf",
|
||||
"target": "Facet",
|
||||
"description": "Any Resource consists of one or more Facets which describes the different aspects of the resource.",
|
||||
"min": 1,
|
||||
"max": null
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"type": "LinkedEntity",
|
||||
"source": "Resource",
|
||||
"relation": "IsRelatedTo",
|
||||
"target": "Resource",
|
||||
"description": "Any Resource can be related to any other resource.",
|
||||
"min": 0,
|
||||
"max": null
|
||||
}
|
||||
],
|
||||
"version": "1.0.0",
|
||||
"changelog": {
|
||||
"1.0.0": "First Version"
|
||||
},
|
||||
"abstract": true,
|
||||
"final": false,
|
||||
"extendedTypes": [
|
||||
"Entity"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"type": "FacetType",
|
||||
"id": "e51b6a96-d1ba-463c-98f6-3272b0427059",
|
||||
"name": "Facet",
|
||||
"description": "This is the base type for any Facet",
|
||||
"version": "1.0.0",
|
||||
"changelog": {
|
||||
"1.0.0": "First Version"
|
||||
},
|
||||
"abstract": true,
|
||||
"final": false,
|
||||
"extendedTypes": [
|
||||
"Entity"
|
||||
]
|
||||
{
|
||||
"type": "VirtualService",
|
||||
"consistsOf": [
|
||||
{
|
||||
"type": "IsIdentifiedBy",
|
||||
"target": {
|
||||
"type": "SoftwareFacet",
|
||||
"optional": "true",
|
||||
"name": "nomevs1",
|
||||
"group": "g1",
|
||||
"description": "",
|
||||
"qualifier": "",
|
||||
"version": "v1"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"isRelatedTo": []
|
||||
}
|
|
@ -1,447 +1,194 @@
|
|||
{
|
||||
"name": "EService",
|
||||
"fatherId": null,
|
||||
"description": "EService is any running service that is registered in the infrastructure and made available by an access point.",
|
||||
"astratto": false,
|
||||
"facetSpecs": [
|
||||
{
|
||||
"name": "SoftwareFacet",
|
||||
"description": "SoftwareFacet captures information on any software associated with the resource.",
|
||||
"properties": null,
|
||||
"guiProps": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Name",
|
||||
"name": "name",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The name of the software artifact being described, e.g., artifactId in maven coordinates, the software name for retail software such as 'Office' (in Microsoft\u2122 Office 2013-SP2)"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Optional",
|
||||
"name": "optional",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "Used to indicate the software optionality, e.g., optional in maven coordinates"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Group",
|
||||
"name": "group",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The name of 'group' the software artifact belongs to, e.g., groupId in maven coordinates, company name for retail software software such as 'Microsoft\u2122' (in Microsoft\u2122 Office 2013-SP2)"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Description",
|
||||
"name": "description",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "A human oriented description of the software artifact being described"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Version",
|
||||
"name": "version",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The particular release of the software artifact, e.g., version in maven coordinates, the software version for retail software such as '2013-SP2' (in Microsoft\u2122 Office 2013-SP2)"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Qualifier",
|
||||
"name": "qualifier",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "A qualifier for the software, e.g., packaging or scope in maven coordinates, target architecture for retail software such as x86 or amd64"
|
||||
}
|
||||
],
|
||||
"relationOptions": [
|
||||
"IsIdentifiedBy"
|
||||
],
|
||||
"relation": "IsIdentifiedBy",
|
||||
"min": "1",
|
||||
"max": "1"
|
||||
},
|
||||
{
|
||||
"name": "SoftwareFacet",
|
||||
"description": "SoftwareFacet captures information on any software associated with the resource.",
|
||||
"properties": null,
|
||||
"guiProps": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Name",
|
||||
"name": "name",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The name of the software artifact being described, e.g., artifactId in maven coordinates, the software name for retail software such as 'Office' (in Microsoft\u2122 Office 2013-SP2)"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Optional",
|
||||
"name": "optional",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "Used to indicate the software optionality, e.g., optional in maven coordinates"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Group",
|
||||
"name": "group",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The name of 'group' the software artifact belongs to, e.g., groupId in maven coordinates, company name for retail software software such as 'Microsoft\u2122' (in Microsoft\u2122 Office 2013-SP2)"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Description",
|
||||
"name": "description",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "A human oriented description of the software artifact being described"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Version",
|
||||
"name": "version",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The particular release of the software artifact, e.g., version in maven coordinates, the software version for retail software such as '2013-SP2' (in Microsoft\u2122 Office 2013-SP2)"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Qualifier",
|
||||
"name": "qualifier",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "A qualifier for the software, e.g., packaging or scope in maven coordinates, target architecture for retail software such as x86 or amd64"
|
||||
}
|
||||
],
|
||||
"relationOptions": [
|
||||
"ConsistsOf",
|
||||
"HasAction",
|
||||
"HasAddAction",
|
||||
"HasRemoveAction",
|
||||
"HasContact",
|
||||
"HasContributor",
|
||||
"HasCreator",
|
||||
"HasCurator",
|
||||
"HasDeveloper",
|
||||
"HasMaintainer",
|
||||
"HasManager",
|
||||
"HasOwner",
|
||||
"HasCoverage",
|
||||
"HasSpatialCoverage",
|
||||
"HasTemporalCoverage",
|
||||
"HasMemory",
|
||||
"HasPersistentMemory",
|
||||
"HasVolatileMemory",
|
||||
"IsIdentifiedBy"
|
||||
],
|
||||
"relation": "ConsistsOf",
|
||||
"min": "0",
|
||||
"max": "many"
|
||||
},
|
||||
{
|
||||
"name": "AccessPointFacet",
|
||||
"description": "AccessPointFacet captures information on an 'access point' of a resource, i.e., any web-based endpoint to programmatically interact with the resource via a known protocol. For example, it is used to define the network endpoint to contact the service. The endpoint can expose a well-known high-level protocol.",
|
||||
"properties": null,
|
||||
"guiProps": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Authorization",
|
||||
"name": "authorization",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "Contains authorisation information. e.g., a token, the couple username:password, etc."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Endpoint",
|
||||
"name": "endpoint",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The URI which characterises the specific endpoint instance."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Protocol",
|
||||
"name": "protocol",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "The high-level protocol used by the access point. The String could contain the version if needed. e.g., Web Map Service (WMS) and not HyperText Transfer Protocol (HTTP) which is already contained in the URI."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "EntryName",
|
||||
"name": "entryName",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "A distinguishing string to be used by clients to identify the access point of interest."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Description",
|
||||
"name": "description",
|
||||
"value": "",
|
||||
"validations": [],
|
||||
"pattern": null,
|
||||
"propDescription": "A human-oriented text accompanying the access point."
|
||||
}
|
||||
],
|
||||
"relationOptions": [
|
||||
"ConsistsOf",
|
||||
"HasAction",
|
||||
"HasAddAction",
|
||||
"HasRemoveAction",
|
||||
"HasContact",
|
||||
"HasContributor",
|
||||
"HasCreator",
|
||||
"HasCurator",
|
||||
"HasDeveloper",
|
||||
"HasMaintainer",
|
||||
"HasManager",
|
||||
"HasOwner",
|
||||
"HasCoverage",
|
||||
"HasSpatialCoverage",
|
||||
"HasTemporalCoverage",
|
||||
"HasMemory",
|
||||
"HasPersistentMemory",
|
||||
"HasVolatileMemory",
|
||||
"IsIdentifiedBy"
|
||||
],
|
||||
"relation": "ConsistsOf",
|
||||
"min": "1",
|
||||
"max": "many"
|
||||
},
|
||||
{
|
||||
"name": "EventFacet",
|
||||
"description": "EventFacet captures information on a certain event/happening characterising the life cycle of the resource. Examples of an event are the start time of a virtual machine or the activation time of an electronic service.",
|
||||
"properties": null,
|
||||
"guiProps": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Event",
|
||||
"name": "event",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The typology of event"
|
||||
},
|
||||
{
|
||||
"type": "date",
|
||||
"label": "Date",
|
||||
"name": "date",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The time the event took place/occurred"
|
||||
}
|
||||
],
|
||||
"relationOptions": [
|
||||
"ConsistsOf",
|
||||
"HasAction",
|
||||
"HasAddAction",
|
||||
"HasRemoveAction",
|
||||
"HasContact",
|
||||
"HasContributor",
|
||||
"HasCreator",
|
||||
"HasCurator",
|
||||
"HasDeveloper",
|
||||
"HasMaintainer",
|
||||
"HasManager",
|
||||
"HasOwner",
|
||||
"HasCoverage",
|
||||
"HasSpatialCoverage",
|
||||
"HasTemporalCoverage",
|
||||
"HasMemory",
|
||||
"HasPersistentMemory",
|
||||
"HasVolatileMemory",
|
||||
"IsIdentifiedBy"
|
||||
],
|
||||
"relation": "ConsistsOf",
|
||||
"min": "1",
|
||||
"max": "many"
|
||||
},
|
||||
{
|
||||
"name": "StateFacet",
|
||||
"description": "StateFacet captures information on state to be associated with the resource. The state is captured by any controlled vocabulary which is an integral part of the facet. Examples of usage are the state of service e.g., running or down or the state of a virtual machine e.g., activated or unreachable.",
|
||||
"properties": null,
|
||||
"guiProps": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Value",
|
||||
"name": "value",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The value of the state"
|
||||
}
|
||||
],
|
||||
"relationOptions": [
|
||||
"ConsistsOf",
|
||||
"HasAction",
|
||||
"HasAddAction",
|
||||
"HasRemoveAction",
|
||||
"HasContact",
|
||||
"HasContributor",
|
||||
"HasCreator",
|
||||
"HasCurator",
|
||||
"HasDeveloper",
|
||||
"HasMaintainer",
|
||||
"HasManager",
|
||||
"HasOwner",
|
||||
"HasCoverage",
|
||||
"HasSpatialCoverage",
|
||||
"HasTemporalCoverage",
|
||||
"HasMemory",
|
||||
"HasPersistentMemory",
|
||||
"HasVolatileMemory",
|
||||
"IsIdentifiedBy"
|
||||
],
|
||||
"relation": "ConsistsOf",
|
||||
"min": "1",
|
||||
"max": "1"
|
||||
},
|
||||
{
|
||||
"name": "LicenseFacet",
|
||||
"description": "LicenseFacet captures information on any license associated with the resource to capture the policies governing its exploitation and use. Example of use is the licence of a dataset e.g., Creative Commons Attribution (CC-BY) or the licence of software such as GPL. This facet is used to provide for human knowledge, but it is not excluded the usage by infrastructure services which enforces the respect of the licence e.g., a service which denies the usage of a dataset with Creative Commons Attribution No-Derivatives (CC-BY-ND)licence to produce a new dataset.",
|
||||
"properties": null,
|
||||
"guiProps": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Name",
|
||||
"name": "name",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The common name of the license. e.g., European Union Public Licence (EUPL) 1.1, GNU General Public License (GPL) 2, Berkeley Software Distribution (BSD), Common Creative (CC)."
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "TextURL",
|
||||
"name": "textURL",
|
||||
"value": "",
|
||||
"validations": [
|
||||
{
|
||||
"name": "required",
|
||||
"validator": "required",
|
||||
"message": "The field is required"
|
||||
}
|
||||
],
|
||||
"pattern": null,
|
||||
"propDescription": "The URL to the actual text of the license."
|
||||
}
|
||||
],
|
||||
"relationOptions": [
|
||||
"ConsistsOf",
|
||||
"HasAction",
|
||||
"HasAddAction",
|
||||
"HasRemoveAction",
|
||||
"HasContact",
|
||||
"HasContributor",
|
||||
"HasCreator",
|
||||
"HasCurator",
|
||||
"HasDeveloper",
|
||||
"HasMaintainer",
|
||||
"HasManager",
|
||||
"HasOwner",
|
||||
"HasCoverage",
|
||||
"HasSpatialCoverage",
|
||||
"HasTemporalCoverage",
|
||||
"HasMemory",
|
||||
"HasPersistentMemory",
|
||||
"HasVolatileMemory",
|
||||
"IsIdentifiedBy"
|
||||
],
|
||||
"relation": "ConsistsOf",
|
||||
"min": "0",
|
||||
"max": "many"
|
||||
}
|
||||
"type": "EService",
|
||||
"supertypes": [
|
||||
"Service",
|
||||
"GCubeResource",
|
||||
"Resource"
|
||||
],
|
||||
"children": []
|
||||
"id": "0b1fee4f-2a8a-4ee3-b328-685989b5ec20",
|
||||
"consistsOf": [
|
||||
{
|
||||
"type": "IsIdentifiedBy",
|
||||
"supertypes": [
|
||||
"ConsistsOf"
|
||||
],
|
||||
"id": "54aaf524-9b4b-4aa0-bd31-9603ffc0d18b",
|
||||
"propagationConstraint": {
|
||||
"type": "PropagationConstraint",
|
||||
"add": "propagate",
|
||||
"delete": "cascade",
|
||||
"remove": "cascade",
|
||||
"supertypes": [
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"type": "SoftwareFacet",
|
||||
"supertypes": [
|
||||
"Facet"
|
||||
],
|
||||
"id": "afb3a822-152d-41dd-b335-0a2cc4884537",
|
||||
"qualifier": null,
|
||||
"name": "WhnManager",
|
||||
"description": "Web Hosting Node Service",
|
||||
"optional": false,
|
||||
"version": "2.0.1",
|
||||
"group": "VREManagement"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ConsistsOf",
|
||||
"id": "ec3cb2f2-1a43-4aae-8401-39ab6c98affa",
|
||||
"propagationConstraint": {
|
||||
"type": "PropagationConstraint",
|
||||
"add": "propagate",
|
||||
"delete": "cascade",
|
||||
"remove": "cascade",
|
||||
"supertypes": [
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"type": "AccessPointFacet",
|
||||
"supertypes": [
|
||||
"Facet"
|
||||
],
|
||||
"id": "339ce36c-910d-4134-957b-8688c8fdfbeb",
|
||||
"authorization": {
|
||||
"type": "ValueSchema",
|
||||
"schema": "nomeutente",
|
||||
"value": "passwordkriptata",
|
||||
"supertypes": [
|
||||
"GCubeProperty",
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"endpoint": "http://accounting-service-2.cloud-dev.d4science.org:80/whn-manager/gcube/vremanagement/ws/whnmanager",
|
||||
"protocol": null,
|
||||
"entryName": "whnmanager",
|
||||
"description": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ConsistsOf",
|
||||
"id": "6fed1692-bdd1-4d9d-a19a-a4f424cea3ac",
|
||||
"propagationConstraint": {
|
||||
"type": "PropagationConstraint",
|
||||
"add": "propagate",
|
||||
"delete": "cascade",
|
||||
"remove": "cascade",
|
||||
"supertypes": [
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"type": "AccessPointFacet",
|
||||
"supertypes": [
|
||||
"Facet"
|
||||
],
|
||||
"id": "b4a18192-5b4c-4960-bb0b-06214ac6b60a",
|
||||
"authorization": {
|
||||
"type": "ValueSchema",
|
||||
"schema": null,
|
||||
"value": "gcube-token",
|
||||
"supertypes": [
|
||||
"GCubeProperty",
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"endpoint": "http://accounting-service-2.cloud-dev.d4science.org:80/whn-manager/gcube/resource",
|
||||
"protocol": null,
|
||||
"entryName": "WhnManager-remote-management",
|
||||
"description": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ConsistsOf",
|
||||
"id": "3af14b28-a74d-458a-ab2f-7c9d6ae3eec4",
|
||||
"propagationConstraint": {
|
||||
"type": "PropagationConstraint",
|
||||
"add": "propagate",
|
||||
"delete": "cascade",
|
||||
"remove": "cascade",
|
||||
"supertypes": [
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"type": "StateFacet",
|
||||
"supertypes": [
|
||||
"Facet"
|
||||
],
|
||||
"id": "034699e1-e619-44ac-8da2-838acc13e242",
|
||||
"date": "2024-04-29 16:21:29.682 +0200",
|
||||
"value": "ready"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ConsistsOf",
|
||||
"id": "540e7db4-eb2a-4af0-9d9f-6b05640e7314",
|
||||
"propagationConstraint": {
|
||||
"type": "PropagationConstraint",
|
||||
"add": "propagate",
|
||||
"delete": "cascade",
|
||||
"remove": "cascade",
|
||||
"supertypes": [
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"type": "EventFacet",
|
||||
"supertypes": [
|
||||
"Facet"
|
||||
],
|
||||
"id": "5f435b65-cadb-42be-8d3d-41c8d4d9aea4",
|
||||
"date": "2024-03-08 13:41:28.917 +0100",
|
||||
"event": "started"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ConsistsOf",
|
||||
"id": "27c3838a-ed80-4ccd-b1b8-f1b84f79297a",
|
||||
"propagationConstraint": {
|
||||
"type": "PropagationConstraint",
|
||||
"add": "propagate",
|
||||
"delete": "cascade",
|
||||
"remove": "cascade",
|
||||
"supertypes": [
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"type": "EventFacet",
|
||||
"supertypes": [
|
||||
"Facet"
|
||||
],
|
||||
"id": "3f3805c8-e6d6-48a3-99e6-113fdf35549a",
|
||||
"date": "2024-04-29 16:21:29.682 +0200",
|
||||
"event": "ready"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ConsistsOf",
|
||||
"id": "b4b58d9d-fa3f-428c-9091-15c17396c759",
|
||||
"propagationConstraint": {
|
||||
"type": "PropagationConstraint",
|
||||
"add": "propagate",
|
||||
"delete": "cascade",
|
||||
"remove": "cascade",
|
||||
"supertypes": [
|
||||
"Property"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"type": "EventFacet",
|
||||
"supertypes": [
|
||||
"Facet"
|
||||
],
|
||||
"id": "970cb0e8-7cca-4fb3-8fbe-323439f0800a",
|
||||
"date": "2024-03-08 13:40:38.203 +0100",
|
||||
"event": "down"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue