diff --git a/src/main/java/fr/inra/oresing/OreSiAnonymousRequestClient.java b/src/main/java/fr/inra/oresing/OreSiAnonymousRequestClient.java index c3fd6bb9aff548aecdd0f6234867dc8a41c66228..fa8941cd14d9c08ae779b3910958da90f62440ff 100644 --- a/src/main/java/fr/inra/oresing/OreSiAnonymousRequestClient.java +++ b/src/main/java/fr/inra/oresing/OreSiAnonymousRequestClient.java @@ -1,8 +1,8 @@ package fr.inra.oresing; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.DisconnectedException; import fr.inra.oresing.domain.repository.authorization.role.OreSiAnonymousRole; import fr.inra.oresing.domain.repository.authorization.role.OreSiRole; -import fr.inra.oresing.domain.exceptions.authentication.authentication.DisconnectedException; import org.apache.commons.lang3.builder.ToStringBuilder; import java.util.UUID; diff --git a/src/main/java/fr/inra/oresing/domain/Authorization.java b/src/main/java/fr/inra/oresing/domain/Authorization.java index cb17308f4ff93b234e00756bbecc6995e59bdcb6..a6d166cbef78b0e76b7b7d91fad0afe8bfea0dba 100644 --- a/src/main/java/fr/inra/oresing/domain/Authorization.java +++ b/src/main/java/fr/inra/oresing/domain/Authorization.java @@ -16,12 +16,6 @@ public class Authorization { this.timeScope = timeScope; } - public Authorization(final LocalDateTimeRange timeScope) { - super(); - this.requiredAuthorizations = null; - this.timeScope = timeScope; - } - public Authorization() { super(); } diff --git a/src/main/java/fr/inra/oresing/domain/AuthorizationTree.java b/src/main/java/fr/inra/oresing/domain/AuthorizationTree.java deleted file mode 100644 index bb4577c14b86347c9806237a0adb5c2546271ba0..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/AuthorizationTree.java +++ /dev/null @@ -1,6 +0,0 @@ -package fr.inra.oresing.domain; - -import java.util.HashMap; - -public class AuthorizationTree extends HashMap<String, AuthorizationTree> { -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/OreSiReferenceAuthorization.java b/src/main/java/fr/inra/oresing/domain/OreSiReferenceAuthorization.java deleted file mode 100644 index 227c4905a0b74ca100f17631e7723e0da003ec91..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/OreSiReferenceAuthorization.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.inra.oresing.domain; - -import fr.inra.oresing.persistence.OperationReferenceType; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -@Getter -@Setter -@ToString(callSuper = true) -public class OreSiReferenceAuthorization extends OreSiEntity { - private String name; - private Set<UUID> oreSiUsers; - private UUID application; - private Map<OperationReferenceType, List<String>> references; -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/additionalfiles/AdditionalFilesInfos.java b/src/main/java/fr/inra/oresing/domain/additionalfiles/AdditionalFilesInfos.java index 5ede04a45ec2b9e932e75028df202fdf9aa62a47..ed2fc66561ebb015838e3f03af8102641fca6d59 100644 --- a/src/main/java/fr/inra/oresing/domain/additionalfiles/AdditionalFilesInfos.java +++ b/src/main/java/fr/inra/oresing/domain/additionalfiles/AdditionalFilesInfos.java @@ -37,10 +37,6 @@ public class AdditionalFilesInfos { } - public enum Order { - ASC, DESC - } - @Getter @Setter public static class FieldFilters { @@ -57,45 +53,13 @@ public class AdditionalFilesInfos { //@ApiModelProperty(notes = "true for regexp filter", required = false) public Boolean isRegExp = false; - public FieldFilters() { - super(); - } - - public FieldFilters(final String field, final String filter, final String type, final String format, final IntervalValues intervalValues, final Boolean isRegExp) { - super(); - this.field = field; - this.filter = filter; - this.type = type; - this.format = format; - this.intervalValues = intervalValues; - this.isRegExp = isRegExp; - } - public String getFilter() { return filter != null ? filter : null; } - - public Boolean isNumeric() { - return "numeric".equals(type); - } - - public Boolean isdDate() { - return "date".equals(type); - } } public static class IntervalValues { public String from; public String to; - - public IntervalValues(final String from, final String to) { - super(); - this.from = from; - this.to = to; - } - - public IntervalValues() { - super(); - } } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/application/Application.java b/src/main/java/fr/inra/oresing/domain/application/Application.java index bd7358eaece89039efe7e5c98318490df0fcdf50..a09d0dbb0661640b4941c54f37a2e810c47b6158 100644 --- a/src/main/java/fr/inra/oresing/domain/application/Application.java +++ b/src/main/java/fr/inra/oresing/domain/application/Application.java @@ -64,20 +64,6 @@ public class Application extends OreSiEntity { return returnApp; } - public Map<String, DynamicComponent> getDynamicComponents(final String dataComponent) { - final Map<String, ComponentDescription> componentDescriptions = Optional.ofNullable(configuration) - .map(Configuration::dataDescription) - .map(map -> map.get(dataComponent)) - .map(StandardDataDescription::componentDescriptions) - .orElse(null); - if (componentDescriptions == null) { - return Map.of(); - } - return Maps.transformValues( - Maps.filterValues(componentDescriptions, DynamicComponent.class::isInstance), - DynamicComponent.class::cast); - } - public Optional<StandardDataDescription> findData(String dataName) { Function<Map<String, StandardDataDescription>, StandardDataDescription> getDataDescription = data -> data.get(dataName); return Optional.of(findData()) @@ -102,11 +88,6 @@ public class Application extends OreSiEntity { .map(Configuration::rightsRequest); } - public Optional<RightRequestDescription> findAdditionalFiles() { - return Optional.of(getConfiguration()) - .map(Configuration::rightsRequest); - } - public Optional<Internationalizations> findInternationalizations() { return Optional.of(getConfiguration()) .map(Configuration::i18n); @@ -117,28 +98,6 @@ public class Application extends OreSiEntity { .map(Configuration::applicationDescription); } - public Map<String, Submission.SubmissionScope> findSubmission() { - Map<String, StandardDataDescription> data = configuration.dataDescription(); - if (data == null) { - return Map.of(); - } - Map<String, Submission.SubmissionScope> submissions = new HashMap<>(); - data.forEach((dataName, dataDescription) -> dataDescription.findSubmissionScope() - .ifPresent(authorizations -> submissions.put(dataName, authorizations))); - return submissions; - } - - public Map<String, Authorization> findAuthorizations() { - Map<String, StandardDataDescription> data = configuration.dataDescription(); - if (data == null) { - return Map.of(); - } - Map<String, Authorization> authorizations = new HashMap<>(); - data.keySet().forEach((dataName) -> findAuthorizations(dataName) - .ifPresent(authorization -> authorizations.put(dataName, authorization))); - return authorizations; - } - public boolean existsData(String dataName) { return findData(dataName).isPresent(); } @@ -148,11 +107,6 @@ public class Application extends OreSiEntity { .map(StandardDataDescription::submission); } - public Optional<Authorization> findAuthorizations(String dataName) { - return findData(dataName) - .map(StandardDataDescription::authorization); - } - public String internationalizeHeader(String dataName, String componentName, String language) { return Optional.ofNullable(getConfiguration().i18n()) .map(Internationalizations::getData) @@ -166,17 +120,6 @@ public class Application extends OreSiEntity { .orElse(componentName)); } - public String internationalizeHeaderDescription(String dataName, String componentName, String language) { - return Optional.ofNullable(getConfiguration().i18n()) - .map(Internationalizations::getData) - .map(data -> data.get(dataName)) - .map(InternationalizationData::getComponents) - .map(component -> component.get(componentName)) - .map(InternationalizationComponent::getExportHeader) - .map(exportHeader -> exportHeader.getDescription().get(Locale.of(language))) - .orElse(null); - } - private Function<Node, Optional<Node>> findParentNodeForDataName(String dataName) { return node -> findParentNode(dataName, node); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java index a1c01651716a717f46ce41dfc62baa03e720d55c..6406bda022ebf9a784753eadb2a1082aca887c83 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ComponentDescription.java @@ -40,10 +40,6 @@ public sealed interface ComponentDescription permits BasicComponent, ComputedCom String exportHeaderName(); - default boolean required() { - return false; - } - default ComponentPresenceConstraint mandatory() { return ComponentPresenceConstraint.OPTIONAL; } @@ -59,18 +55,6 @@ public sealed interface ComponentDescription permits BasicComponent, ComputedCom ComponentDescription withSubmission(String submission); - default Set<LineChecker> buildLineChecker(final DataRepository referenceValueRepository, - final PublishContext.PublishContextBuilder publishContextBuilder, - final Application application) { - final ImmutableSet.Builder<LineChecker> lineCheckerBuilder = new ImmutableSet.Builder<>(); - if (checker() != null) { - return toLineChecker(referenceValueRepository, publishContextBuilder, application); - } - return Set.of(); - - } - - private Set<LineChecker> toLineChecker(DataRepository referenceValueRepository, PublishContext.PublishContextBuilder publishContextBuilder, Application application) { final DataColumn target = new DataColumn(componentKey()); final LineChecker.LineTransformer lineTransformer = transformation() == null ? @@ -106,10 +90,6 @@ public sealed interface ComponentDescription permits BasicComponent, ComputedCom }; } - default String getExportHeaderName() { - return Optional.ofNullable(exportHeaderName()).orElse(Optional.ofNullable(importHeader()).orElse(componentKey())); - } - default TransformationConfiguration transformation() { return null; } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/ComputedComponent.java b/src/main/java/fr/inra/oresing/domain/application/configuration/ComputedComponent.java index 1ffdf540bbc597357958cd7a7489a5f6ab14c986..a720c09d818e35ea882c9634f6951f494f6d2404 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/ComputedComponent.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/ComputedComponent.java @@ -38,10 +38,5 @@ public record ComputedComponent(ComponentDescriptionType type, computationChecker(), submission); } - Multiplicity multiplicity(){ - return Optional.ofNullable(checker) - .map(CheckerDescription::multiplicity) - .orElse(Multiplicity.ONE); - } } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java b/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java index faed495d3b8d39e89042267ce6cc44338062a5f9..226ed223d8e9e5310aab1036aa950af3b5739630 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/Configuration.java @@ -52,7 +52,8 @@ public record Configuration(Version version, Set<Tag> tags, } public LinkedHashMap<String, StandardDataDescription> componentDescriptionAccordingToRights() { - return dataDescription().entrySet().stream().peek(entry -> { + return dataDescription().entrySet().stream() + /*.peek(entry -> { final String key = entry.getKey(); final StandardDataDescription componentDescription = entry.getValue(); ComponentDescription componentDescriptionccordingToRights = new FilteredDescriptionComponent( @@ -62,7 +63,7 @@ public record Configuration(Version version, Set<Tag> tags, null ); - }) + })*/ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new)); } @@ -102,21 +103,6 @@ public record Configuration(Version version, Set<Tag> tags, .map(getDataDescription); } - public Optional<ComponentDescription> findComponentOfData(String dataName, String componentName) { - Function<Map<String, ComponentDescription>, ComponentDescription> getComponentDescription = components -> components.get(componentName); - return findData(dataName) - .map(StandardDataDescription::componentDescriptions) - .map(getComponentDescription); - } - - public Map<String, Submission.SubmissionScope> findSubmission() { - Map<String, Submission.SubmissionScope> submissions = new HashMap<>(); - dataDescription().forEach((dataName, dataDescription) -> dataDescription.findSubmissionScope() - .ifPresent(authorizations -> submissions.put(dataName, authorizations))); - return submissions; - } - - public TreeSet<Node> orderedNodes() { TreeSet<Node> nodes = new TreeSet<>(); hierarchicalNodes().stream() @@ -210,22 +196,6 @@ public record Configuration(Version version, Set<Tag> tags, )); } - public String getInternationalizedHeaderDescription(String dataName, - String componentName, - String locale) { - Optional<InternationalizationTitle> localizedExportHeaders = Optional.ofNullable(i18n()) - .map(Internationalizations::getData) - .map(stringInternationalizationDataMap -> stringInternationalizationDataMap.get(dataName)) - .map(InternationalizationData::getComponents) - .map(stringInternationalizationComponentMap -> stringInternationalizationComponentMap.get(componentName)) - .map(InternationalizationComponent::getExportHeader); - return localizedExportHeaders - .map(InternationalizationTitle::getDescription) - .map(localizationMap -> localizationMap.get(Locale.of(locale))) - .orElse(null); - - } - public String getInternationalizedHeader(String dataName, String componentName, String locale) { diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/Submission.java b/src/main/java/fr/inra/oresing/domain/application/configuration/Submission.java index 5af7bd37e1d90439a8eafa9a61adc9e983afb9ac..54d9ce71ade2c4ba8fb24c15ae291b92e31b7493 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/Submission.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/Submission.java @@ -112,7 +112,7 @@ public record Submission( for (int i = patternGroups().size(); i > 0; i--) { PatternPosition patternGroup = patternGroups().get(i-1); patternToBeReplacedByGroupCapture = new StringBuilder(patternToBeReplacedByGroupCapture.substring(0, patternGroup.start())) - .append("%s") + .append("%%%d$s".formatted(i)) .append(patternToBeReplacedByGroupCapture.substring(patternGroup.end())) .toString(); } diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentExampleBuilder.java index e957dccd1cd2e9046dd6d39e317888ed9e8fed77..99c8345d6da97b2ee8b5de29a9ffce868ab0f5ba 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/PatternComponentExampleBuilder.java @@ -29,7 +29,7 @@ class PatternComponentExampleBuilder { children.put(ConfigurationSchemaNode.OA_PATTERN_FOR_COMPONENTS, new StringType(pattern)); children.put(ConfigurationSchemaNode.OA_TAGS, new CollectionType.ArrayType<>( - TagExampleBuilder.buildTagArray(Arrays.asList("context")), + TagExampleBuilder.buildTagArray(List.of("context")), false, false, StringType.EMPTY_INSTANCE() diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceScopeTypeExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceScopeTypeExampleBuilder.java index 71547319b38c83c2fce05ef1810c0494b18e4771..7486f292299fc4093eaf8ff22239613f4ebbef62 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceScopeTypeExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/ReferenceScopeTypeExampleBuilder.java @@ -12,7 +12,7 @@ import java.util.List; public class ReferenceScopeTypeExampleBuilder { public static final CollectionType.ArrayType<ReferenceScopeType> REFERENCE_SCOPES = buildReferenceScopes( - Arrays.asList( + List.of( new ReferenceScopeType(createReferenceScopeMap()) ) ); diff --git a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java index e53674c62bd53bc79c3c6fc2881e81ae4fc61e8e..bcb47991dd887d7f9413e6b47a0f49f4524cd59d 100644 --- a/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java +++ b/src/main/java/fr/inra/oresing/domain/application/configuration/examples/TitleExampleBuilder.java @@ -15,122 +15,122 @@ class TitleExampleBuilder { buildI18n("Indic de qualité", "Quality class"), buildI18n("0 pour une valeur valide ; 2 pour une valeur incorrecte", " 0 for valid value; 2 for bad value")); public static final ConfigurationSchemaNodeType RIGHT_REQUEST_DESCRIPTION = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( "Formulaire de demande de droits de l'application MONSORE", "MONSORE App Rights Request Form"), - I18nExampleBuilder.buildI18n( + buildI18n( "Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire", "You can request rights to the monsore application by filling out this form") ); public static final TitleType SITES_NOM_FR = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( "Nom du site", null), - I18nExampleBuilder.buildI18n( + buildI18n( "Le nom du site", null) ); public static final TitleType SITES_NOM_EN = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( null, "Site name"), - I18nExampleBuilder.buildI18n( + buildI18n( null, "A site name") ); public static final TitleType TYPE_SITES_NOM_FR = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( "Nom du type de site", null), - I18nExampleBuilder.buildI18n( + buildI18n( "Le nom du type de site", null) ); public static final TitleType TYPE_SITES_NOM_EN = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( null, "Site type name"), - I18nExampleBuilder.buildI18n( + buildI18n( null, "A site type name") ); public static final TitleType TYPE_SITES_DEFINITION_FR = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( "Description du type de site", null), - I18nExampleBuilder.buildI18n( + buildI18n( "Une description du type de site", null) ); public static final TitleType TYPE_SITES_DEFINITION_EN = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( null, "Site type description"), - I18nExampleBuilder.buildI18n( + buildI18n( null, "A site type description") ); public static final TitleType SITES_DEFINITION_EN = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( null, "Site description"), - I18nExampleBuilder.buildI18n( + buildI18n( null, "A site description") ); public static final TitleType SITES_PARENT = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( "Site parent", "Parent site"), - I18nExampleBuilder.buildI18n( + buildI18n( "La zone d'étude parente contenant le site.", "The parent study area containing the site.") ); public static final TitleType PROJET_NOM_FR = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( "Nom du projet", null), - I18nExampleBuilder.buildI18n( + buildI18n( "Le nom du projet", null) ); public static final TitleType PROJET_NOM_EN = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( null, "Project name"), - I18nExampleBuilder.buildI18n( + buildI18n( null, "The project name") ); public static final TitleType PROJET_DEFINITION_FR = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( "Définition du projet", null), - I18nExampleBuilder.buildI18n( + buildI18n( "Une description du projet", null) ); public static final TitleType PROJET_DEFINITION_EN = TitleExampleBuilder.buildTitle( - I18nExampleBuilder.buildI18n( + buildI18n( null, "Project définition"), - I18nExampleBuilder.buildI18n( + buildI18n( null, "A roject description") ); @@ -201,69 +201,69 @@ class TitleExampleBuilder { ); protected static final TitleType TYPE_SITE = buildTitle( - I18nExampleBuilder.buildI18n("Type de zone d'étude", "Site type"), - I18nExampleBuilder.buildI18n("Type de zone d'étude", "Site type") + buildI18n("Type de zone d'étude", "Site type"), + buildI18n("Type de zone d'étude", "Site type") ); protected static final TitleType TYPE_SITE_COLUMN = buildTitle( - I18nExampleBuilder.buildI18n("Type de zone d'étude", "Site type"), - I18nExampleBuilder.buildI18n("Nom du type de zone d'étude", "Site type name") + buildI18n("Type de zone d'étude", "Site type"), + buildI18n("Nom du type de zone d'étude", "Site type name") ); protected static final TitleType END_DATE = buildTitle( - I18nExampleBuilder.buildI18n("Date de fin", "End date"), - I18nExampleBuilder.buildI18n("Date de fin", "End date") + buildI18n("Date de fin", "End date"), + buildI18n("Date de fin", "End date") ); protected static final TitleType HEURE = buildTitle( - I18nExampleBuilder.buildI18n("Heure", "Time"), - I18nExampleBuilder.buildI18n("Heure", "Time") + buildI18n("Heure", "Time"), + buildI18n("Heure", "Time") ); protected static final TitleType MASSE = buildTitle( - I18nExampleBuilder.buildI18n("Masse", "Mass"), - I18nExampleBuilder.buildI18n("Masse", "Mass") + buildI18n("Masse", "Mass"), + buildI18n("Masse", "Mass") ); protected static final TitleType OUTIL = buildTitle( - I18nExampleBuilder.buildI18n("Outil", "Tool"), - I18nExampleBuilder.buildI18n("Outil", "Tool") + buildI18n("Outil", "Tool"), + buildI18n("Outil", "Tool") ); protected static final TitleType ESPECE_COLUMN = buildTitle( - I18nExampleBuilder.buildI18n("Espèce", "Species"), - I18nExampleBuilder.buildI18n("Espèce", "Species") + buildI18n("Espèce", "Species"), + buildI18n("Espèce", "Species") ); protected static final TitleType START_DATE_COLUMN = buildTitle( - I18nExampleBuilder.buildI18n("Date de début", "Start date"), - I18nExampleBuilder.buildI18n("Date de début", "Start date") + buildI18n("Date de début", "Start date"), + buildI18n("Date de début", "Start date") ); protected static final TitleType SITE_COLUMN = buildTitle( - I18nExampleBuilder.buildI18n("Site", null), - I18nExampleBuilder.buildI18n("Nom du site", "Site Name") + buildI18n("Site", null), + buildI18n("Nom du site", "Site Name") ); protected static final TitleType SITE_PARENT = buildTitle( - I18nExampleBuilder.buildI18n("Site parent", "Parent site"), - I18nExampleBuilder.buildI18n("Nom du site parent", "Parent site name") + buildI18n("Site parent", "Parent site"), + buildI18n("Nom du site parent", "Parent site name") ); protected static final TitleType TYPE_DE_SITES = buildTitle( - I18nExampleBuilder.buildI18n("Type de site", "Site types"), - I18nExampleBuilder.buildI18n("Nom du type de site", "Site type name") + buildI18n("Type de site", "Site types"), + buildI18n("Nom du type de site", "Site type name") ); protected static final TitleType REPETITION = buildTitle( - I18nExampleBuilder.buildI18n("Répétition", "Repetition"), - I18nExampleBuilder.buildI18n("N° de la répétition", "Repetition number") + buildI18n("Répétition", "Repetition"), + buildI18n("N° de la répétition", "Repetition number") ); protected static final TitleType PROFONDEUR = buildTitle( - I18nExampleBuilder.buildI18n("Profondeur", "Depth"), - I18nExampleBuilder.buildI18n("Profondeur en valeur positive", "Depth in positive value") + buildI18n("Profondeur", "Depth"), + buildI18n("Profondeur en valeur positive", "Depth in positive value") ); protected static final TitleType DATE_TIME = buildTitle( - I18nExampleBuilder.buildI18n("Date complète", "Complete date"), - I18nExampleBuilder.buildI18n("Date complète au format dd/MM/yyyy HH:mm:ss", "Complete date with format dd/MM/yyyy HH:mm:ss") + buildI18n("Date complète", "Complete date"), + buildI18n("Date complète au format dd/MM/yyyy HH:mm:ss", "Complete date with format dd/MM/yyyy HH:mm:ss") ); protected static final TitleType SWC = buildTitle( - I18nExampleBuilder.buildI18n("Humidité volumique du sol", "Soil water content"), - I18nExampleBuilder.buildI18n("Définit l'humidité volumique du sol", "Define the soil water content") + buildI18n("Humidité volumique du sol", "Soil water content"), + buildI18n("Définit l'humidité volumique du sol", "Define the soil water content") ); protected static final TitleType SMP = buildTitle( - I18nExampleBuilder.buildI18n("Tension d'humdité du sol", "Soil moisture pressure"), - I18nExampleBuilder.buildI18n("Définit la tension d'humdité du sol", "Define the soil moisture pressure") + buildI18n("Tension d'humdité du sol", "Soil moisture pressure"), + buildI18n("Définit la tension d'humdité du sol", "Define the soil moisture pressure") ); protected static TitleType buildTitle( diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/DisconnectedException.java b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/exception/DisconnectedException.java similarity index 75% rename from src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/DisconnectedException.java rename to src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/exception/DisconnectedException.java index 533fce5d0cfac4d5cedef0ee37d676a74d9cc78e..30d3184ef0df302bc0332e84489c92c3db8ba6cf 100644 --- a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/DisconnectedException.java +++ b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/exception/DisconnectedException.java @@ -1,4 +1,4 @@ -package fr.inra.oresing.domain.exceptions.authentication.authentication; +package fr.inra.oresing.domain.authorization.privilegeassessor.exception; import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; diff --git a/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/exception/NotApplicationCanDeleteReferencesRightsException.java b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/exception/NotApplicationCanDeleteReferencesRightsException.java deleted file mode 100644 index 1d6f30b2c771240aad9379fbddb3516f52815a7d..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/exception/NotApplicationCanDeleteReferencesRightsException.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.inra.oresing.domain.authorization.privilegeassessor.exception; - -import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; -import lombok.Getter; - -import java.util.List; - -@Getter -public class NotApplicationCanDeleteReferencesRightsException extends OreSiTechnicalException { - public static final String NO_RIGHT_FOR_DELETE_REFERENCES_RIGHTS_APPLICATION = "NO_RIGHT_FOR_DELETE_REFERENCES_RIGHTS_APPLICATION"; - final String applicationName; - final List<String> authorizationsRestrictions; - public NotApplicationCanDeleteReferencesRightsException(final String applicationName) { - super(NO_RIGHT_FOR_DELETE_REFERENCES_RIGHTS_APPLICATION); - this.applicationName = applicationName; - authorizationsRestrictions = List.of(); - } - public NotApplicationCanDeleteReferencesRightsException(final String applicationName, final List<String> authorizationsRestrictions) { - super(NO_RIGHT_FOR_DELETE_REFERENCES_RIGHTS_APPLICATION); - this.applicationName = applicationName; - this.authorizationsRestrictions = authorizationsRestrictions; - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationDataWriter.java b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationDataWriter.java index 6da07e2e74208b1f200d0b13542679a9136854d8..447a56ea311950c75306148298254598421af728 100644 --- a/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationDataWriter.java +++ b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationDataWriter.java @@ -32,8 +32,6 @@ public sealed interface ApplicationDataWriter extends ApplicationUser return application().getName(); } - ; - String dataName(); default boolean isData() { @@ -62,11 +60,8 @@ public sealed interface ApplicationDataWriter extends ApplicationUser if (CollectionUtils.isEmpty(submissionScopes)) { return false; } - if (!submissionScopes.stream() - .allMatch(sc -> authorizationScopes.contains(sc.getSql()))) { - return false; - } - return true; + return submissionScopes.stream() + .allMatch(sc -> authorizationScopes.contains(sc.getSql())); }default boolean isDateInRangeAuthorized( BinaryFileDataset binaryfiledataset, List<AuthorizationParsed> authorizationParseds @@ -102,17 +97,15 @@ public sealed interface ApplicationDataWriter extends ApplicationUser ); // Vérification du chevauchement - if (submissionIntervalScope.getRange().lowerEndpoint() - .compareTo(authorizationIntervalScope.getRange().upperEndpoint()) <= 0 && - submissionIntervalScope.getRange().upperEndpoint() - .compareTo(authorizationIntervalScope.getRange().lowerEndpoint()) >= 0) { + if (!submissionIntervalScope.getRange().lowerEndpoint().isAfter(authorizationIntervalScope.getRange().upperEndpoint()) && + !submissionIntervalScope.getRange().upperEndpoint().isBefore(authorizationIntervalScope.getRange().lowerEndpoint())) { // Calcul de l'intervalle d'intersection LocalDateTimeRange intersectionInterval = LocalDateTimeRange.between( - submissionIntervalScope.getRange().lowerEndpoint().compareTo(authorizationIntervalScope.getRange().lowerEndpoint()) <= 0 ? + !submissionIntervalScope.getRange().lowerEndpoint().isAfter(authorizationIntervalScope.getRange().lowerEndpoint()) ? authorizationIntervalScope.getRange().lowerEndpoint() : submissionIntervalScope.getRange().lowerEndpoint(), - submissionIntervalScope.getRange().upperEndpoint().compareTo(authorizationIntervalScope.getRange().upperEndpoint()) >= 0 ? + !submissionIntervalScope.getRange().upperEndpoint().isBefore(authorizationIntervalScope.getRange().upperEndpoint()) ? authorizationIntervalScope.getRange().upperEndpoint() : submissionIntervalScope.getRange().upperEndpoint() ); @@ -138,18 +131,18 @@ public sealed interface ApplicationDataWriter extends ApplicationUser for (LocalDateTimeRange interval : sortedIntervals) { // Vérifier si l'intervalle couvre le trou précédent - if (interval.getRange().lowerEndpoint().compareTo(currentCoverageEnd) > 0) { + if (interval.getRange().lowerEndpoint().isAfter(currentCoverageEnd)) { return false; // Trou dans la couverture } // Mettre à jour la fin de couverture - currentCoverageEnd = interval.getRange().upperEndpoint().compareTo(currentCoverageEnd) > 0 + currentCoverageEnd = interval.getRange().upperEndpoint().isAfter(currentCoverageEnd) ? interval.getRange().upperEndpoint() : currentCoverageEnd; } // Vérifier si la couverture atteint la fin de l'intervalle de soumission - boolean isFullyCovered = currentCoverageEnd.compareTo(submissionIntervalScope.getRange().upperEndpoint()) >= 0; + boolean isFullyCovered = !currentCoverageEnd.isBefore(submissionIntervalScope.getRange().upperEndpoint()); if (!isFullyCovered) { throw getException(); diff --git a/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationManager.java b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationManager.java index fbf8800d4d3b0a62f6f01881292d0933887308b4..371e3e9802697d9cfcfa27c0c7993fb19c1e0a4d 100644 --- a/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationManager.java +++ b/src/main/java/fr/inra/oresing/domain/authorization/privilegeassessor/role/ApplicationManager.java @@ -2,6 +2,6 @@ package fr.inra.oresing.domain.authorization.privilegeassessor.role; public sealed interface ApplicationManager permits ApplicationAdminUser, ApplicationDepositUser, ApplicationManagerUser { - public static String ALL_DATANAMES = "ALL_DATANAMES"; + String ALL_DATANAMES = "ALL_DATANAMES"; boolean canUpdateApplication(); } diff --git a/src/main/java/fr/inra/oresing/domain/authorization/request/AuthorizationRequest.java b/src/main/java/fr/inra/oresing/domain/authorization/request/AuthorizationRequest.java index 50753959bc9a49247ad78a6affd3dec5a6d5b125..a1bd74dd34644a4f0d8799355a745d8c37bc4fea 100644 --- a/src/main/java/fr/inra/oresing/domain/authorization/request/AuthorizationRequest.java +++ b/src/main/java/fr/inra/oresing/domain/authorization/request/AuthorizationRequest.java @@ -24,7 +24,6 @@ public record AuthorizationRequest(UUID authorizationId, if (authorizationForAll == null || MapUtils.isEmpty(authorizationForAll.authorizationForAll())) { return new HashMap<>(); } - Map<String, AuthorizationForScope> buildAuthorizationsByReferences = new HashMap<>(); return authorizationForAll.authorizationForAll().entrySet().stream() .collect(Collectors.toMap( Map.Entry::getKey, diff --git a/src/main/java/fr/inra/oresing/domain/checker/CheckerFactory.java b/src/main/java/fr/inra/oresing/domain/checker/CheckerFactory.java index c621bfd00bdbf1ec6bef9dcd2641c44357a568b7..6362722b10ef0fe13b9deff1c6995bd85dae084d 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/CheckerFactory.java +++ b/src/main/java/fr/inra/oresing/domain/checker/CheckerFactory.java @@ -35,7 +35,6 @@ public class CheckerFactory { final ImmutableSet.Builder<LineChecker> checkers = ImmutableSet.builder(); for (final Map.Entry<String, ComponentDescription> variableEntry : dataDescription.componentDescriptions().entrySet()) { final String column = variableEntry.getKey(); - final DataColumn referenceColumn = new DataColumn(column); final ComponentDescription componentDescription = variableEntry.getValue(); if (componentDescription.checker() != null) { checkers.addAll(LineChecker.toLineChecker( @@ -64,11 +63,4 @@ public class CheckerFactory { }); return checkers.build(); } - - public Map<String, LineChecker> getReferenceCheckersByComponentname(final Application application, final String reference, final PublishContext.PublishContextBuilder publishContextBuilder) { - return getCheckers(application, reference, publishContextBuilder) - .stream() - .filter(lineChecker -> lineChecker.underlyingType() instanceof ReferenceType) - .collect(Collectors.toMap(lineChecker -> lineChecker.target().column(), Function.identity())); - } } diff --git a/src/main/java/fr/inra/oresing/domain/checker/CheckerReturnType.java b/src/main/java/fr/inra/oresing/domain/checker/CheckerReturnType.java index a09f9699f6539b75eff935569a7c124ef96783ec..fd0be87eed8a1b4da9ad65667f1062ab9ba88b29 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/CheckerReturnType.java +++ b/src/main/java/fr/inra/oresing/domain/checker/CheckerReturnType.java @@ -26,14 +26,15 @@ public enum CheckerReturnType { ) ); } + public static SiOreIllegalArgumentException getError(final Object evaluation, final GroovyExpression expression, final Map<String, Object> context, final Set<CheckerReturnType> knownCheckerReturnType) { return new SiOreIllegalArgumentException( "badGroovyExpressionCheckerReturnFalse", Map.of( "value", evaluation, "expression", expression.toString(), - "context", context/*, - "knownCheckerReturnType", knownCheckerReturnType*/ + "context", context, + "knownCheckerReturnType", knownCheckerReturnType ) ); } @@ -45,7 +46,7 @@ public enum CheckerReturnType { private final String name; CheckerReturnType(final String name) { - this.name= name; + this.name = name; } @Override diff --git a/src/main/java/fr/inra/oresing/domain/checker/CheckerTarget.java b/src/main/java/fr/inra/oresing/domain/checker/CheckerTarget.java index b3c725210732e5e2609bb87d15c03cfc71c2f357..eb1505b16ae849f32581389a89a3e49c2ebfa091 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/CheckerTarget.java +++ b/src/main/java/fr/inra/oresing/domain/checker/CheckerTarget.java @@ -10,23 +10,4 @@ public interface CheckerTarget { @Deprecated String toHumanReadableString(); - - enum CheckerTargetType { - PARAM_COMPONENT_KEY("componentKey"),PARAM_COLUMN("column"); - - private final String type; - - CheckerTargetType(final String type) { - this.type = type; - } - - String getType() { - return type; - } - - @Override - public String toString() { - return type; - } - } } diff --git a/src/main/java/fr/inra/oresing/domain/checker/GroovyConfiguration.java b/src/main/java/fr/inra/oresing/domain/checker/GroovyConfiguration.java deleted file mode 100644 index 4763dc96a1f965d2af5a2ed7a03e4453796bc429..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/checker/GroovyConfiguration.java +++ /dev/null @@ -1,9 +0,0 @@ -package fr.inra.oresing.domain.checker; - -import fr.inra.oresing.domain.GroovyDataInjectionConfiguration; - -public interface GroovyConfiguration extends GroovyDataInjectionConfiguration { - - String getExpression(); - -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java b/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java index c8b6ac44c455155c69272800465ddfbbc948bef4..8e1faec349265991233f4a090b00929e084c49a5 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java +++ b/src/main/java/fr/inra/oresing/domain/checker/InvalidDatasetContentException.java @@ -32,35 +32,6 @@ public class InvalidDatasetContentException extends OreSiTechnicalException { this.errors = errors; } - public static InvalidDatasetContentException forUnexpectedHeaderColumn(final String expected, final String actual, final int headerLine) { - return newInvalidDatasetContentException(headerLine, "unexpectedHeaderColumn", ImmutableMap.of( - "actualHeaderColumn", actual, - "expectedHeaderColumn", expected - )); - } - - public static InvalidDatasetContentException forUnexpectedHeaderColumnsInList(final String expected, final List<Map.Entry<String, String>> actual, final int headerLine) { - return newInvalidDatasetContentException(headerLine, "unexpectedHeaderColumnsInList", ImmutableMap.of( - "actualHeaderColumns", actual, - "expectedHeaderColumn", expected - )); - } - - public static InvalidDatasetContentException forHeaderColumnPatternNotMatching(final String expectedPattern, final String actual, final int headerLine) { - return newInvalidDatasetContentException(headerLine, "headerColumnPatternNotMatching", ImmutableMap.of( - "actualHeaderColumn", actual, - "expectedHeaderColumnPattern", expectedPattern - )); - } - - public static InvalidDatasetContentException forUnexpectedTokenCount(final int expectedTokenCount, final String actualHeader, final int actualTokenCount, final int headerLine) { - return newInvalidDatasetContentException(headerLine, "unexpectedTokenCount", ImmutableMap.of( - "expectedTokenCount", expectedTokenCount, - "actualHeader", actualHeader, - "actualTokenCount", actualTokenCount - )); - } - public static InvalidDatasetContentException forInvalidHeaders(final ImmutableSet<String> expectedColumns, final ImmutableSet<String> mandatoryHeaders, final ImmutableSet<String> actualColumns, final int headerLine) { final Set<String> missingComponents = SetUtils.difference(mandatoryHeaders, actualColumns); final Set<String> unknownComponents = SetUtils.difference(actualColumns, expectedColumns); @@ -156,12 +127,6 @@ public class InvalidDatasetContentException extends OreSiTechnicalException { } } - public static void checkReferenceErrorsIsEmpty(final List<CsvRowValidationCheckResult> errors) { - if (!errors.isEmpty()) { - throw new InvalidDatasetContentException(errors); - } - } - @Override public String toString() { return new ToStringBuilder(this) diff --git a/src/main/java/fr/inra/oresing/domain/checker/LineChecker.java b/src/main/java/fr/inra/oresing/domain/checker/LineChecker.java index d4bbc2372baf0512c442a1256df8989ebf5cfd73..781d140b5d74a07fb00600bffe284a0921186480 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/LineChecker.java +++ b/src/main/java/fr/inra/oresing/domain/checker/LineChecker.java @@ -174,7 +174,7 @@ public sealed interface LineChecker<FT extends FieldType> permits LineChecker.Ma groovyExpressionOnOneLineElementTransformer.context.putAll(context); } - final Function<FieldType, FieldType> fn = value -> transform(referenceDatum, value); + final Function<FieldType, FieldType> fn = value -> transform(referenceDatum); final DataColumnValue transformedReferenceColumnValue = referenceColumnValue.transform(fn); final DataDatum transformedDatum = DataDatum.copyOf(referenceDatum); transformedDatum.put(target(), transformedReferenceColumnValue); @@ -182,7 +182,7 @@ public sealed interface LineChecker<FT extends FieldType> permits LineChecker.Ma groovyExpressionOnOneLineElementTransformer.multiplicity().equals(Multiplicity.ONE) ? referenceDatum : transformedDatum; } - FieldType transform(SomethingThatCanProvideEvaluationContext somethingThatCanProvideEvaluationContext, FieldType value); + FieldType transform(SomethingThatCanProvideEvaluationContext somethingThatCanProvideEvaluationContext); record GroovyExpressionOnOneLineElementTransformer( DataColumn target, @@ -193,7 +193,7 @@ public sealed interface LineChecker<FT extends FieldType> permits LineChecker.Ma ) implements TransformOneLineElementTransformer { @Override - public FieldType transform(final SomethingThatCanProvideEvaluationContext somethingThatCanProvideEvaluationContext, final FieldType value) { + public FieldType transform(final SomethingThatCanProvideEvaluationContext somethingThatCanProvideEvaluationContext) { final Map<String, Object> context = ImmutableMap.<String, Object>builder() .putAll(this.context) .putAll(somethingThatCanProvideEvaluationContext.getEvaluationContext()) @@ -321,7 +321,7 @@ public sealed interface LineChecker<FT extends FieldType> permits LineChecker.Ma public CheckerValidationCheckResult checkReference(final DataDatum referenceDatum, Map<String, Object> context) { - if (checkerDescription() instanceof GroovyExpressionChecker groovyExpressionChecker) { + if (checkerDescription() instanceof GroovyExpressionChecker) { try { DataDatum transformedReferenceDatum = transformer().transform(referenceDatum, context); DataColumn column = target(); diff --git a/src/main/java/fr/inra/oresing/domain/checker/Warper.java b/src/main/java/fr/inra/oresing/domain/checker/Warper.java deleted file mode 100644 index 465957a5080f4a0371b29732564b25053ca1151c..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/checker/Warper.java +++ /dev/null @@ -1,4 +0,0 @@ -package fr.inra.oresing.domain.checker; - -public interface Warper { -} diff --git a/src/main/java/fr/inra/oresing/domain/checker/type/DateType.java b/src/main/java/fr/inra/oresing/domain/checker/type/DateType.java index 3daa1315cc0a29c9e7b9dcdcadc77afd498a2721..a218a6da6673897d4829d0344875c62d2fb9bd54 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/type/DateType.java +++ b/src/main/java/fr/inra/oresing/domain/checker/type/DateType.java @@ -68,7 +68,6 @@ public non-sealed class DateType implements FieldType<LocalDateTime> { this.pattern = pattern; this.formatter = formatter; this.duration = duration; - final DatePattern<TemporalAccessor> datePattern = DatePattern.of(pattern); this.minDate = minDate; this.maxDate = maxDate; } @@ -134,18 +133,6 @@ public non-sealed class DateType implements FieldType<LocalDateTime> { return formattedDate.replaceAll(PATTERN_DATE_REGEXP, ""); } - public static boolean isValidPattern(final String pattern) { - if (StringUtils.isBlank(pattern)) { - return false; - } - try { - newDateTimeFormatter(pattern); - return true; - } catch (final IllegalArgumentException e) { - return false; - } - } - LocalDateTime value; @Override diff --git a/src/main/java/fr/inra/oresing/domain/checker/type/FloatType.java b/src/main/java/fr/inra/oresing/domain/checker/type/FloatType.java index 8e6074e973ee8c20f98aa15cfb636ca6fc96c4c6..6b324d8b815e930813b124f78578e80fab9466c1 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/type/FloatType.java +++ b/src/main/java/fr/inra/oresing/domain/checker/type/FloatType.java @@ -105,7 +105,6 @@ public non-sealed class FloatType implements FieldType<Float> { @Override public String toString() { - final Float f = 4.0F; return Optional.ofNullable(value).map(Object::toString).orElse(""); } diff --git a/src/main/java/fr/inra/oresing/domain/checker/type/MapType.java b/src/main/java/fr/inra/oresing/domain/checker/type/MapType.java index 818752bc6458451c13483936e835dc1831a18c08..68ff3e467a5ecbac9a22a429ea8db7a8b21ceea5 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/type/MapType.java +++ b/src/main/java/fr/inra/oresing/domain/checker/type/MapType.java @@ -97,7 +97,7 @@ public non-sealed class MapType<K, V> implements FieldType<Map<K, V>> { case FloatType floatType -> mapNode.put((String) kvEntry.getKey(), floatType.getValue()); case Boolean bool -> mapNode.put((String) kvEntry.getKey(), bool); case BooleanType booleanType -> mapNode.put((String) kvEntry.getKey(), booleanType.getValue()); - case NullType fieldType-> mapNode.set((String) kvEntry.getKey(), NullNode.getInstance()); + case NullType ignored -> mapNode.set((String) kvEntry.getKey(), NullNode.getInstance()); case FieldType fieldType-> mapNode.put((String) kvEntry.getKey(), fieldType.toString()); default -> mapNode.put((String) kvEntry.getKey(), kvEntry.getValue().toString()); } diff --git a/src/main/java/fr/inra/oresing/domain/checker/type/PatternType.java b/src/main/java/fr/inra/oresing/domain/checker/type/PatternType.java index 3ac72822b1c6ca26c388687b267c2670c1db144f..811e2efcd0e80def1d87a133fba9b91a5aba2887 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/type/PatternType.java +++ b/src/main/java/fr/inra/oresing/domain/checker/type/PatternType.java @@ -101,7 +101,7 @@ public non-sealed class PatternType<K, V> implements FieldType<Map<K, V>> { case FloatType floatType -> mapNode.put((String) kvEntry.getKey(), floatType.getValue()); case Boolean bool -> mapNode.put((String) kvEntry.getKey(), bool); case BooleanType booleanType -> mapNode.put((String) kvEntry.getKey(), booleanType.getValue()); - case NullType fieldType -> mapNode.set((String) kvEntry.getKey(), NullNode.getInstance()); + case NullType ignored -> mapNode.set((String) kvEntry.getKey(), NullNode.getInstance()); case FieldType fieldType -> mapNode.put((String) kvEntry.getKey(), fieldType.toString()); default -> mapNode.put((String) kvEntry.getKey(), kvEntry.getValue().toString()); } diff --git a/src/main/java/fr/inra/oresing/domain/checker/type/ReferenceType.java b/src/main/java/fr/inra/oresing/domain/checker/type/ReferenceType.java index 971f8cbd098d53640d0ae31c4257607cc1085b4e..5984c10e10db74b950d124103a4b5c607aae03df 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/type/ReferenceType.java +++ b/src/main/java/fr/inra/oresing/domain/checker/type/ReferenceType.java @@ -90,7 +90,6 @@ public non-sealed class ReferenceType extends AbstractType<Ltree> { @Override public CheckerValidationCheckResult check(final String rawValue, final LineChecker lineChecker) { final String localRawValue = Ltree.escapeToLabel(rawValue, knownSpecialCharacters); - final CheckerValidationCheckResult validationCheckResult; final CheckerTarget target = lineChecker.target(); value = Ltree.fromSql(localRawValue); @@ -166,7 +165,7 @@ public non-sealed class ReferenceType extends AbstractType<Ltree> { lineIdentityColumnName.hierarchicalKey() )); return switch (referenceColumnRawValue) { - case DataColumnSingleValue dataColumnSingleValue -> new DataColumnSingleValue(this); + case DataColumnSingleValue ignored -> new DataColumnSingleValue(this); case DataColumnMultipleValue dataColumnMultipleValue -> dataColumnMultipleValue; default -> null; }; diff --git a/src/main/java/fr/inra/oresing/domain/checker/type/StringType.java b/src/main/java/fr/inra/oresing/domain/checker/type/StringType.java index 204aae7a2c8e0522d1489e19317c1f912e35859a..4bd4b6304e4befc32bec88851134b81264f9f489 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/type/StringType.java +++ b/src/main/java/fr/inra/oresing/domain/checker/type/StringType.java @@ -39,18 +39,6 @@ public non-sealed class StringType implements FieldType<String> { clone = () -> new StringType(pattern); } - public static boolean isValid(final String pattern) { - if (StringUtils.isBlank(pattern)) { - return false; - } - try { - compile(pattern); - return true; - } catch (final PatternSyntaxException e) { - return false; - } - } - @Override public String getValue() { return value; diff --git a/src/main/java/fr/inra/oresing/domain/checker/type/TypeOfDate.java b/src/main/java/fr/inra/oresing/domain/checker/type/TypeOfDate.java index 7e6cab9d7748056a135373ee7acab405f26138dc..66273b73b49bc2dcf55f33237cabfbe13ef6422f 100644 --- a/src/main/java/fr/inra/oresing/domain/checker/type/TypeOfDate.java +++ b/src/main/java/fr/inra/oresing/domain/checker/type/TypeOfDate.java @@ -1,14 +1,10 @@ package fr.inra.oresing.domain.checker.type; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.temporal.TemporalAccessor; - public enum TypeOfDate { - DATE(LocalDate.class), - TIME(LocalDateTime.class), - DATETIME(LocalDateTime.class); + DATE(), + TIME(), + DATETIME(); - TypeOfDate(final Class<? extends TemporalAccessor> localDateClass) { + TypeOfDate() { } } \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java index ea3dfe8808fe562e6ecb21a9a48ebdced872256b..627672244810814c6ee609085d9e7bfeb44a4bf0 100644 --- a/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java +++ b/src/main/java/fr/inra/oresing/domain/data/deposit/DataImporter.java @@ -208,14 +208,6 @@ public class DataImporter { ); } - public String getDisplayNamesByReferenceAndNaturalKey(final String referencedColumn, final String naturalKey, final String locale) { - return dataImporterContext.getDisplayNamesByReferenceAndNaturalKey(referencedColumn, naturalKey, locale); - } - - public String getDisplayDescriptionsByReferenceAndNaturalKey(final String referencedColumn, final String naturalKey, final String locale) { - return dataImporterContext.getDisplayDescriptionsByReferenceAndNaturalKey(referencedColumn, naturalKey, locale); - } - /** * */ @@ -402,7 +394,6 @@ public class DataImporter { if (patternValueForHeaders.isEmpty()) { return Stream.of(new RowWithReferenceDatum(lineNumber, "", referenceDatum, ImmutableMap.copyOf(refsLinkedTo))); } - final int rowId = 1; List<RowWithReferenceDatum> rowWithReferenceData = new LinkedList<>(); for (PatternValueForHeader patternValueForHeader : patternValueForHeaders) { DataDatum patternComponentDatum = dataImporterContext.getPatternColumnFactory().toQualifierDatum(patternValueForHeader.header(), patternValueForHeader); @@ -482,8 +473,6 @@ public class DataImporter { .map(PublishContext::fileOrUUID) .map(FileOrUUID::binaryfiledataset) .orElse(null); - final boolean haveAuthorizationsDescription = true; - Map<String, List<Ltree>> requiredAuthorizations = new LinkedHashMap<>(); authorization.authorizationScope().stream() @@ -494,7 +483,6 @@ public class DataImporter { .filter(ReferenceType.class::isInstance) .map(ReferenceType.class::cast) .forEach(referenceType -> { - List<ReferenceScope.NodeDescription> nodesForMenu = dataImporterContext.getNodesForMenu(); List<Ltree> hierarchyOfHierarchicalkeys = getHierarchyOfHierarchicalkeys(referenceType); requiredAuthorizations.put(referenceType.getRefType(), hierarchyOfHierarchicalkeys); } @@ -562,7 +550,7 @@ public class DataImporter { builder.put("value", DISPLAY_DATE_FORMATTER_DDMMYYYY.format(lowerBound)); LocalDateTime to = binaryFileDataset.getTo() == null ? null : - LocalDate.from(ISO_DATE_TIME_FORMATTER.parse(binaryFileDataset.getTo())).plus(1, ChronoUnit.DAYS).atStartOfDay(); + LocalDate.from(ISO_DATE_TIME_FORMATTER.parse(binaryFileDataset.getTo())).plusDays(1).atStartOfDay(); dateTimeRange = LocalDateTimeRange.between(from, to); builder.put("to", DISPLAY_DATE_FORMATTER_DDMMYYYY.format(to)); if (!dateTimeRange.getRange().encloses(timeScope.getRange())) { @@ -661,15 +649,6 @@ public class DataImporter { */ @Override public Ltree computeNaturalKey(ReferenceDatumAfterChecking referenceDatumAfterChecking) { - List<DataColumn> list = dataImporterContext().getNaturalKeyColumns().stream() - .map(DataColumn::new) - .flatMap(column -> - dataImporterContext().getLineCheckers().stream() - .filter(lineChecker -> lineChecker.target().equals(column)) - .filter(lineChecker -> lineChecker.underlyingType() instanceof ReferenceType) - .map(lineChecker -> column) - ) - .toList(); Function<String, String> nullOrEmptyToNull = partialKey -> Strings.isNullOrEmpty(partialKey) ? Ltree.NULL_KEY : partialKey; Function<DataColumn, String> toEscapedValueFromColumnRegardingColumnIsReferenceType = dataColumn -> getEscapedValueFromColumnRegardingColumnIsReferenceType(dataColumn, referenceDatumAfterChecking.referenceDatumAfterChecking()); String naturalKey = dataImporterContext().getNaturalKeyColumns().stream() @@ -725,7 +704,6 @@ public class DataImporter { .map(Object::toString) .map(Ltree::fromSql) .map(toNaturalKey(parentType)); - final Ltree parent = getParentNaturalKey(dataImporterContext().getParent(), referenceDatum); Ltree hierarchicalKey = recursiveNaturalKey; if (parentValue.isPresent()) { hierarchicalKey = Ltree.join(parentValue.get(), recursiveNaturalKey); @@ -733,14 +711,6 @@ public class DataImporter { return hierarchicalKey; } - private Optional<Ltree> newHierarchicalKey(Ltree recursiveNaturalKey) { - Ltree transformedToNaturalKeyValue = Ltree.fromSql(recursiveNaturalKey.getSql().replaceAll("^[a-z]*K", "")); - return afterPreloadReferenceUuids().keySet().stream() - .filter(lineIdentityColumnName -> transformedToNaturalKeyValue.equals(lineIdentityColumnName.naturalKey())) - .map(DataValue.LineIdentityColumnName::hierarchicalKey) - .findFirst(); - } - private Ltree getRecursiveNaturalKey(final Ltree naturalKey) { return afterPreloadReferenceUuids().keySet().stream() .filter(lineIdentityColumnName -> fromNaturalKey.apply(naturalKey).equals(lineIdentityColumnName.naturalKey())) @@ -751,8 +721,6 @@ public class DataImporter { @Override public Stream<RowWithReferenceDatum> firstPass(final Stream<RowWithReferenceDatum> streamBeforePreloading) { - Optional<Node> hierarchicalParentColumnOpt = dataImporterContext().getApplication() - .findParentNode(dataImporterContext().getRefType()); DataColumn columnToLookForParentKey = dataImporterContext().getColumnToLookForParentKey(); final LineChecker lineChecker = dataImporterContext().getReferenceLineChecker(); final ReferenceType referenceType = (ReferenceType) lineChecker.fieldTypeForOne(); @@ -789,7 +757,7 @@ public class DataImporter { }) .toList(); Map<DataValue.LineIdentityColumnName, UUID> resolvedDuringPreloadReferenceUuids = afterPreloadReferenceUuids().entrySet().stream() - .map(entry -> buildEntryWithHierarchicalKey(entry, parentReferenceMap())) + .map(entry -> buildEntryWithHierarchicalKey(entry)) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); afterPreloadReferenceUuids().clear(); afterPreloadReferenceUuids().putAll(resolvedDuringPreloadReferenceUuids); @@ -802,7 +770,7 @@ public class DataImporter { return collect.stream(); } - private Map.Entry<DataValue.LineIdentityColumnName, UUID> buildEntryWithHierarchicalKey(Map.Entry<DataValue.LineIdentityColumnName, UUID> lineIdentityColumnNameUUIDEntry, Map<DataValue.LineIdentityColumnName, Ltree> parentReferenceMap) { + private Map.Entry<DataValue.LineIdentityColumnName, UUID> buildEntryWithHierarchicalKey(Map.Entry<DataValue.LineIdentityColumnName, UUID> lineIdentityColumnNameUUIDEntry) { Ltree child = lineIdentityColumnNameUUIDEntry.getKey().naturalKey(); Ltree currentChild = toNaturalKey(dataImporterContext().getRefType()).apply(child); Ltree hierarchicalKey = currentChild; diff --git a/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentPatternValueOrderBy.java b/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentPatternValueOrderBy.java index 45550194d942d8dfdf80d3b91f1bfef5a477ac98..9755a85d254c0cc05a61a02e80a5631828c3c494 100644 --- a/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentPatternValueOrderBy.java +++ b/src/main/java/fr/inra/oresing/domain/data/read/query/ComponentPatternValueOrderBy.java @@ -20,7 +20,7 @@ public record ComponentPatternValueOrderBy(String componentKey, String qualifier String componentKey = componentKey(); ListType fieldType = (ListType) dataRowValues.get(componentKey); - Optional<MapType> patternMapTypeOpt = getMapType((ListType) fieldType); + Optional<MapType> patternMapTypeOpt = getMapType(fieldType); if (patternMapTypeOpt.isPresent()) { List<String> values = new LinkedList<>(); Optional<String> valueopt = patternMapTypeOpt @@ -54,9 +54,9 @@ public record ComponentPatternValueOrderBy(String componentKey, String qualifier } private static Optional getMapType(ListType fieldType) { - return ((List) fieldType.getValue()).stream() + return fieldType.getValue().stream() .filter(MapType.class::isInstance) - .map(mapType -> ((MapType<String, FieldType>) mapType)) + .map(mapType -> mapType) .findFirst(); } diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanDeleteReferencesRightsException.java b/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanDeleteReferencesRightsException.java deleted file mode 100644 index 8b822ee2d1f9cd5dd7640423e91cdf45b2d08656..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanDeleteReferencesRightsException.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.inra.oresing.domain.exceptions.authentication.authentication; - -import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; -import lombok.Getter; - -import java.util.List; - -@Getter -public class NotApplicationCanDeleteReferencesRightsException extends OreSiTechnicalException { - public static final String NO_RIGHT_FOR_DELETE_REFERENCES_RIGHTS_APPLICATION = "NO_RIGHT_FOR_DELETE_REFERENCES_RIGHTS_APPLICATION"; - final String applicationName; - final List<String> authorizationsRestrictions; - public NotApplicationCanDeleteReferencesRightsException(final String applicationName) { - super(NO_RIGHT_FOR_DELETE_REFERENCES_RIGHTS_APPLICATION); - this.applicationName = applicationName; - authorizationsRestrictions = List.of(); - } - public NotApplicationCanDeleteReferencesRightsException(final String applicationName, final List<String> authorizationsRestrictions) { - super(NO_RIGHT_FOR_DELETE_REFERENCES_RIGHTS_APPLICATION); - this.applicationName = applicationName; - this.authorizationsRestrictions = authorizationsRestrictions; - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanDeleteRightsException.java b/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanDeleteRightsException.java deleted file mode 100644 index 6d3abc91c5b3017e6c61466d1bfd005c85ed660f..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanDeleteRightsException.java +++ /dev/null @@ -1,27 +0,0 @@ -package fr.inra.oresing.domain.exceptions.authentication.authentication; - -import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; -import fr.inra.oresing.domain.Authorization; -import lombok.Getter; - -import java.util.List; - -@Getter -public class NotApplicationCanDeleteRightsException extends OreSiTechnicalException { - public static final String NO_RIGHT_FOR_DELETE_RIGHTS_APPLICATION = "NO_RIGHT_FOR_DELETE_RIGHTS_APPLICATION"; - final String applicationName; - final String dataType; - final List<Authorization> authorizationsRestrictions; - public NotApplicationCanDeleteRightsException(final String applicationName, final String dataType) { - super(NO_RIGHT_FOR_DELETE_RIGHTS_APPLICATION); - this.applicationName = applicationName; - this.dataType = dataType; - authorizationsRestrictions = List.of(); - } - public NotApplicationCanDeleteRightsException(final String applicationName, final String dataType, final List<Authorization> authorizationsRestrictions) { - super(NO_RIGHT_FOR_DELETE_RIGHTS_APPLICATION); - this.applicationName = applicationName; - this.dataType = dataType; - this.authorizationsRestrictions = authorizationsRestrictions; - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanManageReferenceRightsException.java b/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanManageReferenceRightsException.java deleted file mode 100644 index 560154bd0187f6cf4c497832afabf7b7f09ccdb3..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanManageReferenceRightsException.java +++ /dev/null @@ -1,24 +0,0 @@ -package fr.inra.oresing.domain.exceptions.authentication.authentication; - -import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; -import lombok.Getter; - -import java.util.List; - -@Getter -public class NotApplicationCanManageReferenceRightsException extends OreSiTechnicalException { - public static final String NO_RIGHT_FOR_MANAGE_REFERENCES_RIGHTS_APPLICATION = "NO_RIGHT_FOR_MANAGE_REFERENCES_RIGHTS_APPLICATION"; - final String applicationName; - String dataType; - final List<String> authorizationsRestrictions; - public NotApplicationCanManageReferenceRightsException(final String applicationName) { - super(NO_RIGHT_FOR_MANAGE_REFERENCES_RIGHTS_APPLICATION); - this.applicationName = applicationName; - authorizationsRestrictions = List.of(); - } - public NotApplicationCanManageReferenceRightsException(final String applicationName, final List<String> authorizationsRestrictions) { - super(NO_RIGHT_FOR_MANAGE_REFERENCES_RIGHTS_APPLICATION); - this.applicationName = applicationName; - this.authorizationsRestrictions = authorizationsRestrictions; - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanSetRightsException.java b/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanSetRightsException.java deleted file mode 100644 index c09f97d1848f11ee9392c9ac1d36ff58139ade23..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanSetRightsException.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.inra.oresing.domain.exceptions.authentication.authentication; - -import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; -import fr.inra.oresing.domain.Authorization; -import lombok.Getter; - -import java.util.List; -@Getter -public class NotApplicationCanSetRightsException extends OreSiTechnicalException { - public static final String NO_RIGHT_FOR_SET_RIGHTS_APPLICATION = "NO_RIGHT_FOR_SET_RIGHTS_APPLICATION"; - final String applicationName; - final List<Authorization> authorizationsRestrictions; - public NotApplicationCanSetRightsException(final String applicationName) { - super(NO_RIGHT_FOR_SET_RIGHTS_APPLICATION); - this.applicationName = applicationName; - authorizationsRestrictions = List.of(); - } - public NotApplicationCanSetRightsException(final String applicationName, final List<Authorization> authorizationsRestrictions) { - super(NO_RIGHT_FOR_SET_RIGHTS_APPLICATION); - this.applicationName = applicationName; - this.authorizationsRestrictions = authorizationsRestrictions; - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanSetRightsReferencesException.java b/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanSetRightsReferencesException.java deleted file mode 100644 index 8222c13f59f52f3adca4dee64d2608d4b1754481..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCanSetRightsReferencesException.java +++ /dev/null @@ -1,14 +0,0 @@ -package fr.inra.oresing.domain.exceptions.authentication.authentication; - -import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; -import lombok.Getter; - -@Getter -public class NotApplicationCanSetRightsReferencesException extends OreSiTechnicalException { - public static final String NO_RIGHT_FOR_SET_RIGHTS_REFERENCES_APPLICATION = "NO_RIGHT_FOR_SET_RIGHTS_REFERENCES_APPLICATION"; - final String applicationName; - public NotApplicationCanSetRightsReferencesException(final String applicationName) { - super(NO_RIGHT_FOR_SET_RIGHTS_REFERENCES_APPLICATION); - this.applicationName = applicationName; - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCreatorRightsException.java b/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCreatorRightsException.java deleted file mode 100644 index 79a97c7cc3ecebc7b9c08de9f10a420e69b2af50..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotApplicationCreatorRightsException.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.inra.oresing.domain.exceptions.authentication.authentication; - -import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; -import lombok.Getter; - -import java.util.Set; - -@Getter -public class NotApplicationCreatorRightsException extends OreSiTechnicalException { - public static final String NO_RIGHT_FOR_APPLICATION_CREATION = "NO_RIGHT_FOR_APPLICATION_CREATION"; - public String applicationName; - public final Set<String> applicationRestrictions; - public NotApplicationCreatorRightsException(final String applicationName) { - super(NO_RIGHT_FOR_APPLICATION_CREATION); - this.applicationName = applicationName; - applicationRestrictions = Set.of(); - } - public NotApplicationCreatorRightsException(final String applicationName, final Set<String> applicationRestrictions) { - super(NO_RIGHT_FOR_APPLICATION_CREATION); - this.applicationName = applicationName; - this.applicationRestrictions = applicationRestrictions; - } - - public NotApplicationCreatorRightsException(final Throwable cause) { - super(NO_RIGHT_FOR_APPLICATION_CREATION, cause); - applicationRestrictions = Set.of(); - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotopenAdomAdminException.java b/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotopenAdomAdminException.java deleted file mode 100644 index a9db9bd77d8758140480840c486d313f4254aa2e..0000000000000000000000000000000000000000 --- a/src/main/java/fr/inra/oresing/domain/exceptions/authentication/authentication/NotopenAdomAdminException.java +++ /dev/null @@ -1,14 +0,0 @@ -package fr.inra.oresing.domain.exceptions.authentication.authentication; - -import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; - -public class NotopenAdomAdminException extends OreSiTechnicalException { - public static final String openAdomAdmin_REQUIRED_FOR_OPERATION = "openAdomAdmin_REQUIRED_FOR_OPERATION"; - public NotopenAdomAdminException() { - super(openAdomAdmin_REQUIRED_FOR_OPERATION); - } - - public NotopenAdomAdminException(final Throwable cause) { - super(openAdomAdmin_REQUIRED_FOR_OPERATION, cause); - } -} \ No newline at end of file diff --git a/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java b/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java index 2e7f98fb01d17229ffff04d1508e4146587a7192..6ebb79b791dc9ae88fd5ef71017a51baa055bdf8 100644 --- a/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java +++ b/src/main/java/fr/inra/oresing/persistence/AuthenticationService.java @@ -4,6 +4,7 @@ import at.favre.lib.crypto.bcrypt.BCrypt; import com.fasterxml.jackson.core.JsonProcessingException; import com.google.common.base.Strings; import fr.inra.oresing.domain.application.Application; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotOpenAdomAdminException; import fr.inra.oresing.domain.repository.authorization.role.*; import fr.inra.oresing.mail.EmailService; import fr.inra.oresing.domain.OreSiUser; @@ -11,7 +12,6 @@ import fr.inra.oresing.rest.CreateUserRequest; import fr.inra.oresing.rest.model.authorization.CurrentUserRolesResult; import fr.inra.oresing.rest.CreateUserResult; import fr.inra.oresing.rest.OreSiApiRequestContext; -import fr.inra.oresing.domain.exceptions.authentication.authentication.NotopenAdomAdminException; import fr.inra.oresing.rest.model.authorization.LoginAdminResult; import fr.inra.oresing.rest.model.authorization.LoginApplicationResult; import fr.inra.oresing.rest.services.ServiceContainer; @@ -503,7 +503,7 @@ public class AuthenticationService implements ServiceContainerBean { }) .collect(Collectors.toList()); } else { - throw new NotopenAdomAdminException(); + throw new NotOpenAdomAdminException(); } } @@ -525,7 +525,7 @@ public class AuthenticationService implements ServiceContainerBean { }) .collect(Collectors.toList()); } else { - throw new NotopenAdomAdminException(); + throw new NotOpenAdomAdminException();//TODO } } diff --git a/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java b/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java index afe470c931838c879eec7c12718205cdc8571d4d..9f63be1216ed974df979a73c6a3c4aa4be6e296e 100644 --- a/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java +++ b/src/main/java/fr/inra/oresing/rest/AuthorizationResources.java @@ -9,10 +9,10 @@ import fr.inra.oresing.domain.OreSiUser; import fr.inra.oresing.domain.additionalfiles.AuthorizationsAdditionalFilesResult; import fr.inra.oresing.domain.additionalfiles.OreSiAdditionalFileAuthorization; import fr.inra.oresing.domain.application.Application; +import fr.inra.oresing.domain.authorization.privilegeassessor.role.ApplicationAdminUser; import fr.inra.oresing.domain.authorization.privilegeassessor.role.PrivilegeApplicationDomain; import fr.inra.oresing.domain.authorization.privilegeassessor.role.PrivilegeSystemDomain; import fr.inra.oresing.domain.authorization.request.AuthorizationRequest; -import fr.inra.oresing.domain.exceptions.authentication.authentication.NotApplicationCanManageReferenceRightsException; import fr.inra.oresing.domain.repository.authorization.role.CurrentUserRoles; import fr.inra.oresing.domain.repository.authorization.role.OreSiRightOnApplicationRole; import fr.inra.oresing.persistence.OreSiRepository; @@ -31,7 +31,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.CollectionUtils; @@ -310,19 +309,22 @@ public class AuthorizationResources implements ServiceContainerBean { @PathVariable("nameOrId") final String applicationNameOrId, @PathVariable("authorizationId") final UUID authorizationId) { Application application = serviceContainer.authorizationService().getApplication(applicationNameOrId); - serviceContainer.authorizationService().getPrivilegeAssessorForApplication( + ApplicationAdminUser applicationAdminUser = serviceContainer.authorizationService().getPrivilegeAssessorForApplication( PrivilegeApplicationDomain.AUTHORIZATION_MANAGEMENT, application ) .forDeleteAuthorization(); - UUID revokeId = serviceContainer.authorizationService().revoke(applicationNameOrId, new AuthorizationRequest( - authorizationId, - "", - "", - application.getId(), - Set.of(), - null, - null)); + UUID revokeId = serviceContainer.authorizationService().revoke( + applicationAdminUser, + applicationNameOrId, + new AuthorizationRequest( + authorizationId, + "", + "", + application.getId(), + Set.of(), + null, + null)); return ResponseEntity.ok(revokeId); } @@ -349,7 +351,8 @@ public class AuthorizationResources implements ServiceContainerBean { boolean isApplicationCreator = rolesForCurrentUser.memberOf().contains(OreSiRightOnApplicationRole.adminOn(application).getAsSqlRole()); final List<OreSiAdditionalFileAuthorization> additionalFilesAuthorizationsForCurrentUser = serviceContainer.authorizationService().findUserAdditionalFilesAuthorizationsForApplicationAndDataType(application); if (!isApplicationCreator) { - throw new NotApplicationCanManageReferenceRightsException(application.getName()); + //TODO rights definition for additionnals + //throw new NotApplicationCanManageReferenceRightsException(application.getName()); } final Set<UUID> previousUsers = authorization.getUuid() == null ? new HashSet<>() : authorization.getUsersId(); final OreSiAdditionalFileAuthorization oreSiAuthorization = serviceContainer.authorizationService().addAdditionalFileAuthorizations(application, authorization, additionalFilesAuthorizationsForCurrentUser, true); @@ -496,7 +499,10 @@ public class AuthorizationResources implements ServiceContainerBean { serviceContainer.authorizationService().getPrivilegeAssessorForApplication(PrivilegeApplicationDomain.APPLICATION_MANAGER, application) .forManageAdministrator() .canManagerRightOfUserForRole(user, roleForUser); - user = serviceContainer.authorizationService().deleteApplicationRoleUser(roleForUser, application); + user = serviceContainer.authorizationService().deleteApplicationRoleUser( + roleForUser, + application + ); } return ResponseEntity.ok(user); } diff --git a/src/main/java/fr/inra/oresing/rest/OreSiResources.java b/src/main/java/fr/inra/oresing/rest/OreSiResources.java index 181fa7fdc65b39179d2735993627ef928e80157a..331c02876518f1bd65c34fa9def0b887b3bdad83 100644 --- a/src/main/java/fr/inra/oresing/rest/OreSiResources.java +++ b/src/main/java/fr/inra/oresing/rest/OreSiResources.java @@ -11,7 +11,7 @@ import fr.inra.oresing.domain.additionalfiles.AdditionalFilesInfos; import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.ApplicationInformation; import fr.inra.oresing.domain.application.configuration.*; -import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotApplicationCanDeleteReferencesRightsException; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotApplicationCanDeleteRightsException; import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotApplicationDataWriterForPublishException; import fr.inra.oresing.domain.authorization.privilegeassessor.role.ApplicationDataDelete; import fr.inra.oresing.domain.authorization.privilegeassessor.role.PrivilegeApplicationDomain; @@ -27,10 +27,8 @@ import fr.inra.oresing.domain.data.read.ouput.KeepAliveZipOutputStream; import fr.inra.oresing.domain.data.read.query.OutPut; import fr.inra.oresing.domain.exceptions.SiOreIllegalArgumentException; import fr.inra.oresing.domain.exceptions.application.BadLabelNameException; -import fr.inra.oresing.domain.exceptions.authentication.authentication.NotApplicationCanDeleteRightsException; import fr.inra.oresing.domain.exceptions.binaryfile.binaryfile.BadFileOrUUIDQuery; import fr.inra.oresing.domain.exceptions.data.data.BadDownloadDatasetQuery; -import fr.inra.oresing.domain.exceptions.data.data.DeleteOnrepositoryApplicationNotAllowedException; import fr.inra.oresing.domain.file.FileOrUUID; import fr.inra.oresing.domain.repository.data.DataRepositoryForBuffer; import fr.inra.oresing.persistence.DataRow; diff --git a/src/main/java/fr/inra/oresing/rest/binaryFile/BinaryFileService.java b/src/main/java/fr/inra/oresing/rest/binaryFile/BinaryFileService.java index cc022a7340ce1be09c6c1b819454c7c88618a5af..94c6ee7b136fc72de803f146eff193e6966da447 100644 --- a/src/main/java/fr/inra/oresing/rest/binaryFile/BinaryFileService.java +++ b/src/main/java/fr/inra/oresing/rest/binaryFile/BinaryFileService.java @@ -18,6 +18,7 @@ import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; import fr.inra.oresing.rest.OreSiApiRequestContext; import fr.inra.oresing.rest.model.additionalfiles.AdditionalBinaryFileResult; import fr.inra.oresing.rest.model.authorization.AuthorizationParsed; +import fr.inra.oresing.rest.services.AuthorizationService; import fr.inra.oresing.rest.services.ServiceContainer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -158,7 +159,7 @@ public class BinaryFileService implements fr.inra.oresing.domain.services.file.B final AdditionalBinaryFile additionalBinaryFile, final Application application) { Map<String, List<AuthorizationParsed>> authorizationsParsed = new HashMap<>(); - serviceContainer.authorizationService().authorizationsToParsedAuthorizations( + AuthorizationService.authorizationsToParsedAuthorizations( additionalBinaryFile.getAssociates(), authorizationsParsed); return new AdditionalBinaryFileResult(additionalBinaryFile, authorizationsParsed); diff --git a/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvHeaderWriter.java b/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvHeaderWriter.java index 58672f5dcd0459ed840e392fd6a6b5233f3a46e2..ac6038b999fa414a183bc841d2e2a0bd4d6f07f6 100644 --- a/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvHeaderWriter.java +++ b/src/main/java/fr/inra/oresing/rest/data/extraction/DataCsvHeaderWriter.java @@ -43,7 +43,7 @@ public record DataCsvHeaderWriter( horizontalDisplay); } - protected DataRow writeHeader(DataRow dataRow) { + DataRow writeHeader(DataRow dataRow) { if (CollectionUtils.isNotEmpty(orderedColumns())) { return dataRow; } diff --git a/src/main/java/fr/inra/oresing/rest/data/publication/StoreFile.java b/src/main/java/fr/inra/oresing/rest/data/publication/StoreFile.java index 606512dbe709a330015ba2c6abac768a561600ba..b0313eb99671ec77a2aafb7d28898bf89d251b5d 100644 --- a/src/main/java/fr/inra/oresing/rest/data/publication/StoreFile.java +++ b/src/main/java/fr/inra/oresing/rest/data/publication/StoreFile.java @@ -23,8 +23,7 @@ public record StoreFile(AuthorizationPublicationService builder) implements Stat ) { try { - byte[] bytes = null; - bytes = file == null ? null : FileBomResolver.of(file.getInputStream()).readAllBytes(); + byte[] bytes = file == null ? null : FileBomResolver.of(file.getInputStream()).readAllBytes(); byte[] finalBytes = bytes; builder().binaryFile = Optional.ofNullable(fileOrUuid()).map(FileOrUUID::fileid) diff --git a/src/main/java/fr/inra/oresing/rest/exceptions/OreExceptionHandler.java b/src/main/java/fr/inra/oresing/rest/exceptions/OreExceptionHandler.java index 9bf8a3abedaa9e6a351d4b947ebd8dee72416c8a..f2926e3fc4e84b352dd1d1aa5e671d135162f0d4 100644 --- a/src/main/java/fr/inra/oresing/rest/exceptions/OreExceptionHandler.java +++ b/src/main/java/fr/inra/oresing/rest/exceptions/OreExceptionHandler.java @@ -1,6 +1,7 @@ package fr.inra.oresing.rest.exceptions; import com.google.common.base.Throwables; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.DisconnectedException; import fr.inra.oresing.domain.checker.InvalidDatasetContentException; import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; import fr.inra.oresing.domain.exceptions.SiOreIllegalArgumentException; @@ -8,7 +9,6 @@ import fr.inra.oresing.domain.exceptions.configuration.ConfigurationException; import fr.inra.oresing.persistence.AuthenticationFailure; import fr.inra.oresing.domain.data.deposit.validation.CsvRowValidationCheckResult; import fr.inra.oresing.domain.exceptions.application.NoSuchApplicationException; -import fr.inra.oresing.domain.exceptions.authentication.authentication.DisconnectedException; import fr.inra.oresing.domain.exceptions.binaryfile.binaryfile.BadFileOrUUIDQuery; import fr.inra.oresing.domain.exceptions.configuration.BadApplicationConfigurationException; import fr.inra.oresing.domain.exceptions.data.data.BadBinaryFileDatasetQuery; diff --git a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/TagsBuilder.java b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/TagsBuilder.java index 7f7fe827c75de19e19ccab1ece8c3c2c95f5ee66..dc64f40325fd0475fccbf80b1f445437ac5f4204 100644 --- a/src/main/java/fr/inra/oresing/rest/model/configuration/builder/TagsBuilder.java +++ b/src/main/java/fr/inra/oresing/rest/model/configuration/builder/TagsBuilder.java @@ -53,7 +53,7 @@ public record TagsBuilder(RootBuilder rootBuilder) { return oaTags; } - protected Parsing<Set<Tag>> buildTags(final String path, final JsonNode tagsNode, I18n i18n) { + private Parsing<Set<Tag>> buildTags(final String path, final JsonNode tagsNode, I18n i18n) { I18n i18n1 = i18n; final Map<String, Map<String, String>> tagsMap = (Map<String, Map<String, String>>) rootBuilder.getMapper().convertValue(tagsNode, Map.class); if (tagsMap == null) { diff --git a/src/main/java/fr/inra/oresing/rest/services/ApplicationService.java b/src/main/java/fr/inra/oresing/rest/services/ApplicationService.java index 28421db4938dd901f766395c2646a81ec381b13a..5d8a1c94975f1662fe23d0809c89d1b4fe08d8d4 100644 --- a/src/main/java/fr/inra/oresing/rest/services/ApplicationService.java +++ b/src/main/java/fr/inra/oresing/rest/services/ApplicationService.java @@ -9,9 +9,9 @@ import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.ApplicationInformation; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.internationalization.Internationalizations; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotApplicationCreatorRightsException; import fr.inra.oresing.domain.exceptions.OreSiTechnicalException; import fr.inra.oresing.domain.exceptions.application.NoSuchApplicationException; -import fr.inra.oresing.domain.exceptions.authentication.authentication.NotApplicationCreatorRightsException; import fr.inra.oresing.domain.file.FileBomResolver; import fr.inra.oresing.domain.repository.authorization.role.CurrentUserRoles; import fr.inra.oresing.domain.repository.authorization.role.OreSiUserRole; diff --git a/src/main/java/fr/inra/oresing/rest/services/AuthorizationService.java b/src/main/java/fr/inra/oresing/rest/services/AuthorizationService.java index adcc06c16d78a310ae73ab2ceb95e6e71d7ce767..385e2acc76ce168777fe894689e38e095536f7f2 100644 --- a/src/main/java/fr/inra/oresing/rest/services/AuthorizationService.java +++ b/src/main/java/fr/inra/oresing/rest/services/AuthorizationService.java @@ -9,13 +9,16 @@ import fr.inra.oresing.domain.application.Application; import fr.inra.oresing.domain.application.configuration.*; import fr.inra.oresing.domain.application.configuration.Authorization; import fr.inra.oresing.domain.authorization.privilegeassessor.*; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotApplicationManagerRightsException; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotApplicationUserManagerRightsException; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotOpenAdomAdminException; +import fr.inra.oresing.domain.authorization.privilegeassessor.role.ApplicationAdminUser; import fr.inra.oresing.domain.authorization.privilegeassessor.role.PrivilegeApplicationDomain; import fr.inra.oresing.domain.authorization.privilegeassessor.role.PrivilegeSystemDomain; import fr.inra.oresing.domain.authorization.request.*; import fr.inra.oresing.domain.data.menu.MenuType; import fr.inra.oresing.domain.data.menu.ReferenceScope; import fr.inra.oresing.domain.exceptions.SiOreIllegalArgumentException; -import fr.inra.oresing.domain.exceptions.authentication.authentication.*; import fr.inra.oresing.domain.exceptions.role.role.BadApplicationRoleException; import fr.inra.oresing.domain.exceptions.role.role.BadRoleException; import fr.inra.oresing.domain.repository.authorization.role.CurrentUserRoles; @@ -67,16 +70,16 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi .map(AuthorizationScopeComponentData::data) .collect(Collectors.toSet())) .orElseGet(Set::of); - switch (authByType){ + switch (authByType) { case AuthorizationForReferenceScope authorizationForReferenceScope -> Preconditions.checkArgument(labels.containsAll(authorizationForReferenceScope.authorizationScope().keySet())); case AuthorizationForReferenceScopeAndTimeScope authorizationForReferenceScopeAndTimeScope -> Preconditions.checkArgument(labels.containsAll(authorizationForReferenceScopeAndTimeScope.authorizationScope().keySet())); case AuthorizationForTimeScope authorizationForTimeScope -> { - return;// Pas de vérification nécessaire pour AuthorizationForTimeScope + // Pas de vérification nécessaire pour AuthorizationForTimeScope } case AuthorizationNoRestriction authorizationNoRestriction -> { - return;// Pas de vérification nécessaire pour AuthorizationNoRestriction + // Pas de vérification nécessaire pour AuthorizationNoRestriction } default -> throw new IllegalArgumentException("Type d'autorisation non reconnu"); } @@ -89,20 +92,6 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi authByTypeEntry.setValue(collect); } - private static void addStoredAuthorizationReferencesThatCantBeModified(final OreSiReferenceAuthorization entity, final Set<String> authorizationListForCurrentUser, final Map<OperationReferenceType, List<String>> modifiedAuthorizations) { - Optional.ofNullable(entity) - .map(OreSiReferenceAuthorization::getReferences) - .ifPresent(a -> a.forEach((key, value) -> { - List<String> collect = value.stream() - .filter(authorizationListForCurrentUser::contains) - .toList(); - modifiedAuthorizations - .computeIfAbsent(key, k -> new LinkedList<>()) - .addAll(collect); - }) - ); - } - private static void addStoredAuthorizationAdditionalFilesThatCantBeModified(final OreSiAdditionalFileAuthorization entity, final Set<String> authorizationListForCurrentUser, final Map<OperationAdditionalFileType, List<String>> modifiedAuthorizations) { Optional.ofNullable(entity) .map(OreSiAdditionalFileAuthorization::getAdditionalFiles) @@ -336,16 +325,12 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi } @Transactional - public UUID revoke(final String applicationNameOrid, final AuthorizationRequest revokeAuthorizationRequest) { + public UUID revoke( + final ApplicationAdminUser applicationAdminUser, + final String applicationNameOrid, + final AuthorizationRequest revokeAuthorizationRequest) { + Optional.of(applicationAdminUser).orElseThrow(() -> new NotApplicationUserManagerRightsException(applicationNameOrid)); Application application = getApplication(applicationNameOrid); - authenticationService.setRoleAdmin(); - CurrentUserRoles rolesForCurrentUser = userRepository.getRolesForCurrentUser(); - authenticationService.setRoleForClient(); - boolean isApplicationCreator = rolesForCurrentUser.memberOf().contains(OreSiRightOnApplicationRole.adminOn(application).getAsSqlRole()); - - if (!isApplicationCreator) { - throw new NotApplicationCanSetRightsException(application.getName()); - } OreSiAuthorization oreSiAuthorization = repository.getRepository(application).authorization().findById(revokeAuthorizationRequest.authorizationId()); Map<String, AuthorizationForScope> authorizationListForCurrentUser = getAuthorizationListForCurrentUser(application); @@ -353,7 +338,11 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi Map<String, AuthorizationForScope> filteredAuthorizations = oreSiAuthorization.getAuthorizations().entrySet().stream() .collect(Collectors.toMap( Map.Entry::getKey, - entry -> validateAndGetAuthForScope(entry, true, authorizationListForCurrentUser, application) + Map.Entry::getValue/*entry -> validateAndGetAuthForScope( + entry, + true, + authorizationListForCurrentUser, + application)*/ )); if (filteredAuthorizations.isEmpty()) { @@ -369,10 +358,10 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2)); } - private AuthorizationForScope validateAndGetAuthForScope(Map.Entry<String, AuthorizationForScope> entry, - boolean isApplicationCreator, - Map<String, AuthorizationForScope> authorizationListForCurrentUser, - Application application) { + /* private AuthorizationForScope validateAndGetAuthForScope( + Map.Entry<String, AuthorizationForScope> entry, + Map<String, AuthorizationForScope> authorizationListForCurrentUser, + Application application) { String datatype = entry.getKey(); AuthorizationForScope authForScope = entry.getValue(); @@ -387,7 +376,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi } return authForScope; - } + }*/ public ImmutableSet<GetAuthorizationResult> getAuthorizations( final String applicationNameOrId, @@ -507,7 +496,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi ApplicationUserResult.getApplicationRoles(application) ); return allUsers.stream() - .map(user-> ApplicationUserResult.of( + .map(user -> ApplicationUserResult.of( application.getId(), user, administratorRoles, @@ -527,10 +516,10 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi .stream() .filter(ReferenceScope.NodeDescription::isRoot) .map(node -> new ReferenceScope.TreeNode( - node.node_nk(), - node, - findChildren(node, referenceScopeBykey) - ) + node.node_nk(), + node, + findChildren(node, referenceScopeBykey) + ) ) .filter(ReferenceScope.TreeNode::containsContextNode) .toList(); @@ -580,6 +569,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi } throw new BadRoleException("cantDeleteRole", roleForUser.role()); } + @Transactional public OreSiUserResult deleteApplicationRoleUser(final OreSiRoleForUser roleForUser, Application application) { authenticationService.setRoleAdmin(); @@ -592,33 +582,12 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi } private OreSiUserResult deleteApplicationCreatorRoleUser(final OreSiRoleForUser oreSiUserRoleApplicationCreator) { - final boolean canAddApplicationCreatorRole = canAddApplicationCreatorRole(oreSiUserRoleApplicationCreator); - if (canAddApplicationCreatorRole) { + //final boolean canAddApplicationCreatorRole = canAddApplicationCreatorRole(oreSiUserRoleApplicationCreator); + //if (canAddApplicationCreatorRole) { OreSiUser user = authenticationService.deleteUserRightCreateApplication(UUID.fromString(oreSiUserRoleApplicationCreator.userId()), oreSiUserRoleApplicationCreator.applicationPattern()); return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleApplicationCreator.userId())); - } - throw new NotopenAdomAdminException(); - } - - private boolean canAddApplicationCreatorRole(final OreSiRoleForUser oreSiUserRoleApplicationCreator) { - boolean canAddApplicationCreatorRole = false; - CurrentUserRoles currentUserRoles = authenticationService.getCurrentUserRoles(); - if (currentUserRoles.isOpenAdomAdmin()) { - canAddApplicationCreatorRole = true; - } else if (currentUserRoles.isApplicationCreator()) { - OreSiUser user = userRepository.findByLogin(oreSiUserRoleApplicationCreator.userId()).orElseGet(() -> userRepository.findById(UUID.fromString(oreSiUserRoleApplicationCreator.userId()))); - if (user.getAuthorizations().stream() - .anyMatch(p -> Pattern.compile(p) - .matcher(oreSiUserRoleApplicationCreator.applicationPattern()) - .matches() - )) { - canAddApplicationCreatorRole = true; - } else { - throw new NotApplicationCreatorRightsException(oreSiUserRoleApplicationCreator.applicationPattern(), user.getAuthorizations()); - } - - } - return canAddApplicationCreatorRole; + /*} + throw new NotopenAdomAdminException();*/ } private OreSiUserResult deleteApplicationManagerRoleUser(final OreSiRoleForUser oreSiRoleForApplicationManager, Application application) { @@ -627,7 +596,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi final OreSiUser user = authenticationService.deleteUserRightApplicationManager(UUID.fromString(oreSiRoleForApplicationManager.userId()), application); return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiRoleForApplicationManager.userId())); } - throw new NotopenAdomAdminException(); + throw new NotOpenAdomAdminException();//TODO } private OreSiUserResult deleteUserManagerRoleUser(final OreSiRoleForUser oreSiUserRoleUserManager, Application application) { @@ -636,7 +605,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi OreSiUser user = authenticationService.deleteUserRightUserManager(UUID.fromString(oreSiUserRoleUserManager.userId()), application); return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleUserManager.userId())); } - throw new NotopenAdomAdminException(); + throw new NotOpenAdomAdminException();//TODO } private OreSiUserResult deleteAdminRoleUser(final OreSiRoleForUser oreSiRoleForUserAdmin) { @@ -646,7 +615,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi final OreSiUser user = authenticationService.deleteUserRightopenAdomAdmin(UUID.fromString(oreSiRoleForUserAdmin.userId())); return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiRoleForUserAdmin.userId())); } - throw new NotopenAdomAdminException(); + throw new NotOpenAdomAdminException();//TODO } @Transactional @@ -672,12 +641,12 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi } private OreSiUserResult addApplicationCreatorRoleUser(final OreSiRoleForUser oreSiUserRoleApplicationCreator) { - final boolean canAddApplicationCreatorRole = canAddApplicationCreatorRole(oreSiUserRoleApplicationCreator); - if (canAddApplicationCreatorRole) { + //final boolean canAddApplicationCreatorRole = canAddApplicationCreatorRole(oreSiUserRoleApplicationCreator); + //if (canAddApplicationCreatorRole) { OreSiUser user = authenticationService.addUserRightCreateApplication(UUID.fromString(oreSiUserRoleApplicationCreator.userId()), oreSiUserRoleApplicationCreator.applicationPattern()); return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleApplicationCreator.userId())); - } - throw new NotopenAdomAdminException(); + /*} + throw new NotOpenAdomAdminException();//TODO*/ } private OreSiUserResult addApplicationManagerRoleUser(final OreSiRoleForUser oreSiUserRoleApplicationManager, Application application) { @@ -686,7 +655,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi OreSiUser user = authenticationService.addUserRightApplicationManager(UUID.fromString(oreSiUserRoleApplicationManager.userId()), application); return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleApplicationManager.userId())); } - throw new NotopenAdomAdminException(); + throw new NotOpenAdomAdminException();//TODO } private OreSiUserResult addUserManagerRoleUser(final OreSiRoleForUser oreSiUserRoleUserManager, Application application) { @@ -695,7 +664,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi OreSiUser user = authenticationService.addUserRightUserManager(UUID.fromString(oreSiUserRoleUserManager.userId()), application); return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiUserRoleUserManager.userId())); } - throw new NotopenAdomAdminException(); + throw new NotOpenAdomAdminException();//TODO } private OreSiUserResult addAdminRoleUser(final OreSiRoleForUser oreSiRoleForUserAdmin) { @@ -705,7 +674,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi final OreSiUser user = authenticationService.addUserRightopenAdomAdmin(UUID.fromString(oreSiRoleForUserAdmin.userId())); return new OreSiUserResult(user, userRepository.getRolesForRole(oreSiRoleForUserAdmin.userId())); } - throw new NotopenAdomAdminException(); + throw new NotOpenAdomAdminException();//TODO } public boolean isApplicationCreator(final Application application, final UUID userId) { @@ -842,7 +811,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi .limit(limit) .filter(oreSiReferenceAuthorization -> (user == null || oreSiReferenceAuthorization.getOreSiUsers().stream().anyMatch(uuid -> uuid.toString().equals(user))) - && (authorizationId == null || oreSiReferenceAuthorization.getId().toString().equals(authorizationId)) + && (authorizationId == null || oreSiReferenceAuthorization.getId().toString().equals(authorizationId)) ) .map(oreSiAuthorization -> toGetAdditionalFilesAuthorizationResult(oreSiAuthorization, publicAuthorizations, authorizationsForUser)) .collect(ImmutableSet.toImmutableSet()); @@ -966,7 +935,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi String datatype = authorizationEntry.getKey(); AuthorizationForScope authorizationToParse = authorizationEntry.getValue(); AuthorizationParsed authorizationParsed = AuthorizationParsed.of(authorizationToParse); - authorizationsParsed.computeIfAbsent(datatype, k->new LinkedList<>()) + authorizationsParsed.computeIfAbsent(datatype, k -> new LinkedList<>()) .add(authorizationParsed); } } @@ -1000,6 +969,7 @@ public class AuthorizationService implements ServiceContainerBean, fr.inra.oresi Set<String> applicationCreator = currentUser.getAuthorizations(); return new AuthorizationsForSystemUser(currentUserRoles, applicationCreator); } + @Override public PrivilegeAssessorDomainForSystem getPrivilegeAssessorForSystem( PrivilegeSystemDomain privilegeDomain diff --git a/src/main/java/fr/inra/oresing/rest/services/RightsRequestService.java b/src/main/java/fr/inra/oresing/rest/services/RightsRequestService.java index 45314542ce351b34659668c88d8386f95024a9ee..fc52624902a1370ddde507e835bbd324eb56a53f 100644 --- a/src/main/java/fr/inra/oresing/rest/services/RightsRequestService.java +++ b/src/main/java/fr/inra/oresing/rest/services/RightsRequestService.java @@ -75,7 +75,7 @@ public class RightsRequestService implements ServiceContainerBean{ private RightsRequestResult getRightsRequestResult(final RightsRequest rightsRequest, final Application application) { Map<String, List<AuthorizationParsed>> authorizationsParsed = new HashMap<>(); - serviceContainer.authorizationService().authorizationsToParsedAuthorizations( + AuthorizationService.authorizationsToParsedAuthorizations( List.of(rightsRequest.getRightsRequest()), authorizationsParsed); return new RightsRequestResult( diff --git a/src/main/java/fr/inra/oresing/rest/services/ServiceContainer.java b/src/main/java/fr/inra/oresing/rest/services/ServiceContainer.java index bff87b18b4374458247f51ac40d96d287cfd4e83..b17f88ef82303d93651e6c815152c21fb60404d3 100644 --- a/src/main/java/fr/inra/oresing/rest/services/ServiceContainer.java +++ b/src/main/java/fr/inra/oresing/rest/services/ServiceContainer.java @@ -20,7 +20,7 @@ public record ServiceContainer( RelationalService relationalService, Email emailService ) { - public static final ServiceContainer of( + public static ServiceContainer of( ApplicationService applicationService, AuthorizationService authorizationService, AuthenticationService authenticationService, diff --git a/src/main/resources/fr/inra/oresing/client/OpenAdomClient.groovy b/src/main/resources/fr/inra/oresing/client/OpenAdomClient.groovy index 5ec77536798c4f517415922e31f9df380f0f41b3..f5a53938f9de19d7a2bc44bc446336c664c31566 100644 --- a/src/main/resources/fr/inra/oresing/client/OpenAdomClient.groovy +++ b/src/main/resources/fr/inra/oresing/client/OpenAdomClient.groovy @@ -1,46 +1,46 @@ package fr.inra.oresing.client -import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.core.type.TypeReference import com.fasterxml.jackson.databind.ObjectMapper -import org.apache.commons.io.file.AccumulatorPathVisitor; -import org.apache.commons.io.file.Counters; -import org.apache.hc.client5.http.classic.methods.HttpPost; -import org.apache.hc.client5.http.cookie.BasicCookieStore; -import org.apache.hc.client5.http.entity.mime.FileBody; +import org.apache.commons.io.file.AccumulatorPathVisitor +import org.apache.commons.io.file.Counters +import org.apache.hc.client5.http.classic.methods.HttpPost +import org.apache.hc.client5.http.cookie.BasicCookieStore +import org.apache.hc.client5.http.entity.mime.FileBody import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder -import org.apache.hc.client5.http.impl.classic.HttpClients; -import org.apache.hc.core5.http.ClassicHttpRequest; -import org.apache.hc.core5.http.ClassicHttpResponse; -import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.io.HttpClientResponseHandler; -import org.apache.hc.core5.http.io.entity.EntityUtils; +import org.apache.hc.client5.http.impl.classic.HttpClients +import org.apache.hc.core5.http.ClassicHttpRequest +import org.apache.hc.core5.http.ClassicHttpResponse +import org.apache.hc.core5.http.HttpEntity +import org.apache.hc.core5.http.io.HttpClientResponseHandler +import org.apache.hc.core5.http.io.entity.EntityUtils import org.apache.hc.core5.http.io.support.ClassicRequestBuilder -import java.nio.file.Files; +import java.nio.file.Files import java.nio.file.Path -import java.util.stream.Collectors; +import java.util.stream.Collectors @Grab(group = "commons-io", module = "commons-io", version = "2.8.0") @Grab(group = "org.apache.httpcomponents.client5", module = "httpclient5", version = "5.2.1") -ClientConfiguration clientConfiguration = readConfiguration(); +ClientConfiguration clientConfiguration = readConfiguration() -String applicationName = clientConfiguration.applicationName(); -URI instanceUrl = clientConfiguration.instanceUrl(); +String applicationName = clientConfiguration.applicationName() +URI instanceUrl = clientConfiguration.instanceUrl() -String login; -String password; -boolean interactive = true; -Scanner scanner = new Scanner(System.in); +String login +String password +boolean interactive = true +Scanner scanner = new Scanner(System.in) if (interactive) { - System.out.println("Veuillez saisir les informations de connexion à " + instanceUrl); - System.out.print("identifiant : "); - login = scanner.nextLine(); - System.out.print("mot de passe : "); - password = scanner.nextLine(); + System.out.println("Veuillez saisir les informations de connexion à " + instanceUrl) + System.out.print("identifiant : ") + login = scanner.nextLine() + System.out.print("mot de passe : ") + password = scanner.nextLine() } else { - login = "poussin"; - password = "xxxx"; + login = "poussin" + password = "xxxx" } BasicCookieStore cookieStore = new BasicCookieStore() @@ -120,89 +120,89 @@ HttpClients.custom() } ClientConfiguration readConfiguration() throws IOException { - File configurationFile = new File("openAdom-client-configuration.json"); + File configurationFile = new File("openAdom-client-configuration.json") ClientConfiguration clientConfiguration = new ObjectMapper() .readValue( configurationFile, ClientConfiguration.class - ); - return clientConfiguration; + ) + return clientConfiguration } List<Command> newCommands(List<String> data/*, List<String> dataTypes*/) { List<Command> dataCommands = data.stream() .flatMap(refType -> getDataCommands(refType).stream()) - .toList(); + .toList() - List<Command> commands = new LinkedList<>(); - commands.addAll(dataCommands); + List<Command> commands = new LinkedList<>() + commands.addAll(dataCommands) - return commands; + return commands } List<Command> getUploadDataCommands(String dataType) { - Path dataDirectoryForDataType = Path.of(dataType); - List<Command> commands; + Path dataDirectoryForDataType = Path.of(dataType) + List<Command> commands if (dataDirectoryForDataType.toFile().exists()) { if (dataDirectoryForDataType.toFile().isDirectory()) { - SortedSet<Path> csvFilePaths = findCsvFilePathsInDirectory(dataDirectoryForDataType); + SortedSet<Path> csvFilePaths = findCsvFilePathsInDirectory(dataDirectoryForDataType) commands = csvFilePaths.stream() .map(Path::toFile) .map(dataFile -> newUploadDataCommand(dataType, dataFile)) - .toList(); + .toList() } else { - logError("le répertoire " + dataDirectoryForDataType + " est un fichier mais il devrait être un dossier. On l’ignore."); - commands = Collections.emptyList(); + logError("le répertoire " + dataDirectoryForDataType + " est un fichier mais il devrait être un dossier. On l’ignore.") + commands = Collections.emptyList() } } else { - log("le répertoire " + dataDirectoryForDataType + " n’existe pas. Pas de données à importer pour " + dataType); - commands = Collections.emptyList(); + log("le répertoire " + dataDirectoryForDataType + " n’existe pas. Pas de données à importer pour " + dataType) + commands = Collections.emptyList() } - return commands; + return commands } List<Command> getDataCommands(String dataName) { - File dir = new File(dataName); - File[] csvFiles = dir.listFiles((dir1, name) -> name.endsWith(".csv")); - List<Command> commands = new LinkedList<>(); + File dir = new File(dataName) + File[] csvFiles = dir.listFiles((dir1, name) -> name.endsWith(".csv")) + List<Command> commands = new LinkedList<>() if (csvFiles == null) { - return List.of(); + return List.of() } Arrays.stream(csvFiles).forEach(refFile -> { if (refFile.exists()) { - Set<Path> csvFilePathsInDirectory; + Set<Path> csvFilePathsInDirectory if (refFile.isFile()) { - csvFilePathsInDirectory = Collections.singleton(refFile.toPath()); + csvFilePathsInDirectory = Collections.singleton(refFile.toPath()) } else if (refFile.isDirectory()) { - csvFilePathsInDirectory = findCsvFilePathsInDirectory(refFile.toPath()); + csvFilePathsInDirectory = findCsvFilePathsInDirectory(refFile.toPath()) } else { - throw new IllegalStateException("ne comprend pas de quel type est " + refFile); + throw new IllegalStateException("ne comprend pas de quel type est " + refFile) } commands.addAll(csvFilePathsInDirectory.stream() .map(path -> newUploadDataCommand(dataName, path.toFile())) .toList() - ); + ) } else { - logError("le fichier %s n’existe pas, on ignore l’import du référentiel %s".formatted(refFile, dataName)); - commands.addAll(Collections.emptyList()); + logError("le fichier %s n’existe pas, on ignore l’import du référentiel %s".formatted(refFile, dataName)) + commands.addAll(Collections.emptyList()) } - }); - return commands; + }) + return commands } Command newUploadDataCommand(String dataName, File dataFile) { return new Command() { @Override - public String getDescription() { - return "Téléversement de %s pour alimenter le référentiel %s".formatted(dataFile, dataName); + String getDescription() { + return "Téléversement de %s pour alimenter le référentiel %s".formatted(dataFile, dataName) } @Override - public ClassicHttpRequest getRequest(UriFactory uriFactory) { - HttpPost httpPost = new HttpPost(uriFactory.forUploadingData(dataName)); - FileBody refFileBody = new FileBody(dataFile); + ClassicHttpRequest getRequest(UriFactory uriFactory) { + HttpPost httpPost = new HttpPost(uriFactory.forUploadingData(dataName)) + FileBody refFileBody = new FileBody(dataFile) HttpEntity reqEntity = MultipartEntityBuilder.create() .addPart("file", refFileBody) .addTextBody("params", """ @@ -211,26 +211,26 @@ Command newUploadDataCommand(String dataName, File dataFile) { "topublish":true } """) - .build(); - httpPost.setEntity(reqEntity); - return httpPost; + .build() + httpPost.setEntity(reqEntity) + return httpPost } List<Map<String, Object>> parseJsonInResponseBodyForErrorMessagesAndParams(ClassicHttpResponse response) { try (InputStream inputStream = response.getEntity().getContent()) { List<Map<String, Object>> responseBody = new ObjectMapper().readValue(inputStream, new TypeReference<List<Map<String, Object>>>() { - }); + }) return responseBody.stream() .map(record -> { - Map<String, Object> resultMap = new HashMap<>(); - resultMap.put("message", ((Map<String, Object>) record.get("validationCheckResult")).get("message").toString()); - resultMap.put("messageParams", (Map<String, Object>) ((Map<String, Object>) record.get("validationCheckResult")).get("messageParams")); - return resultMap; + Map<String, Object> resultMap = new HashMap<>() + resultMap.put("message", ((Map<String, Object>) record.get("validationCheckResult")).get("message").toString()) + resultMap.put("messageParams", (Map<String, Object>) ((Map<String, Object>) record.get("validationCheckResult")).get("messageParams")) + return resultMap }) - .collect(Collectors.toList()); + .collect(Collectors.toList()) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } @@ -258,40 +258,40 @@ Command newUploadDataCommand(String dataName, File dataFile) { } null } - }; + } } SortedSet<Path> findCsvFilePathsInDirectory(Path directory) { try { - AccumulatorPathVisitor accumulatorPathVisitor = new AccumulatorPathVisitor(Counters.longPathCounters()); - Files.walkFileTree(directory, accumulatorPathVisitor); + AccumulatorPathVisitor accumulatorPathVisitor = new AccumulatorPathVisitor(Counters.longPathCounters()) + Files.walkFileTree(directory, accumulatorPathVisitor) SortedSet<Path> csvFilePathsInDirectory = accumulatorPathVisitor.getFileList().stream() .filter(path -> path.getFileName().toString().endsWith(".csv")) - .collect(Collectors.toCollection(TreeSet::new)); - return Collections.unmodifiableSortedSet(csvFilePathsInDirectory); + .collect(Collectors.toCollection(TreeSet::new)) + return Collections.unmodifiableSortedSet(csvFilePathsInDirectory) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } void fail(String message) { - logError(message); - System.exit(1); + logError(message) + System.exit(1) } static void logError(String string) { - System.err.println(string); + System.err.println(string) } static void log(String message) { - System.out.println(message); + System.out.println(message) } <T> T parseJsonInResponseBody(ClassicHttpResponse response, TypeReference<T> valueTypeRef) { try (InputStream inputStream = response.getEntity().getContent()) { - return new ObjectMapper().readValue(inputStream, valueTypeRef); + return new ObjectMapper().readValue(inputStream, valueTypeRef) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } @@ -329,19 +329,19 @@ record UriFactory(URI instanceUrl, String applicationName) { URI newUri(String endpoint) { try { - return new URI("%s/api/v1/%s".formatted(instanceUrl, endpoint)); + return new URI("%s/api/v1/%s".formatted(instanceUrl, endpoint)) } catch (URISyntaxException e) { - throw new RuntimeException("ne devrait pas arriver", e); + throw new RuntimeException("ne devrait pas arriver", e) } } - public URI forLogin() { - return newUri("login"); + URI forLogin() { + return newUri("login") } - public URI forUploadingData(String dataType) { - String endpoint = "applications/%s/data/%s".formatted(applicationName, dataType); - return newUri(endpoint); + URI forUploadingData(String dataType) { + String endpoint = "applications/%s/data/%s".formatted(applicationName, dataType) + return newUri(endpoint) } /*public URI forApplicationReferenceTypes(String applicationName) { @@ -349,9 +349,9 @@ record UriFactory(URI instanceUrl, String applicationName) { return newUri(endpoint); }*/ - public URI forApplicationDataTypes(String applicationName) { - String endpoint = "applications/%s/data".formatted(applicationName); - return newUri(endpoint); + URI forApplicationDataTypes(String applicationName) { + String endpoint = "applications/%s/data".formatted(applicationName) + return newUri(endpoint) } } diff --git a/src/test/java/fr/inra/oresing/domain/application/configuration/SubmissionTest.java b/src/test/java/fr/inra/oresing/domain/application/configuration/SubmissionTest.java index 90fd64f65084ff6bdc79ee0ac13ca22c570fd65c..5955b26012109260595e1a213776b83832552b9b 100644 --- a/src/test/java/fr/inra/oresing/domain/application/configuration/SubmissionTest.java +++ b/src/test/java/fr/inra/oresing/domain/application/configuration/SubmissionTest.java @@ -41,22 +41,22 @@ class SubmissionTest { @Test void testPatternGroups(){ List<Submission.PatternPosition> groupPositions = submission.fileNameParsing().patternGroups(); - Assertions.assertEquals(4, groupPositions.size()); - Assertions.assertEquals("[[0, 4], [5, 9], [10, 14], [15, 19]]", groupPositions.toString()); + assertEquals(4, groupPositions.size()); + assertEquals("[[0, 4], [5, 9], [10, 14], [15, 19]]", groupPositions.toString()); } @Test void testPatternToBeReplacedByGroupCapture(){ - Assertions.assertEquals("%1$s_%2$s_%3$s_%4$s.csv", submission.fileNameParsing().patternToBeReplacedByGroupCapture()); + assertEquals("%1$s_%2$s_%3$s_%4$s.csv", submission.fileNameParsing().patternToBeReplacedByGroupCapture()); } @Test void testGroupCount(){ - Assertions.assertEquals(4, submission.fileNameParsing().groupCount()); + assertEquals(4, submission.fileNameParsing().groupCount()); } @Test void testOrderedGroups(){ LinkedList<String> orderedGroups = submission.fileNameParsing().orderedGroups(); - Assertions.assertArrayEquals(List.of("projet","chemin",ConfigurationSchemaNode.OA_START_DATE_MATCH_PATTERN, ConfigurationSchemaNode.OA_END_DATE_MATCH_PATTERN + assertArrayEquals(List.of("projet","chemin",ConfigurationSchemaNode.OA_START_DATE_MATCH_PATTERN, ConfigurationSchemaNode.OA_END_DATE_MATCH_PATTERN ).toArray(new String[0]), orderedGroups.toArray(new String[0])); } @@ -65,14 +65,14 @@ class SubmissionTest { submission.parseFileName("leProjet_leSite_01-01-1984_05-01-1984.csv", binaryFileDataset); assertTrue(binaryFileDataset.getRequiredAuthorizations().get("projet").contains(Ltree.fromSql("leProjet"))); assertTrue(binaryFileDataset.getRequiredAuthorizations().get("sites").contains(Ltree.fromSql("leSite"))); - assertTrue(binaryFileDataset.getFrom().equals("1984-01-01 00:00:00")); - assertTrue(binaryFileDataset.getTo().equals("1984-01-05 00:00:00")); + assertEquals("1984-01-01 00:00:00", binaryFileDataset.getFrom()); + assertEquals("1984-01-05 00:00:00", binaryFileDataset.getTo()); //do nothing if already done submission.parseFileName("leProjet2_leSite2_01-01-1985_05-01-1985.csv", binaryFileDataset); assertTrue(binaryFileDataset.getRequiredAuthorizations().get("projet").contains(Ltree.fromSql("leProjet"))); assertTrue(binaryFileDataset.getRequiredAuthorizations().get("sites").contains(Ltree.fromSql("leSite"))); - assertTrue(binaryFileDataset.getFrom().equals("1984-01-01 00:00:00")); - assertTrue(binaryFileDataset.getTo().equals("1984-01-05 00:00:00")); + assertEquals("1984-01-01 00:00:00", binaryFileDataset.getFrom()); + assertEquals("1984-01-05 00:00:00", binaryFileDataset.getTo()); } @Test diff --git a/src/test/java/fr/inra/oresing/domain/checker/type/ReferenceTypeTest.java b/src/test/java/fr/inra/oresing/domain/checker/type/ReferenceTypeTest.java index 5f5e8c50d29e4dc0ae6a98ee9f6552c2d1db8714..d9a27bb45304d462320a1c274bab563874baf834 100644 --- a/src/test/java/fr/inra/oresing/domain/checker/type/ReferenceTypeTest.java +++ b/src/test/java/fr/inra/oresing/domain/checker/type/ReferenceTypeTest.java @@ -33,9 +33,6 @@ class ReferenceTypeTest { String badValue = "annecy"; String goodValueNotLabel = "LéMan"; uuid1 = UUID.randomUUID(); - UUID uuid2 = UUID.randomUUID(); - UUID uuid3 = UUID.randomUUID(); - UUID uuid4 = UUID.randomUUID(); referenceValues = new ImmutableMap.Builder() .put(new DataValue.LineIdentityColumnName(Ltree.fromSql(goodValue), Ltree.fromSql(goodValue)), ImmutableSet.of(uuid1)) .build(); diff --git a/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java b/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java index 5c0a54e60df32c0dff95392b04dc9139dc11abee..8c129eb0f9bf92c9346a72fa5431d59f7ad83e84 100644 --- a/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java +++ b/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java @@ -76,7 +76,7 @@ public class AuthenticationServiceTest { @Test public void testSetRole() { OreSiRoleToAccessDatabase anonymousRole = authenticationService.setRole(OreSiRole.anonymous()); - Assertions.assertEquals(OreSiRole.anonymous(), anonymousRole); + assertEquals(OreSiRole.anonymous(), anonymousRole); } @Test diff --git a/src/test/java/fr/inra/oresing/persistence/data/read/bundle/FileContentTest.java b/src/test/java/fr/inra/oresing/persistence/data/read/bundle/FileContentTest.java index 2d75f23c252462999dcb4c1e9b1d61846b09c3aa..d0dd6935dff2db83e84db6730a228bd82fb979d7 100644 --- a/src/test/java/fr/inra/oresing/persistence/data/read/bundle/FileContentTest.java +++ b/src/test/java/fr/inra/oresing/persistence/data/read/bundle/FileContentTest.java @@ -45,19 +45,19 @@ class FileContentTest { Application application = Mockito.mock(Application.class); Mockito.doReturn(Optional.of(submission)).when(application).findSubmission(dataName); String request = FileContent.buildFileNameRequest(application, dataName); - Assertions.assertEquals(""" - SELECT DISTINCT ON (rv.binaryfile) - format('%s_%s_%s_%s.csv', - ((bf.authorization).requiredauthorizations).projet, - ((bf.authorization).requiredauthorizations).chemin, - TO_CHAR(lower((bf.authorization).timescope),'yyyy-MM-dd'), - TO_CHAR(upper((bf.authorization).timescope),'yyyy-MM-dd') - ) as "fileName", - convert_from(decode(encode(bf.filedata, 'escape'), 'base64'), 'UTF8') AS "fileContent" - FROM null.referencevalue rv - JOIN null.binaryfile bf ON bf.id = rv.binaryfile - WHERE rv.referencetype = 'data' - ORDER BY rv.binaryfile, bf.updatedate DESC; + assertEquals(""" + SELECT DISTINCT ON (rv.binaryfile) + format('%1$s_%2$s_%3$s_%4$s.csv', + ((bf."authorization").requiredauthorizations).projet[1], + ((bf."authorization").requiredauthorizations).sites[1], + TO_CHAR(lower((bf."authorization").timescope),'yyyy-MM-dd'), + TO_CHAR(upper((bf."authorization").timescope),'yyyy-MM-dd') + ) as "fileName", + convert_from(decode(encode(bf.filedata, 'escape'), 'base64'), 'UTF8') AS "fileContent" + FROM null.referencevalue rv + JOIN null.binaryfile bf ON bf.id = rv.binaryfile + WHERE rv.referencetype = 'data' + ORDER BY rv.binaryfile, bf.updatedate DESC; """, request); } diff --git a/src/test/java/fr/inra/oresing/persistence/index/AuthorizationIndexTest.java b/src/test/java/fr/inra/oresing/persistence/index/AuthorizationIndexTest.java index d7bfb1830aa455d870c511e1dbf064b7419da597..df59246407d0c435ef98a641d0f8041f5c424227 100644 --- a/src/test/java/fr/inra/oresing/persistence/index/AuthorizationIndexTest.java +++ b/src/test/java/fr/inra/oresing/persistence/index/AuthorizationIndexTest.java @@ -128,7 +128,7 @@ class AuthorizationIndexTest { ); AuthorizationForScope authorization = new AuthorizationForReferenceScopeAndTimeScope(Set.of(), authorizationScope, timescope); String sqlFilter = authorizationIndex.sqlFilterForAuthorization("pem", authorization, false); - Assertions.assertEquals(""" + assertEquals(""" referencetype = 'pem' AND ("authorization").requiredauthorizations.projet @> ARRAY['projetKprojet_atlantique', 'projetKprojet_mediterranee']::ltree[] AND ("authorization").requiredauthorizations.sites @> ARRAY['type_de_sitesKplateforme', 'type_de_sitesKlaboratoire']::ltree[] @@ -146,7 +146,7 @@ class AuthorizationIndexTest { ); AuthorizationForScope authorization = new AuthorizationForReferenceScope(Set.of(), authorizationScope); String sqlFilter = authorizationIndex.sqlFilterForAuthorization("pem", authorization, false); - Assertions.assertEquals(""" + assertEquals(""" referencetype = 'pem' AND ("authorization").requiredauthorizations.projet IS NULL AND ("authorization").requiredauthorizations.sites @> ARRAY['type_de_sitesKplateforme']::ltree[]""", diff --git a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java index 02c1fd0def1b60715b85d1dfabf460999901e89b..30b034e23cd56fc6d0c3f928b724ffcd4b6efa61 100644 --- a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java +++ b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java @@ -134,7 +134,7 @@ public class ApplicationConfigurationServiceTest { .collectList() .block() .stream().collect(Collectors.joining("\n"))); - Assertions.assertEquals(""" + assertEquals(""" 1.0.5 3.0.1 3.0.1 @@ -169,7 +169,7 @@ public class ApplicationConfigurationServiceTest { private void testConfiguration(ReactiveProgression.CreateApplicationProgression progression, String config, boolean expectedValidity) throws IOException { byte[] configBytes = config.getBytes(StandardCharsets.UTF_8); FileBomResolver fileBomResolver = FileBomResolver.of(new ByteArrayInputStream(configBytes)); - Application application = service.parseConfigurationBytes("", progression, fileBomResolver); + Application application = ApplicationConfigurationService.parseConfigurationBytes("", progression, fileBomResolver); System.out.println(application); //assertEquals(expectedValidity, application.isValid(), "La configuration '" + config + "' devrait être " + (expectedValidity ? "valide" : "invalide")); } @@ -558,7 +558,7 @@ public class ApplicationConfigurationServiceTest { final List<String> expectedComponents = Arrays.stream(new String[]{"site_bassin", "date", "tel_experimental_site", "site", "bassin", "projet", "espece", "ordre_affichage", "chemin", "tel_experimental_network", "plateforme", "is_float_value", "tel_value"}) .collect(Collectors.toCollection(LinkedList::new)); final Collection<String> givenComponents = (Collection<String>) validationError.getParam("knownComponents"); - Assertions.assertIterableEquals(expectedComponents, givenComponents); + assertIterableEquals(expectedComponents, givenComponents); }); } @@ -1078,7 +1078,7 @@ public class ApplicationConfigurationServiceTest { final List<String> expectedComponents = Arrays.stream(new String[]{"site_bassin", "date", "tel_experimental_site", "site", "bassin", "projet", "espece", "ordre_affichage", "chemin", "tel_experimental_network", "plateforme", "is_float_value", "tel_value"}) .collect(Collectors.toCollection(LinkedList::new)); final Collection<String> givenComponents = (Collection<String>) validationError.getParam("knownComponents"); - Assertions.assertIterableEquals(expectedComponents, givenComponents); + assertIterableEquals(expectedComponents, givenComponents); }); } diff --git a/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java b/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java index 53a8bb6d56435b143de9da1c5fb9d0e879eed0aa..893a3a1ac5094d5b6a92d53587e40ec7336da779 100644 --- a/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java @@ -3,11 +3,11 @@ package fr.inra.oresing.rest; import com.jayway.jsonpath.JsonPath; import fr.inra.oresing.OreSiNg; import fr.inra.oresing.TestDatabaseConfig; +import fr.inra.oresing.domain.authorization.privilegeassessor.exception.NotApplicationCreatorRightsException; import fr.inra.oresing.persistence.ApplicationRepository; import fr.inra.oresing.persistence.AuthenticationService; import fr.inra.oresing.persistence.SqlService; import fr.inra.oresing.persistence.UserRepository; -import fr.inra.oresing.domain.exceptions.authentication.authentication.NotApplicationCreatorRightsException; import fr.inra.oresing.rest.reactive.ReactiveTypeError; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.security.Keys; diff --git a/src/test/java/fr/inra/oresing/rest/Fixtures.java b/src/test/java/fr/inra/oresing/rest/Fixtures.java index 14e24e162256ceff52bf7e73672a6d234c4e3013..d20d9c2953ac2ad3be61c7fcc7cd086bb05962cd 100644 --- a/src/test/java/fr/inra/oresing/rest/Fixtures.java +++ b/src/test/java/fr/inra/oresing/rest/Fixtures.java @@ -475,7 +475,7 @@ public class Fixtures { } public static String getSWCRepositoryResourceName() { - return String.format("/data/repeatedcolumns/SWC_truncated.csv"); + return "/data/repeatedcolumns/SWC_truncated.csv"; } public static Map<String, List<String>> getRepeatedColumnsDataErrorsStringReplace() { diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index e7a946280b54574ba5e195fcb2727775689be10e..98a25f93b4217b110e17b41a47d486cec7c73fb5 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -1313,22 +1313,22 @@ public class OreSiResourcesTest { mockMvc.perform(get("/api/v1/applications/monsore/additionalFiles/fichiers") .cookie(authCookie)) - .andExpect(jsonPath("$.users[*].label", Matchers.contains("_public_", + .andExpect(jsonPath("$.users[*].label", contains("_public_", "lambda", "poussin", "withrigths"))) - .andExpect(jsonPath("$.additionalFileName", Matchers.is("fichiers"))) - .andExpect(jsonPath("$.additionalBinaryFiles[0].additionalBinaryFileForm.age", Matchers.is("10"))); + .andExpect(jsonPath("$.additionalFileName", is("fichiers"))) + .andExpect(jsonPath("$.additionalBinaryFiles[0].additionalBinaryFileForm.age", is("10"))); mockMvc.perform(get("/api/v1/applications/monsore/additionalFiles/fichiers") .cookie(withRigthsCookie)) .andExpect(status().is2xxSuccessful()) - .andExpect(jsonPath("$.users[*].label", Matchers.contains("_public_", + .andExpect(jsonPath("$.users[*].label", contains("_public_", "lambda", "poussin", "withrigths"))) - .andExpect(jsonPath("$.additionalFileName", Matchers.is("fichiers"))) - .andExpect(jsonPath("$.additionalBinaryFiles[0].additionalBinaryFileForm.age", Matchers.is("10"))); + .andExpect(jsonPath("$.additionalFileName", is("fichiers"))) + .andExpect(jsonPath("$.additionalBinaryFiles[0].additionalBinaryFileForm.age", is("10"))); final String error = Objects.requireNonNull(mockMvc.perform(get("/api/v1/applications/monsore/additionalFiles/fichiers") .cookie(lambdaCookie)) @@ -1486,7 +1486,7 @@ public class OreSiResourcesTest { SiOreAuthorizationRequestException cause = (SiOreAuthorizationRequestException) servletException.getCause(); AuthorizationRequestException requestException = cause.getException(); Assertions.assertEquals(AuthorizationRequestException.MISSING_REQUIRED_AUTHORIZATION, requestException); - Assertions.assertTrue(((Map<String, List<Ltree>>) cause.getParams().get("missingRequiredAuthorizations")).get("projet").getFirst().getSql().equals("projet_manche")); + Assertions.assertEquals("projet_manche", ((Map<String, List<Ltree>>) cause.getParams().get("missingRequiredAuthorizations")).get("projet").getFirst().getSql()); } String createRights = getJsonRightsforRestrictions( diff --git a/src/test/java/fr/inra/oresing/rest/model/authorization/CreateAuthorizationRequestTest.java b/src/test/java/fr/inra/oresing/rest/model/authorization/CreateAuthorizationRequestTest.java index 3d945775e2f99963f85681ae6d183beb611502fe..6be15e1d58d1b013e3e61ae3a713d48b57bb5985 100644 --- a/src/test/java/fr/inra/oresing/rest/model/authorization/CreateAuthorizationRequestTest.java +++ b/src/test/java/fr/inra/oresing/rest/model/authorization/CreateAuthorizationRequestTest.java @@ -1,5 +1,6 @@ package fr.inra.oresing.rest.model.authorization; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.io.Resources; import fr.inra.oresing.domain.OreSiAuthorization; @@ -15,8 +16,12 @@ import fr.inra.oresing.persistence.JsonRowMapper; import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; import fr.inra.oresing.rest.model.authorization.exception.AuthorizationRequestError; import fr.inra.oresing.rest.model.authorization.request.AuthorizationRequestBuilder; +import lombok.SneakyThrows; +import org.json.JSONException; import org.junit.jupiter.api.*; import org.mockito.Mockito; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; import java.io.IOException; import java.net.URL; @@ -154,38 +159,45 @@ class CreateAuthorizationRequestTest { errors ) .build(createAuthorizationRequest, dataRepositoryWithBuffer); - /*Assertions.assertEquals(""" + String expectedJson = """ { - "authorizationId" : "e7570009-35fb-489d-ad3b-5bb335e7c5d5", - "name" : "une submissionScope sur le référentiel monsore", - "description" : null, - "applicationId" : "41e8f1dd-4b3c-4bc7-9013-1309b4714d9d", - "userId" : [ "f7570009-38fb-489d-ad3b-5bb335e7c5d5" ], - "authorizationForAll" : { - "authorizationForAll" : { - "type_de_sites" : [ "extraction" ], - "sites" : [ "extraction" ] - } - }, - "authorizationWithRestriction" : { - "authorizationForScope" : { - "pem" : { - "operationTypes" : [ "extraction", "depot" ], - "authorizationScope" : { - "projet" : [ { - "sql" : "projet_atlantique" - }, { - "sql" : "projet_manche" - } ] - }, - "timeScope" : { - "range" : { - "empty" : true - } - } - } - } - } - }""", new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(authorizationRequest));*/ + "authorizationId" : "e7570009-35fb-489d-ad3b-5bb335e7c5d5", + "name" : "une submissionScope sur le référentiel monsore", + "description" : null, + "applicationId" : "41e8f1dd-4b3c-4bc7-9013-1309b4714d9d", + "userId" : [ "f7570009-38fb-489d-ad3b-5bb335e7c5d5" ], + "authorizationForAll" : { + "authorizationForAll" : { + "type_de_sites" : [ "extraction" ], + "sites" : [ "extraction" ] + } + }, + "authorizationWithRestriction" : { + "authorizationForScope" : { + "pem" : { + "operationTypes" : [ "depot", "extraction" ], + "authorizationScope" : { + "projet" : [ { + "sql" : "projet_atlantique" + }, { + "sql" : "projet_manche" + } ] + }, + "timeScope" : { + "range" : { + "empty" : true + } + } + } + } + } + }"""; + + String actualJson = new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(authorizationRequest); + try { + JSONAssert.assertEquals(expectedJson, actualJson, JSONCompareMode.LENIENT); + } catch (JSONException e) { + throw new RuntimeException(e); + } } } \ No newline at end of file diff --git a/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryAdvancedSearchTest.java b/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryAdvancedSearchTest.java index 6e95747412b1d256994634757c6207b2da662933..85b4ec431b00bf541e5346cc4391d72ce153b8ee 100644 --- a/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryAdvancedSearchTest.java +++ b/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryAdvancedSearchTest.java @@ -197,7 +197,7 @@ class DownloadDatasetQueryAdvancedSearchTest { } return true; }); - Assertions.assertTrue(test); + assertTrue(test); } else if (componentFilters.size() != 1) { fail("componentFilters must not be empty"); } diff --git a/src/test/resources/fr/inra/oresing/client/OpenAdomClient.groovy b/src/test/resources/fr/inra/oresing/client/OpenAdomClient.groovy index 5ec77536798c4f517415922e31f9df380f0f41b3..f5a53938f9de19d7a2bc44bc446336c664c31566 100644 --- a/src/test/resources/fr/inra/oresing/client/OpenAdomClient.groovy +++ b/src/test/resources/fr/inra/oresing/client/OpenAdomClient.groovy @@ -1,46 +1,46 @@ package fr.inra.oresing.client -import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.core.type.TypeReference import com.fasterxml.jackson.databind.ObjectMapper -import org.apache.commons.io.file.AccumulatorPathVisitor; -import org.apache.commons.io.file.Counters; -import org.apache.hc.client5.http.classic.methods.HttpPost; -import org.apache.hc.client5.http.cookie.BasicCookieStore; -import org.apache.hc.client5.http.entity.mime.FileBody; +import org.apache.commons.io.file.AccumulatorPathVisitor +import org.apache.commons.io.file.Counters +import org.apache.hc.client5.http.classic.methods.HttpPost +import org.apache.hc.client5.http.cookie.BasicCookieStore +import org.apache.hc.client5.http.entity.mime.FileBody import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder -import org.apache.hc.client5.http.impl.classic.HttpClients; -import org.apache.hc.core5.http.ClassicHttpRequest; -import org.apache.hc.core5.http.ClassicHttpResponse; -import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.io.HttpClientResponseHandler; -import org.apache.hc.core5.http.io.entity.EntityUtils; +import org.apache.hc.client5.http.impl.classic.HttpClients +import org.apache.hc.core5.http.ClassicHttpRequest +import org.apache.hc.core5.http.ClassicHttpResponse +import org.apache.hc.core5.http.HttpEntity +import org.apache.hc.core5.http.io.HttpClientResponseHandler +import org.apache.hc.core5.http.io.entity.EntityUtils import org.apache.hc.core5.http.io.support.ClassicRequestBuilder -import java.nio.file.Files; +import java.nio.file.Files import java.nio.file.Path -import java.util.stream.Collectors; +import java.util.stream.Collectors @Grab(group = "commons-io", module = "commons-io", version = "2.8.0") @Grab(group = "org.apache.httpcomponents.client5", module = "httpclient5", version = "5.2.1") -ClientConfiguration clientConfiguration = readConfiguration(); +ClientConfiguration clientConfiguration = readConfiguration() -String applicationName = clientConfiguration.applicationName(); -URI instanceUrl = clientConfiguration.instanceUrl(); +String applicationName = clientConfiguration.applicationName() +URI instanceUrl = clientConfiguration.instanceUrl() -String login; -String password; -boolean interactive = true; -Scanner scanner = new Scanner(System.in); +String login +String password +boolean interactive = true +Scanner scanner = new Scanner(System.in) if (interactive) { - System.out.println("Veuillez saisir les informations de connexion à " + instanceUrl); - System.out.print("identifiant : "); - login = scanner.nextLine(); - System.out.print("mot de passe : "); - password = scanner.nextLine(); + System.out.println("Veuillez saisir les informations de connexion à " + instanceUrl) + System.out.print("identifiant : ") + login = scanner.nextLine() + System.out.print("mot de passe : ") + password = scanner.nextLine() } else { - login = "poussin"; - password = "xxxx"; + login = "poussin" + password = "xxxx" } BasicCookieStore cookieStore = new BasicCookieStore() @@ -120,89 +120,89 @@ HttpClients.custom() } ClientConfiguration readConfiguration() throws IOException { - File configurationFile = new File("openAdom-client-configuration.json"); + File configurationFile = new File("openAdom-client-configuration.json") ClientConfiguration clientConfiguration = new ObjectMapper() .readValue( configurationFile, ClientConfiguration.class - ); - return clientConfiguration; + ) + return clientConfiguration } List<Command> newCommands(List<String> data/*, List<String> dataTypes*/) { List<Command> dataCommands = data.stream() .flatMap(refType -> getDataCommands(refType).stream()) - .toList(); + .toList() - List<Command> commands = new LinkedList<>(); - commands.addAll(dataCommands); + List<Command> commands = new LinkedList<>() + commands.addAll(dataCommands) - return commands; + return commands } List<Command> getUploadDataCommands(String dataType) { - Path dataDirectoryForDataType = Path.of(dataType); - List<Command> commands; + Path dataDirectoryForDataType = Path.of(dataType) + List<Command> commands if (dataDirectoryForDataType.toFile().exists()) { if (dataDirectoryForDataType.toFile().isDirectory()) { - SortedSet<Path> csvFilePaths = findCsvFilePathsInDirectory(dataDirectoryForDataType); + SortedSet<Path> csvFilePaths = findCsvFilePathsInDirectory(dataDirectoryForDataType) commands = csvFilePaths.stream() .map(Path::toFile) .map(dataFile -> newUploadDataCommand(dataType, dataFile)) - .toList(); + .toList() } else { - logError("le répertoire " + dataDirectoryForDataType + " est un fichier mais il devrait être un dossier. On l’ignore."); - commands = Collections.emptyList(); + logError("le répertoire " + dataDirectoryForDataType + " est un fichier mais il devrait être un dossier. On l’ignore.") + commands = Collections.emptyList() } } else { - log("le répertoire " + dataDirectoryForDataType + " n’existe pas. Pas de données à importer pour " + dataType); - commands = Collections.emptyList(); + log("le répertoire " + dataDirectoryForDataType + " n’existe pas. Pas de données à importer pour " + dataType) + commands = Collections.emptyList() } - return commands; + return commands } List<Command> getDataCommands(String dataName) { - File dir = new File(dataName); - File[] csvFiles = dir.listFiles((dir1, name) -> name.endsWith(".csv")); - List<Command> commands = new LinkedList<>(); + File dir = new File(dataName) + File[] csvFiles = dir.listFiles((dir1, name) -> name.endsWith(".csv")) + List<Command> commands = new LinkedList<>() if (csvFiles == null) { - return List.of(); + return List.of() } Arrays.stream(csvFiles).forEach(refFile -> { if (refFile.exists()) { - Set<Path> csvFilePathsInDirectory; + Set<Path> csvFilePathsInDirectory if (refFile.isFile()) { - csvFilePathsInDirectory = Collections.singleton(refFile.toPath()); + csvFilePathsInDirectory = Collections.singleton(refFile.toPath()) } else if (refFile.isDirectory()) { - csvFilePathsInDirectory = findCsvFilePathsInDirectory(refFile.toPath()); + csvFilePathsInDirectory = findCsvFilePathsInDirectory(refFile.toPath()) } else { - throw new IllegalStateException("ne comprend pas de quel type est " + refFile); + throw new IllegalStateException("ne comprend pas de quel type est " + refFile) } commands.addAll(csvFilePathsInDirectory.stream() .map(path -> newUploadDataCommand(dataName, path.toFile())) .toList() - ); + ) } else { - logError("le fichier %s n’existe pas, on ignore l’import du référentiel %s".formatted(refFile, dataName)); - commands.addAll(Collections.emptyList()); + logError("le fichier %s n’existe pas, on ignore l’import du référentiel %s".formatted(refFile, dataName)) + commands.addAll(Collections.emptyList()) } - }); - return commands; + }) + return commands } Command newUploadDataCommand(String dataName, File dataFile) { return new Command() { @Override - public String getDescription() { - return "Téléversement de %s pour alimenter le référentiel %s".formatted(dataFile, dataName); + String getDescription() { + return "Téléversement de %s pour alimenter le référentiel %s".formatted(dataFile, dataName) } @Override - public ClassicHttpRequest getRequest(UriFactory uriFactory) { - HttpPost httpPost = new HttpPost(uriFactory.forUploadingData(dataName)); - FileBody refFileBody = new FileBody(dataFile); + ClassicHttpRequest getRequest(UriFactory uriFactory) { + HttpPost httpPost = new HttpPost(uriFactory.forUploadingData(dataName)) + FileBody refFileBody = new FileBody(dataFile) HttpEntity reqEntity = MultipartEntityBuilder.create() .addPart("file", refFileBody) .addTextBody("params", """ @@ -211,26 +211,26 @@ Command newUploadDataCommand(String dataName, File dataFile) { "topublish":true } """) - .build(); - httpPost.setEntity(reqEntity); - return httpPost; + .build() + httpPost.setEntity(reqEntity) + return httpPost } List<Map<String, Object>> parseJsonInResponseBodyForErrorMessagesAndParams(ClassicHttpResponse response) { try (InputStream inputStream = response.getEntity().getContent()) { List<Map<String, Object>> responseBody = new ObjectMapper().readValue(inputStream, new TypeReference<List<Map<String, Object>>>() { - }); + }) return responseBody.stream() .map(record -> { - Map<String, Object> resultMap = new HashMap<>(); - resultMap.put("message", ((Map<String, Object>) record.get("validationCheckResult")).get("message").toString()); - resultMap.put("messageParams", (Map<String, Object>) ((Map<String, Object>) record.get("validationCheckResult")).get("messageParams")); - return resultMap; + Map<String, Object> resultMap = new HashMap<>() + resultMap.put("message", ((Map<String, Object>) record.get("validationCheckResult")).get("message").toString()) + resultMap.put("messageParams", (Map<String, Object>) ((Map<String, Object>) record.get("validationCheckResult")).get("messageParams")) + return resultMap }) - .collect(Collectors.toList()); + .collect(Collectors.toList()) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } @@ -258,40 +258,40 @@ Command newUploadDataCommand(String dataName, File dataFile) { } null } - }; + } } SortedSet<Path> findCsvFilePathsInDirectory(Path directory) { try { - AccumulatorPathVisitor accumulatorPathVisitor = new AccumulatorPathVisitor(Counters.longPathCounters()); - Files.walkFileTree(directory, accumulatorPathVisitor); + AccumulatorPathVisitor accumulatorPathVisitor = new AccumulatorPathVisitor(Counters.longPathCounters()) + Files.walkFileTree(directory, accumulatorPathVisitor) SortedSet<Path> csvFilePathsInDirectory = accumulatorPathVisitor.getFileList().stream() .filter(path -> path.getFileName().toString().endsWith(".csv")) - .collect(Collectors.toCollection(TreeSet::new)); - return Collections.unmodifiableSortedSet(csvFilePathsInDirectory); + .collect(Collectors.toCollection(TreeSet::new)) + return Collections.unmodifiableSortedSet(csvFilePathsInDirectory) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } void fail(String message) { - logError(message); - System.exit(1); + logError(message) + System.exit(1) } static void logError(String string) { - System.err.println(string); + System.err.println(string) } static void log(String message) { - System.out.println(message); + System.out.println(message) } <T> T parseJsonInResponseBody(ClassicHttpResponse response, TypeReference<T> valueTypeRef) { try (InputStream inputStream = response.getEntity().getContent()) { - return new ObjectMapper().readValue(inputStream, valueTypeRef); + return new ObjectMapper().readValue(inputStream, valueTypeRef) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } @@ -329,19 +329,19 @@ record UriFactory(URI instanceUrl, String applicationName) { URI newUri(String endpoint) { try { - return new URI("%s/api/v1/%s".formatted(instanceUrl, endpoint)); + return new URI("%s/api/v1/%s".formatted(instanceUrl, endpoint)) } catch (URISyntaxException e) { - throw new RuntimeException("ne devrait pas arriver", e); + throw new RuntimeException("ne devrait pas arriver", e) } } - public URI forLogin() { - return newUri("login"); + URI forLogin() { + return newUri("login") } - public URI forUploadingData(String dataType) { - String endpoint = "applications/%s/data/%s".formatted(applicationName, dataType); - return newUri(endpoint); + URI forUploadingData(String dataType) { + String endpoint = "applications/%s/data/%s".formatted(applicationName, dataType) + return newUri(endpoint) } /*public URI forApplicationReferenceTypes(String applicationName) { @@ -349,9 +349,9 @@ record UriFactory(URI instanceUrl, String applicationName) { return newUri(endpoint); }*/ - public URI forApplicationDataTypes(String applicationName) { - String endpoint = "applications/%s/data".formatted(applicationName); - return newUri(endpoint); + URI forApplicationDataTypes(String applicationName) { + String endpoint = "applications/%s/data".formatted(applicationName) + return newUri(endpoint) } } diff --git a/src/test/resources/monsore-upload-bundle/OpenAdomClient.groovy b/src/test/resources/monsore-upload-bundle/OpenAdomClient.groovy index 5ec77536798c4f517415922e31f9df380f0f41b3..f5a53938f9de19d7a2bc44bc446336c664c31566 100644 --- a/src/test/resources/monsore-upload-bundle/OpenAdomClient.groovy +++ b/src/test/resources/monsore-upload-bundle/OpenAdomClient.groovy @@ -1,46 +1,46 @@ package fr.inra.oresing.client -import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.core.type.TypeReference import com.fasterxml.jackson.databind.ObjectMapper -import org.apache.commons.io.file.AccumulatorPathVisitor; -import org.apache.commons.io.file.Counters; -import org.apache.hc.client5.http.classic.methods.HttpPost; -import org.apache.hc.client5.http.cookie.BasicCookieStore; -import org.apache.hc.client5.http.entity.mime.FileBody; +import org.apache.commons.io.file.AccumulatorPathVisitor +import org.apache.commons.io.file.Counters +import org.apache.hc.client5.http.classic.methods.HttpPost +import org.apache.hc.client5.http.cookie.BasicCookieStore +import org.apache.hc.client5.http.entity.mime.FileBody import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder -import org.apache.hc.client5.http.impl.classic.HttpClients; -import org.apache.hc.core5.http.ClassicHttpRequest; -import org.apache.hc.core5.http.ClassicHttpResponse; -import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.io.HttpClientResponseHandler; -import org.apache.hc.core5.http.io.entity.EntityUtils; +import org.apache.hc.client5.http.impl.classic.HttpClients +import org.apache.hc.core5.http.ClassicHttpRequest +import org.apache.hc.core5.http.ClassicHttpResponse +import org.apache.hc.core5.http.HttpEntity +import org.apache.hc.core5.http.io.HttpClientResponseHandler +import org.apache.hc.core5.http.io.entity.EntityUtils import org.apache.hc.core5.http.io.support.ClassicRequestBuilder -import java.nio.file.Files; +import java.nio.file.Files import java.nio.file.Path -import java.util.stream.Collectors; +import java.util.stream.Collectors @Grab(group = "commons-io", module = "commons-io", version = "2.8.0") @Grab(group = "org.apache.httpcomponents.client5", module = "httpclient5", version = "5.2.1") -ClientConfiguration clientConfiguration = readConfiguration(); +ClientConfiguration clientConfiguration = readConfiguration() -String applicationName = clientConfiguration.applicationName(); -URI instanceUrl = clientConfiguration.instanceUrl(); +String applicationName = clientConfiguration.applicationName() +URI instanceUrl = clientConfiguration.instanceUrl() -String login; -String password; -boolean interactive = true; -Scanner scanner = new Scanner(System.in); +String login +String password +boolean interactive = true +Scanner scanner = new Scanner(System.in) if (interactive) { - System.out.println("Veuillez saisir les informations de connexion à " + instanceUrl); - System.out.print("identifiant : "); - login = scanner.nextLine(); - System.out.print("mot de passe : "); - password = scanner.nextLine(); + System.out.println("Veuillez saisir les informations de connexion à " + instanceUrl) + System.out.print("identifiant : ") + login = scanner.nextLine() + System.out.print("mot de passe : ") + password = scanner.nextLine() } else { - login = "poussin"; - password = "xxxx"; + login = "poussin" + password = "xxxx" } BasicCookieStore cookieStore = new BasicCookieStore() @@ -120,89 +120,89 @@ HttpClients.custom() } ClientConfiguration readConfiguration() throws IOException { - File configurationFile = new File("openAdom-client-configuration.json"); + File configurationFile = new File("openAdom-client-configuration.json") ClientConfiguration clientConfiguration = new ObjectMapper() .readValue( configurationFile, ClientConfiguration.class - ); - return clientConfiguration; + ) + return clientConfiguration } List<Command> newCommands(List<String> data/*, List<String> dataTypes*/) { List<Command> dataCommands = data.stream() .flatMap(refType -> getDataCommands(refType).stream()) - .toList(); + .toList() - List<Command> commands = new LinkedList<>(); - commands.addAll(dataCommands); + List<Command> commands = new LinkedList<>() + commands.addAll(dataCommands) - return commands; + return commands } List<Command> getUploadDataCommands(String dataType) { - Path dataDirectoryForDataType = Path.of(dataType); - List<Command> commands; + Path dataDirectoryForDataType = Path.of(dataType) + List<Command> commands if (dataDirectoryForDataType.toFile().exists()) { if (dataDirectoryForDataType.toFile().isDirectory()) { - SortedSet<Path> csvFilePaths = findCsvFilePathsInDirectory(dataDirectoryForDataType); + SortedSet<Path> csvFilePaths = findCsvFilePathsInDirectory(dataDirectoryForDataType) commands = csvFilePaths.stream() .map(Path::toFile) .map(dataFile -> newUploadDataCommand(dataType, dataFile)) - .toList(); + .toList() } else { - logError("le répertoire " + dataDirectoryForDataType + " est un fichier mais il devrait être un dossier. On l’ignore."); - commands = Collections.emptyList(); + logError("le répertoire " + dataDirectoryForDataType + " est un fichier mais il devrait être un dossier. On l’ignore.") + commands = Collections.emptyList() } } else { - log("le répertoire " + dataDirectoryForDataType + " n’existe pas. Pas de données à importer pour " + dataType); - commands = Collections.emptyList(); + log("le répertoire " + dataDirectoryForDataType + " n’existe pas. Pas de données à importer pour " + dataType) + commands = Collections.emptyList() } - return commands; + return commands } List<Command> getDataCommands(String dataName) { - File dir = new File(dataName); - File[] csvFiles = dir.listFiles((dir1, name) -> name.endsWith(".csv")); - List<Command> commands = new LinkedList<>(); + File dir = new File(dataName) + File[] csvFiles = dir.listFiles((dir1, name) -> name.endsWith(".csv")) + List<Command> commands = new LinkedList<>() if (csvFiles == null) { - return List.of(); + return List.of() } Arrays.stream(csvFiles).forEach(refFile -> { if (refFile.exists()) { - Set<Path> csvFilePathsInDirectory; + Set<Path> csvFilePathsInDirectory if (refFile.isFile()) { - csvFilePathsInDirectory = Collections.singleton(refFile.toPath()); + csvFilePathsInDirectory = Collections.singleton(refFile.toPath()) } else if (refFile.isDirectory()) { - csvFilePathsInDirectory = findCsvFilePathsInDirectory(refFile.toPath()); + csvFilePathsInDirectory = findCsvFilePathsInDirectory(refFile.toPath()) } else { - throw new IllegalStateException("ne comprend pas de quel type est " + refFile); + throw new IllegalStateException("ne comprend pas de quel type est " + refFile) } commands.addAll(csvFilePathsInDirectory.stream() .map(path -> newUploadDataCommand(dataName, path.toFile())) .toList() - ); + ) } else { - logError("le fichier %s n’existe pas, on ignore l’import du référentiel %s".formatted(refFile, dataName)); - commands.addAll(Collections.emptyList()); + logError("le fichier %s n’existe pas, on ignore l’import du référentiel %s".formatted(refFile, dataName)) + commands.addAll(Collections.emptyList()) } - }); - return commands; + }) + return commands } Command newUploadDataCommand(String dataName, File dataFile) { return new Command() { @Override - public String getDescription() { - return "Téléversement de %s pour alimenter le référentiel %s".formatted(dataFile, dataName); + String getDescription() { + return "Téléversement de %s pour alimenter le référentiel %s".formatted(dataFile, dataName) } @Override - public ClassicHttpRequest getRequest(UriFactory uriFactory) { - HttpPost httpPost = new HttpPost(uriFactory.forUploadingData(dataName)); - FileBody refFileBody = new FileBody(dataFile); + ClassicHttpRequest getRequest(UriFactory uriFactory) { + HttpPost httpPost = new HttpPost(uriFactory.forUploadingData(dataName)) + FileBody refFileBody = new FileBody(dataFile) HttpEntity reqEntity = MultipartEntityBuilder.create() .addPart("file", refFileBody) .addTextBody("params", """ @@ -211,26 +211,26 @@ Command newUploadDataCommand(String dataName, File dataFile) { "topublish":true } """) - .build(); - httpPost.setEntity(reqEntity); - return httpPost; + .build() + httpPost.setEntity(reqEntity) + return httpPost } List<Map<String, Object>> parseJsonInResponseBodyForErrorMessagesAndParams(ClassicHttpResponse response) { try (InputStream inputStream = response.getEntity().getContent()) { List<Map<String, Object>> responseBody = new ObjectMapper().readValue(inputStream, new TypeReference<List<Map<String, Object>>>() { - }); + }) return responseBody.stream() .map(record -> { - Map<String, Object> resultMap = new HashMap<>(); - resultMap.put("message", ((Map<String, Object>) record.get("validationCheckResult")).get("message").toString()); - resultMap.put("messageParams", (Map<String, Object>) ((Map<String, Object>) record.get("validationCheckResult")).get("messageParams")); - return resultMap; + Map<String, Object> resultMap = new HashMap<>() + resultMap.put("message", ((Map<String, Object>) record.get("validationCheckResult")).get("message").toString()) + resultMap.put("messageParams", (Map<String, Object>) ((Map<String, Object>) record.get("validationCheckResult")).get("messageParams")) + return resultMap }) - .collect(Collectors.toList()); + .collect(Collectors.toList()) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } @@ -258,40 +258,40 @@ Command newUploadDataCommand(String dataName, File dataFile) { } null } - }; + } } SortedSet<Path> findCsvFilePathsInDirectory(Path directory) { try { - AccumulatorPathVisitor accumulatorPathVisitor = new AccumulatorPathVisitor(Counters.longPathCounters()); - Files.walkFileTree(directory, accumulatorPathVisitor); + AccumulatorPathVisitor accumulatorPathVisitor = new AccumulatorPathVisitor(Counters.longPathCounters()) + Files.walkFileTree(directory, accumulatorPathVisitor) SortedSet<Path> csvFilePathsInDirectory = accumulatorPathVisitor.getFileList().stream() .filter(path -> path.getFileName().toString().endsWith(".csv")) - .collect(Collectors.toCollection(TreeSet::new)); - return Collections.unmodifiableSortedSet(csvFilePathsInDirectory); + .collect(Collectors.toCollection(TreeSet::new)) + return Collections.unmodifiableSortedSet(csvFilePathsInDirectory) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } void fail(String message) { - logError(message); - System.exit(1); + logError(message) + System.exit(1) } static void logError(String string) { - System.err.println(string); + System.err.println(string) } static void log(String message) { - System.out.println(message); + System.out.println(message) } <T> T parseJsonInResponseBody(ClassicHttpResponse response, TypeReference<T> valueTypeRef) { try (InputStream inputStream = response.getEntity().getContent()) { - return new ObjectMapper().readValue(inputStream, valueTypeRef); + return new ObjectMapper().readValue(inputStream, valueTypeRef) } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException(e) } } @@ -329,19 +329,19 @@ record UriFactory(URI instanceUrl, String applicationName) { URI newUri(String endpoint) { try { - return new URI("%s/api/v1/%s".formatted(instanceUrl, endpoint)); + return new URI("%s/api/v1/%s".formatted(instanceUrl, endpoint)) } catch (URISyntaxException e) { - throw new RuntimeException("ne devrait pas arriver", e); + throw new RuntimeException("ne devrait pas arriver", e) } } - public URI forLogin() { - return newUri("login"); + URI forLogin() { + return newUri("login") } - public URI forUploadingData(String dataType) { - String endpoint = "applications/%s/data/%s".formatted(applicationName, dataType); - return newUri(endpoint); + URI forUploadingData(String dataType) { + String endpoint = "applications/%s/data/%s".formatted(applicationName, dataType) + return newUri(endpoint) } /*public URI forApplicationReferenceTypes(String applicationName) { @@ -349,9 +349,9 @@ record UriFactory(URI instanceUrl, String applicationName) { return newUri(endpoint); }*/ - public URI forApplicationDataTypes(String applicationName) { - String endpoint = "applications/%s/data".formatted(applicationName); - return newUri(endpoint); + URI forApplicationDataTypes(String applicationName) { + String endpoint = "applications/%s/data".formatted(applicationName) + return newUri(endpoint) } } diff --git a/ui/cypress/fixtures/applications/errors/errors.json b/ui/cypress/fixtures/applications/errors/errors.json index 0b6f8b4cb4b39a6acaf12fe5a7fe62c93310d543..97e31811dfc1c577a3d479d5b641984f0670a5da 100644 --- a/ui/cypress/fixtures/applications/errors/errors.json +++ b/ui/cypress/fixtures/applications/errors/errors.json @@ -1 +1 @@ -{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2025-01-24T17:37:28.702163034","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2025-01-24T17:39:05.860372067","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2025-01-24T17:38:08.454892685","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2025-01-24T17:37:15.32848605","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2025-01-24T17:37:17.54751352","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-24T17:37:05.744998333","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-24T17:37:05.746032832","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2025-01-24T17:38:44.669771013","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2025-01-24T17:39:18.790011654","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-24T17:37:12.991994698","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-24T17:37:12.992621666","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"submissionReference":"projet","componentReference":"proj","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2025-01-24T17:39:51.516424094","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:40:01.636497236","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:38:22.029359804","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_application","OA_version","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2025-01-24T17:38:12.859469485","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2025-01-24T17:37:24.161963506","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:39:28.781925036","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2025-01-24T17:39:25.081346451","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-24T17:38:17.182456851","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2025-01-24T17:37:08.059722906","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2025-01-24T17:38:31.492135817","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2025-01-24T17:38:06.342625501","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2025-01-24T17:37:49.764952482","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-24T17:38:33.606118512","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-24T17:40:04.011524172","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2025-01-24T17:37:51.948444866","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2025-01-24T17:37:19.835435388","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-24T17:38:10.714136076","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-24T17:38:10.715686622","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-24T17:38:10.716031371","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-24T17:39:43.180077561","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-24T17:39:43.180437648","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-24T17:39:43.180523534","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-24T17:39:43.180695065","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-24T17:39:43.180755789","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-24T17:39:43.181031274","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-24T17:39:43.181060662","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-24T17:39:43.181376875","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2025-01-24T17:38:04.165888141","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2025-01-24T17:37:58.992562876","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2025-01-24T17:37:58.992785443","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2025-01-24T17:38:29.162562195","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeaderInPatternComponent","params":{"duplicatedPathes":["OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date","qualifierName":"tel_date","data":"pem","patternComponent":"tel_value"}},"time":"2025-01-24T17:38:49.002642876","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-24T17:38:24.273685496","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2025-01-24T17:37:35.718466121","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:38:57.8438773","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2025-01-24T17:37:45.172489408","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2025-01-24T17:37:30.902756258","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-24T17:39:01.369382802","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2025-01-24T17:37:47.631654457","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2025-01-24T17:37:21.979214229","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2025-01-24T17:39:57.007609274","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2025-01-24T17:39:57.008529372","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2025-01-24T17:39:57.008834509","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:39:37.308899987","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2025-01-24T17:37:40.230953173","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-24T17:39:45.775459505","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-24T17:39:15.456531441","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:15.456843553","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:15.458182103","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:15.458870712","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:15.460145474","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:15.46208478","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:15.462487433","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:38:53.256486729","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2025-01-24T17:38:55.492018498","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2025-01-24T17:37:56.732929531","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2025-01-24T17:37:37.940372306","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2025-01-24T17:39:21.629441491","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2025-01-24T17:38:51.127358032","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:38:19.645194776","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:37:10.644029892","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:38:40.155189043","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2025-01-24T17:37:54.307249036","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2025-01-24T17:37:26.403976354","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-24T17:38:46.891735061","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2025-01-24T17:38:01.689185428","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2025-01-24T17:38:14.987497805","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedImportHeader":["zet_nom_key","zet_chemin_parent"],"path":"OA_data > sites","duplicatedHeader":"zet_chemin_parent","data":"sites"}},"time":"2025-01-24T17:39:09.875948166","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","ccp","luy","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","bg","rw","kea","bm","bn","bo","sa","twq","br","sc","bs","sd","xog","se","sg","si","seh","sk","sl","sn","so","sq","ca","sr","ses","mzn","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","tg","cv","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","dz","uk","bez","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","khq","shi","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","zgh","ga","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","gsw","hr","agq","kkj","hu","yi","hy","yo","ia","id","ig","naq","vai","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","ln","fur","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-24T17:39:12.634941038","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2025-01-24T17:39:34.314921366","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2025-01-24T17:39:31.733687866","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2025-01-24T17:38:42.346340784","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2025-01-24T17:39:48.646323477","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2025-01-24T17:39:59.337002375","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2025-01-24T17:38:37.986231043","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-24T17:38:35.722885901","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2025-01-24T17:38:26.769197066","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-24T17:39:54.463304666","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-24T17:39:40.350177911","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-24T17:39:40.350525524","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:40.350675715","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-24T17:39:40.351301788","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2025-01-24T17:39:40.351726685","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:40.352136716","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2025-01-24T17:39:40.352452213","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2025-01-24T17:39:40.353156439","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2025-01-24T17:39:40.353320537","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-24T17:39:40.353668012","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-24T17:39:40.354345239","type":"REACTIVE_ERROR"}]} \ No newline at end of file +{"testUnknownReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2025-01-29T21:14:08.450645346","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"tr_type_de_sites"}},"time":"2025-01-29T21:19:29.576692956","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInComputedComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2025-01-29T21:15:41.4818617","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_tags","notExpectedDomainTags":["contextt"]}},"time":"2025-01-29T21:21:04.945665277","type":"REACTIVE_ERROR"}],"testUnknownReferenceNameForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2025-01-29T21:14:46.612216039","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference","referenceName":"type_de_site"}},"time":"2025-01-29T21:20:10.58636336","type":"REACTIVE_ERROR"}],"testmissingComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2025-01-29T21:13:55.293093341","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_component"}},"time":"2025-01-29T21:19:14.964666386","type":"REACTIVE_ERROR"}],"testMissingOrBadTypeVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2025-01-29T21:13:57.55613731","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"deux","path":"OA_application"}},"time":"2025-01-29T21:19:17.123236266","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForComputation":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:13:45.927122563","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:13:45.928049669","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:19:06.048677794","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:19:06.049124403","type":"REACTIVE_ERROR"}],"testmissingRequiredValueInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2025-01-29T21:15:22.816180815","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2025-01-29T21:20:46.632471194","type":"REACTIVE_ERROR"}],"testMissingNameApplication":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2025-01-29T21:15:50.465364686","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_application > OA_name"}},"time":"2025-01-29T21:21:13.781694086","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValue":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:13:52.892028636","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:13:52.892499819","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"submissionReference":"projet","componentReference":"proj","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2025-01-29T21:16:15.113949502","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:19:12.694163944","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:19:12.694575853","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidComponentReferenceForSubmissionScopeReference","params":{"submissionReference":"projet","componentReference":"proj","path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2"}},"time":"2025-01-29T21:21:42.384662864","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18ndisplay":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:16:24.226799771","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_i18nDisplayPattern > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:21:55.33333458","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:14:59.813116665","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:20:24.05355566","type":"REACTIVE_ERROR"}],"testUnexpectedSections":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_version","OA_application","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2025-01-29T21:14:51.012967612","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["OA_application","OA_version","OA_data","OA_additionalFiles","OA_rightsRequest","OA_tags"],"path":"OA_version > OA_application > OA_data > OA_unexpectedTag > OA_rightsRequest > OA_tags","unexpectedSections":["OA_unexpectedTag"]}},"time":"2025-01-29T21:20:15.096318744","type":"REACTIVE_ERROR"}],"testBadEnumSectionTypeInSubmission":[{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2025-01-29T21:14:04.133613982","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badEnumSectionType","params":{"givenValue":"OA_VERSIONINGY","path":"OA_data > pem > OA_submission > OA_strategy","acceptedValues":["OA_INSERTION","OA_VERSIONING"]}},"time":"2025-01-29T21:19:24.810465579","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInRightsRequestDescription":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:15:57.20818154","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_rightsRequest > OA_i18n > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:21:20.363984108","type":"REACTIVE_ERROR"}],"testUnknownNameAuthorizationScopeInFileNameSubmission":[{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2025-01-29T21:15:54.992262572","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > site_bassine","unknownAuthorizationScope":"site_bassine","knownAuthorizationScope":["site_bassin","projet"]}},"time":"2025-01-29T21:21:18.263725137","type":"REACTIVE_ERROR"}],"testMissingMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-29T21:14:55.23941983","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_rowNumber"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-29T21:20:19.503064224","type":"REACTIVE_ERROR"}],"testInvalidMinMaxForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2025-01-29T21:13:48.212278556","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2025-01-29T21:15:09.208670287","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"12/31/1980","declaredMaxValue":"31/12/2024"}},"time":"2025-01-29T21:19:08.233444077","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidMinMaxForCheckerDate","params":{"declaredPattern":"dd/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params","declaredMinValue":"31/12/1980","declaredMaxValue":"12/31/2024"}},"time":"2025-01-29T21:20:33.36458508","type":"REACTIVE_ERROR"}],"testBadNameApplication":[{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2025-01-29T21:14:44.4543574","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unsupportedNameApplication","params":{"path":"OA_application","nameApplication":"F4KE app!cat°"}},"time":"2025-01-29T21:20:08.380873795","type":"REACTIVE_ERROR"}],"testBadVersionApplication":[{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2025-01-29T21:14:28.957325123","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badVersionPattern","params":{"givenVersion":"-2","path":"OA_application"}},"time":"2025-01-29T21:19:52.530165448","type":"REACTIVE_ERROR"}],"testUnknownColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-29T21:15:11.477985396","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-29T21:16:26.519724831","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-29T21:20:35.586552691","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-29T21:21:57.643706577","type":"REACTIVE_ERROR"}],"testBadBuilderVersion":[{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2025-01-29T21:14:31.10635099","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unsupportedOpenadomVersion","params":{"path":"OA_version","actualVersion":"2","expectedVersion":"2.0.1"}},"time":"2025-01-29T21:19:54.688283554","type":"REACTIVE_ERROR"}],"testMissingReferenceNameForChecker":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2025-01-29T21:13:59.745222965","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name","referenceName":"toto"}},"time":"2025-01-29T21:19:20.050149494","type":"REACTIVE_ERROR"}],"testBadNameTag":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-29T21:14:48.788585317","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-29T21:14:48.79018497","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-29T21:14:48.790560437","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > especes","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-29T21:20:12.907079216","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > type_de_sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-29T21:20:12.907815252","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-29T21:20:12.908042015","type":"REACTIVE_ERROR"}],"testReturnMultiplesErrors":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:16:08.347872321","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:16:08.348936947","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-29T21:16:08.349060792","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:16:08.349282708","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-29T21:16:08.349359138","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:16:08.349723384","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-29T21:16:08.349756749","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:16:08.350095062","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > site > OA_basicComponents > zet_chemin_parent > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:21:34.275281177","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:21:34.275721925","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_basicComponents > chemin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-29T21:21:34.275754427","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_checker > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:21:34.275878798","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_computedComponents > site_bassin > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-29T21:21:34.275911867","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:21:34.276109255","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"sites"}},"time":"2025-01-29T21:21:34.27613684","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["site","especes","type_de_sites","projet","pem"],"path":"OA_data > pem > OA_validations > reference > OA_validations > OA_checker > OA_params > OA_reference > OA_name","referenceName":"sites"}},"time":"2025-01-29T21:21:34.276505613","type":"REACTIVE_ERROR"}],"testEmptyFile":[{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2025-01-29T21:14:42.24396467","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"emptyFile","params":{}},"time":"2025-01-29T21:20:06.271716802","type":"REACTIVE_ERROR"}],"testunknownComponentNameForAuthorization":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2025-01-29T21:14:37.87911384","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2025-01-29T21:14:37.879352739","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"proj","knownComponents":["site_bassin","site","tel_experimental_site","projet","espece","chemin"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 2 > OA_component"}},"time":"2025-01-29T21:20:01.733231293","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownNameReferenceScope","params":{"path":"OA_submission > OA_fileName > OA_referenceScopes > projet","unknownAuthorizationScope":"projet","knownAuthorizationScope":["site_bassin","proj"]}},"time":"2025-01-29T21:20:01.733340286","type":"REACTIVE_ERROR"}],"testMissingNameChecker":[{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2025-01-29T21:15:06.751962433","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2025-01-29T21:20:30.987505839","type":"REACTIVE_ERROR"}],"testduplicatedComponentInPatternComponent":[{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeaderInPatternComponent","params":{"duplicatedPathes":["OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date","qualifierName":"tel_date","data":"pem","patternComponent":"tel_value"}},"time":"2025-01-29T21:15:27.698684771","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeaderInPatternComponent","params":{"duplicatedPathes":["OA_data > pem > OA_patternComponents > tel_value > OA_componentQualifiers > tel_date","OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date"],"path":"OA_data > pem > OA_patternComponents > tel_value > OA_componentAdjacents > tel_date","qualifierName":"tel_date","data":"pem","patternComponent":"tel_value"}},"time":"2025-01-29T21:20:51.132693394","type":"REACTIVE_ERROR"}],"testMissingComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-29T21:15:02.502418898","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-29T21:20:26.32834182","type":"REACTIVE_ERROR"}],"testInvalidPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2025-01-29T21:14:15.009803147","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidPatternForCheckerDate","params":{"badPattern":"bb/MM/yyyy","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2025-01-29T21:19:36.359232178","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopes":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:15:36.749629393","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:21:00.541104378","type":"REACTIVE_ERROR"}],"testunknownComponentInTimeScopeInSubmission":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2025-01-29T21:14:24.275005752","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"dates","knownComponents":["date"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_timeScope > OA_component"}},"time":"2025-01-29T21:19:46.933841046","type":"REACTIVE_ERROR"}],"testMissingPatternForCheckerDate":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2025-01-29T21:14:10.660584731","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params > OA_pattern"}},"time":"2025-01-29T21:19:31.774215608","type":"REACTIVE_ERROR"}],"testUnexpectedReferencesForDefaultValueInConstantComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:15:39.254409042","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceName","params":{"allDataNames":["especes","type_de_sites","projet","pem","sites"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_defaultValue > OA_references","referenceName":"site"}},"time":"2025-01-29T21:21:02.755057241","type":"REACTIVE_ERROR"}],"testSuperieurImportHeaderRowNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2025-01-29T21:14:26.527504516","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badConstantImportHeaderRowNumber","params":{"givenRowNumber":8,"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber","firstRowLine":7}},"time":"2025-01-29T21:19:50.247236863","type":"REACTIVE_ERROR"}],"testNegativeImportHeaderRowNumberInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2025-01-29T21:14:01.936422403","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderRowNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_rowNumber"}},"time":"2025-01-29T21:19:22.647058939","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInData":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2025-01-29T21:16:19.738442115","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2025-01-29T21:16:19.74057211","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2025-01-29T21:16:19.741056243","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > especes","notExpectedDomainTags":["contxet"]}},"time":"2025-01-29T21:21:49.798153447","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["contxet"]}},"time":"2025-01-29T21:21:49.798816371","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > sites","notExpectedDomainTags":["contxet"]}},"time":"2025-01-29T21:21:49.799006473","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:16:03.854997088","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:21:28.110748162","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInTags":[{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2025-01-29T21:14:19.42809635","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unsuportedI18nKeyLanguage","params":{"path":"OA_tags > test"}},"time":"2025-01-29T21:19:41.25762544","type":"REACTIVE_ERROR"}],"testNegativeColumnNumberToFirstRowLineInConstantComponents":[{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-29T21:16:10.60410441","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"negativeConstantImportHeaderColumnNumber","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_importHeaderTarget > OA_columnNumber"}},"time":"2025-01-29T21:21:37.148250076","type":"REACTIVE_ERROR"}],"testUnExpectedReservedTagPatternForDomainTag":[{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-29T21:15:48.282031033","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:15:48.282161549","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:15:48.282884107","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:15:48.283204789","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:15:48.283631174","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:15:48.284248879","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:15:48.284423042","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["HiddenTag[tagDefinition=HIDDEN_TAG]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-29T21:21:11.44389891","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:11.443996621","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > projet","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:11.4444809","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:11.444704031","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:11.444902571","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:11.445210737","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test"],"path":"OA_data > pem","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:11.445299328","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataInConstantComponentsExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:15:32.296918462","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_exportHeader > OA_description > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:20:55.621666274","type":"REACTIVE_ERROR"}],"testMissingRequiredSections":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2025-01-29T21:15:34.51011059","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"","actualVersion":"2.0.1"}},"time":"2025-01-29T21:20:58.012602595","type":"REACTIVE_ERROR"}],"testMissingReferencesForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2025-01-29T21:14:35.704815619","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_component > OA_i18n"}},"time":"2025-01-29T21:19:59.393756867","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForChecker":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2025-01-29T21:14:17.205800155","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom > OA_checker > OA_params > OA_reference > OA_name"}},"time":"2025-01-29T21:19:38.993971106","type":"REACTIVE_ERROR"}],"testMissingAnyMandatorySectionsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2025-01-29T21:15:52.839362761","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingAnyMandatoriesSections","params":{"path":"OA_data > pem > OA_constantComponents > tel_experimental_site > OA_importHeaderTarget > OA_rowNumber","anyMandatorySections":["OA_columnName","OA_columnNumber"]}},"time":"2025-01-29T21:21:16.109595616","type":"REACTIVE_ERROR"}],"testMissingBuilderVersion":[{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2025-01-29T21:15:29.994528358","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingVersionApplication","params":{"path":"OA_version","expectedVersion":"2.0.1"}},"time":"2025-01-29T21:20:53.365973974","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInAuthorizationScopesExportheader":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:14:57.673679173","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 1 > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:20:21.817820684","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInDataExportheaderI18n":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:13:50.457477418","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > especes > OA_computedComponents > my_computed_column > OA_exportHeader > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:19:10.389081355","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInApplication":[{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:15:18.209369043","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_application > OA_i18n > OA_title > en > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:20:42.041662703","type":"REACTIVE_ERROR"}],"testUnknownCheckerName":[{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2025-01-29T21:14:33.254128337","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownCheckerName","params":{"path":"OA_data > sites > OA_basicComponents > tze_type_nom","checkerName":"reference","acceptedCheckerNames":["OA_reference","OA_float","OA_date","OA_groovyExpression","OA_boolean","OA_integer","OA_string"]}},"time":"2025-01-29T21:19:57.172884439","type":"REACTIVE_ERROR"}],"testUnknownReferenceColumnToLookForHeaderInDataDynamicComponents":[{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2025-01-29T21:14:06.237109875","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownReferenceColumnToLookForHeader","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_referenceComponentToLookForHeader","listColumnsNameReference":["tze_definition_en","tze_definition_fr","tze_nom_en","tze_nom_fr","tze_nom_key"],"columnNameReference":"nom_key","referenceName":"type_de_sites"}},"time":"2025-01-29T21:19:27.067672643","type":"REACTIVE_ERROR"}],"testBadNameTagInDynamicComponents":[{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-29T21:15:25.271568839","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badTagsPatterns","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","acceptedTagPatterns":["__HIDDEN__","__REFERENCE__","test","context","no-tag","__ORDER_(\\d*)__","__DATA__"]}},"time":"2025-01-29T21:20:48.865900371","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2025-01-29T21:14:40.214539053","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_reference"}},"time":"2025-01-29T21:20:04.112858695","type":"REACTIVE_ERROR"}],"testUnsuportedI18nKeyLanguageInValidation":[{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2025-01-29T21:14:53.135658635","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedImportHeader":["zet_nom_key","zet_chemin_parent"],"path":"OA_data > sites","duplicatedHeader":"zet_chemin_parent","data":"sites"}},"time":"2025-01-29T21:15:43.774468636","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:15:45.955977151","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2025-01-29T21:16:01.726215242","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicateKey","params":{"columnNumber":8,"lineNumber":248,"duplicateKeys":"sites"}},"time":"2025-01-29T21:20:17.320144478","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentHeader","params":{"duplicatedImportHeader":["zet_nom_key","zet_chemin_parent"],"path":"OA_data > sites","duplicatedHeader":"zet_chemin_parent","data":"sites"}},"time":"2025-01-29T21:21:07.094788238","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unexpectedSections","params":{"expectedSections":["sbp","ksh","nyn","ps","pt","luo","fil","mgh","luy","ccp","mgo","bas","raj","teo","qu","af","brx","ak","am","kde","ar","as","az","rm","rn","ro","ceb","ru","be","rw","bg","kea","bm","bn","bo","sa","twq","sc","br","xog","sd","bs","se","sg","si","seh","sk","sl","sn","so","ca","sq","sr","mzn","ses","ce","su","sv","sw","ta","asa","yav","cs","te","yrl","cv","tg","th","ti","cy","tk","to","dyo","da","tr","tt","de","cgg","ast","nmg","bem","ug","kgp","uk","bez","dz","ur","dje","haw","ee","uz","tzm","el","nnh","en","eo","chr","es","et","eu","vi","shi","khq","hsb","fa","bgc","ff","fi","rwk","yue","fo","fr","fy","jgo","lkt","wo","wae","ga","zgh","pcm","gd","gl","bho","mni","gu","gv","xh","ha","ckb","he","hi","hr","agq","gsw","kkj","hu","yi","hy","yo","ia","id","ig","vai","naq","ii","frr","is","it","kln","zh","ja","zu","doi","jv","guz","tok","mai","smn","ka","sms","mas","ki","kk","kl","km","kn","ko","ks","ku","kw","ky","lb","ebu","lg","nds","jmc","fur","ln","lo","kok","lt","lu","lv","nus","vun","lag","dav","mg","pis","lrc","mi","mk","ml","mn","mr","ms","mt","my","mdf","dsb","nb","nd","ne","mua","nl","nn","no","rof","kab","oc","kam","mer","sah","om","ann","saq","or","os","sat","mfe","dua","pa","ksb","pl","ewo","ksf"],"path":"OA_data > pem > OA_validations > reference > OA_i18n > frrr","unexpectedSections":["frrr"]}},"time":"2025-01-29T21:21:09.278531849","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"duplicatedComponentName","params":{"duplicatedPathes":["OA_data > pem > OA_constantComponents > tel_experimental_site","OA_data > pem > OA_patternComponents > tel_experimental_site"],"path":"OA_data > pem > OA_patternComponents > tel_experimental_site","componentName":"tel_experimental_site"}},"time":"2025-01-29T21:21:24.765777866","type":"REACTIVE_ERROR"}],"testMissingAnyMandatoriesSectionsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2025-01-29T21:15:59.461824445","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingMandatoriesSections","params":{"missingMandatoriesSections":["OA_reference","OA_component"],"path":"OA_data > pem > OA_submission > OA_submissionScope > OA_referenceScopes > 0 > OA_exportHeader > OA_i18n"}},"time":"2025-01-29T21:21:22.569273958","type":"REACTIVE_ERROR"}],"testInvalidNaturalKey":[{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2025-01-29T21:15:20.493159566","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidNaturalKey","params":{"path":"OA_data > especes","invalidNaturalKeyElements":["espNom"],"expectedComponentLabel":["colonne_homonyme_entre_referentiels","esp_definition_en","my_computed_column","esp_nom","esp_definition_fr"]}},"time":"2025-01-29T21:20:44.3506213","type":"REACTIVE_ERROR"}],"testInvalidDurationForCheckerDate":[{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2025-01-29T21:16:12.832111599","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"invalidDurationCheckerDate","params":{"declaredDuration":"1 Yearss","path":"OA_data > pem > OA_basicComponents > date > OA_checker > OA_params"}},"time":"2025-01-29T21:21:39.551150674","type":"REACTIVE_ERROR"}],"testMissingRequiredValueForDynamicColumns":[{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2025-01-29T21:16:22.059670251","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingRequiredValue","params":{"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_reference"}},"time":"2025-01-29T21:21:52.647592523","type":"REACTIVE_ERROR"}],"testUnexpectedNameTagInBasicComponent":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2025-01-29T21:15:16.094543679","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2025-01-29T21:20:39.859732177","type":"REACTIVE_ERROR"}],"testunknownComponentNameValidation":[{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-29T21:15:13.896848081","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"unknownComponentForComponentName","params":{"unknownComponent":"sites","knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-29T21:20:37.749165272","type":"REACTIVE_ERROR"}],"testNotExpectedTagsInConstantComponents":[{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2025-01-29T21:15:04.677813518","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":["test","context"],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["testz"]}},"time":"2025-01-29T21:20:28.636838623","type":"REACTIVE_ERROR"}],"testMissingComponentNameInColumnsForAuthorization":[{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-29T21:16:17.464775315","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"missingComponentForComponentName","params":{"knownComponents":["site_bassin","date","tel_experimental_site","site","bassin","projet","espece","ordre_affichage","chemin","tel_experimental_network","plateforme","is_float_value","tel_value"],"path":"OA_data > pem > OA_validations > reference > OA_components"}},"time":"2025-01-29T21:21:46.766014621","type":"REACTIVE_ERROR"}],"testBadDomaineTagPattern":[{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-29T21:16:06.133928208","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-29T21:16:06.134187079","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:16:06.134275214","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-29T21:16:06.134672101","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2025-01-29T21:16:06.134991508","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:16:06.135220176","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:16:06.135485192","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2025-01-29T21:16:06.13589434","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2025-01-29T21:16:06.13602793","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-29T21:16:06.136467746","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-29T21:16:06.137092065","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"badDomainTagPattern","params":{"path":"OA_tags","domainTagPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-29T21:21:31.729445631","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"illegalDomainTagPattern","params":{"reservedTagNames":["NoTag[tagDefinition=NO_TAG, tagName=no_tag]"],"path":"OA_tags","expectedPattern":"^[a-z][a-z_0-9]*[a-z0-9]$"}},"time":"2025-01-29T21:21:31.729556665","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:31.7296784","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > especes > OA_basicComponents > esp_nom > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-29T21:21:31.730163821","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > projet","notExpectedDomainTags":["test","context"]}},"time":"2025-01-29T21:21:31.730578887","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > type_de_sites","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:31.731054003","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites","notExpectedDomainTags":["context"]}},"time":"2025-01-29T21:21:31.731502633","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > sites > OA_dynamicComponents > proprieteDeTaxon > OA_tags","notExpectedDomainTags":["test","context"]}},"time":"2025-01-29T21:21:31.732178747","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem","notExpectedDomainTags":["test","context"]}},"time":"2025-01-29T21:21:31.732353886","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_basicComponents > projet > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-29T21:21:31.732781462","type":"REACTIVE_ERROR"},{"errortype":"ValidationError","result":{"message":"notExpectedDomainTags","params":{"expectedDomainTags":[],"path":"OA_data > pem > OA_constantComponents > tel_experimental_network > OA_tags","notExpectedDomainTags":["test"]}},"time":"2025-01-29T21:21:31.733299429","type":"REACTIVE_ERROR"}]} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/errors/ref_ola_errors.json b/ui/cypress/fixtures/applications/errors/ref_ola_errors.json index 0e741c56277e8496859a43d374cc32d4521d344b..be24abdd8ef56c24a0b3a32e9581ec14305052dc 100644 --- a/ui/cypress/fixtures/applications/errors/ref_ola_errors.json +++ b/ui/cypress/fixtures/applications/errors/ref_ola_errors.json @@ -1 +1 @@ -{"missingMandatoryColumns":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"missingMandatoryColumns\",\"messageParams\":{\"missingMandatoryColumns\":[\"Date\"]},\"target\":null},\"lineNumber\":7}]","unexpectedHeaderColumnsInList":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"missingMandatoryColumns\",\"messageParams\":{\"missingMandatoryColumns\":[\"Date\"]},\"target\":null},\"lineNumber\":7}]"} \ No newline at end of file +{"duplicatedHeaders":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"duplicatedHeaders\",\"messageParams\":{\"duplicatedHeaders\":[\"définition_fr\"]},\"target\":null},\"lineNumber\":1}]","patternNotMatchedWithComponent":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidDateWithComponent\",\"messageParams\":{\"target\":{\"column\":\"date\"},\"pattern\":\"dd/MM/yyyy\",\"value\":\"12:00:00\"},\"target\":{\"column\":\"date\"},\"date\":null,\"localDateTime\":null,\"value\":null},\"lineNumber\":2}]","duplicatedLineInReference":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"duplicatedLineInReference\",\"messageParams\":{\"file\":\"proprietes_taxon\",\"lineNumber\":40,\"otherLines\":[39,40],\"duplicateKey\":\"proprietes_taxonKnotes_libres\"},\"target\":null},\"lineNumber\":40}]","invalidDateWithComponent":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidDateWithComponent\",\"messageParams\":{\"target\":{\"column\":\"date\"},\"pattern\":\"dd/MM/yyyy\",\"value\":\"01/01/16\"},\"target\":{\"column\":\"date\"},\"date\":null,\"localDateTime\":null,\"value\":null},\"lineNumber\":2}]","invalidDate":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidDateWithComponent\",\"messageParams\":{\"target\":{\"column\":\"date_day\"},\"pattern\":\"dd/MM/yyyy\",\"value\":\"x24/02/2020\"},\"target\":{\"column\":\"date_day\"},\"date\":null,\"localDateTime\":null,\"value\":null},\"lineNumber\":3}]","invalidFloat":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidFloatWithComponent\",\"messageParams\":{\"target\":{\"column\":\"transparenceParSecchi\"},\"value\":\"x10\"},\"target\":{\"column\":\"transparenceParSecchi\"},\"value\":null},\"lineNumber\":3}]","invalidIntegerWithComponent":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidIntegerWithComponent\",\"messageParams\":{\"target\":{\"column\":\"ordre_affichage\"},\"value\":\"x\"},\"target\":{\"column\":\"ordre_affichage\"},\"value\":null},\"lineNumber\":5}]","invalidReferenceWithComponent":"[{\"validationCheckResult\":{\"target\":{\"column\":\"site\"},\"level\":\"ERROR\",\"rawValue\":\"martin\",\"matchedReferenceHierarchicalKey\":null,\"message\":\"invalidReferenceWithComponent\",\"messageParams\":{\"target\":\"site\",\"referenceValues\":[],\"refType\":\"site\",\"value\":\"martin\"},\"value\":{\"refType\":\"site\",\"referenceValues\":{},\"value\":{\"sql\":\"martin\"},\"sqlType\":\"LTREE\",\"hierarchicalKey\":{\"sql\":\"martin\"}}},\"lineNumber\":39}]","duplicatedLineInDatatype":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"duplicatedLineInReference\",\"messageParams\":{\"file\":\"condition_prelevements\",\"lineNumber\":3,\"otherLines\":[2,3],\"duplicateKey\":\"condition_prelevementsK22_01_2020__08COLON45COLON00__leman\"},\"target\":null},\"lineNumber\":3}]","invalidInt":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidIntegerWithComponent\",\"messageParams\":{\"target\":{\"column\":\"temperatureDeLAir\"},\"value\":\"x8\"},\"target\":{\"column\":\"temperatureDeLAir\"},\"value\":null},\"lineNumber\":3}]","invalidFloatWithColumn":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidFloatWithComponent\",\"messageParams\":{\"target\":{\"column\":\"isFloatValue\"},\"value\":\"x\"},\"target\":{\"column\":\"isFloatValue\"},\"value\":null},\"lineNumber\":5}]","invalidHeaders":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidHeaders\",\"messageParams\":{\"expectedColumns\":[\"Date\",\"site\",\"isFloatValue\",\"nom de la propriété_en\",\"nom de la propriété_fr\",\"type associé\",\"définition_en\",\"définition_fr\",\"isQualitative\",\"nom de la propriété_key\",\"ordre d'affichage\"],\"actualColumns\":[\"Date\",\"nom de la propriété_key\",\"nom de la propriété_fr\",\"nom de la propriété_en\",\"définition_fr\",\"définition_en\",\"définition_es\",\"isFloatValue\",\"isQualitative\",\"type associé\",\"ordre d'affichage\",\"site\"],\"missingComponents\":[],\"unknownComponents\":[\"définition_es\"]},\"target\":null},\"lineNumber\":1}]","emptyHeader":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"emptyHeader\",\"messageParams\":{\"headerLine\":1},\"target\":null},\"lineNumber\":1}]","unexpectedHeaderColumn":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"invalidHeaders\",\"messageParams\":{\"expectedColumns\":[\"Date\",\"site\",\"isFloatValue\",\"nom de la propriété_en\",\"nom de la propriété_fr\",\"type associé\",\"définition_en\",\"définition_fr\",\"isQualitative\",\"nom de la propriété_key\",\"ordre d'affichage\"],\"actualColumns\":[\"Date\",\"martin\",\"nom de la propriété_key\",\"nom de la propriété_fr\",\"nom de la propriété_en\",\"définition_fr\",\"définition_en\",\"isFloatValue\",\"isQualitative\",\"type associé\",\"ordre d'affichage\",\"site\"],\"missingComponents\":[],\"unknownComponents\":[\"martin\"]},\"target\":null},\"lineNumber\":1}]","requiredValue":"[{\"validationCheckResult\":{\"level\":\"ERROR\",\"message\":\"requiredValueWithComponent\",\"messageParams\":{\"target\":{\"column\":\"date_day\"}}},\"lineNumber\":3}]"} \ No newline at end of file diff --git a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt index d461fe9c371982053c563a199737fe532268384c..e0d1a1a3aad2e3b8541de620574c799464f51331 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/changeMonsore.txt @@ -1,17 +1,17 @@ -{"result":0.0,"time":[2025,1,27,14,35,21,318697431],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,320733650],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2025,1,27,14,35,21,320793310],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,320844150],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2025,1,27,14,35,21,320870175],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2025,1,27,14,35,21,322106561],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2025,1,27,14,35,21,322143014],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2025,1,27,14,35,21,322173348],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2025,1,27,14,35,21,425169416],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2025,1,27,14,35,21,425245308],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2025,1,27,14,35,21,425264322],"type":"REACTIVE_PROGRESS"} -{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,450253761],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,450321163],"type":"REACTIVE_INFO"} -{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,450347926],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,489379780],"type":"REACTIVE_INFO"} -{"result":"acb7a301-204b-41d8-9698-f778a4d78c70","time":[2025,1,27,14,35,21,503369889],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2025,1,27,14,35,21,503464537],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2025,1,29,21,16,44,155896315],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,156941696],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2025,1,29,21,16,44,156969196],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,156984683],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.testYamlIsvalid","params":null,"time":[2025,1,29,21,16,44,157004127],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.yamlIsvalid","params":null,"time":[2025,1,29,21,16,44,157836734],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.versionIsValid","params":null,"time":[2025,1,29,21,16,44,157864380],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2025,1,29,21,16,44,157868062],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2025,1,29,21,16,44,247089976],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2025,1,29,21,16,44,247158789],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2025,1,29,21,16,44,247164127],"type":"REACTIVE_PROGRESS"} +{"result":"application.ChangeConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,273060626],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,273152372],"type":"REACTIVE_INFO"} +{"result":"application.ChangeConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,273172034],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,302824562],"type":"REACTIVE_INFO"} +{"result":"4e5ee421-f4ca-40b3-992b-4b39671d3c65","time":[2025,1,29,21,16,44,309271583],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2025,1,29,21,16,44,309308259],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt index d12084430970cf725ff7150bc656f70c65ce024b..51ef5c623878475ae4ab55ca0dc2265f8aa72621 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/createMonsore.txt @@ -1,21 +1,21 @@ -{"result":0.0,"time":[2025,1,27,14,35,20,579272115],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,20,581661919],"type":"REACTIVE_INFO"} -{"result":0.02,"time":[2025,1,27,14,35,20,581909348],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,20,582017261],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2025,1,27,14,35,20,582082163],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2025,1,27,14,35,20,584378355],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2025,1,27,14,35,20,584424688],"type":"REACTIVE_INFO"} -{"result":0.03,"time":[2025,1,27,14,35,20,584454014],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2025,1,27,14,35,20,709881076],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2025,1,27,14,35,20,709977778],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2025,1,27,14,35,20,709998360],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,20,759528855],"type":"REACTIVE_INFO"} -{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,20,759618013],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,20,760071420],"type":"REACTIVE_INFO"} -{"result":"application.register","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,71353506],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,71442241],"type":"REACTIVE_INFO"} -{"result":0.5,"time":[2025,1,27,14,35,21,71872955],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,21,71955208],"type":"REACTIVE_INFO"} -{"result":"acb7a301-204b-41d8-9698-f778a4d78c70","time":[2025,1,27,14,35,21,71990669],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2025,1,27,14,35,21,72226249],"type":"REACTIVE_PROGRESS"} -{"result":1.0,"time":[2025,1,27,14,35,21,72288725],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2025,1,29,21,16,43,779880399],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.rights.checking","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,43,780629193],"type":"REACTIVE_INFO"} +{"result":0.02,"time":[2025,1,29,21,16,43,780656476],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.forSingle","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,43,780679203],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.testYamlIsvalid","params":null,"time":[2025,1,29,21,16,43,780713961],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.yamlIsvalid","params":null,"time":[2025,1,29,21,16,43,781671657],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.versionIsValid","params":null,"time":[2025,1,29,21,16,43,781684475],"type":"REACTIVE_INFO"} +{"result":0.03,"time":[2025,1,29,21,16,43,781689189],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.Starting parsing of configuration","params":{},"time":[2025,1,29,21,16,43,876465718],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2025,1,29,21,16,43,876504634],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2025,1,29,21,16,43,876509991],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.configuration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,43,889126189],"type":"REACTIVE_INFO"} +{"result":"application.configuration.create.register.start","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,43,889181531],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.configuration.parsingConfiguration.endparsing","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,43,889194792],"type":"REACTIVE_INFO"} +{"result":"application.register","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,91686710],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.viewCreation.start","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,91739518],"type":"REACTIVE_INFO"} +{"result":0.5,"time":[2025,1,29,21,16,44,91747047],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.viewCreation.end","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,44,91754589],"type":"REACTIVE_INFO"} +{"result":"4e5ee421-f4ca-40b3-992b-4b39671d3c65","time":[2025,1,29,21,16,44,91758415],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2025,1,29,21,16,44,91761137],"type":"REACTIVE_PROGRESS"} +{"result":1.0,"time":[2025,1,29,21,16,44,91762691],"type":"REACTIVE_PROGRESS"} diff --git a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt index 2bee573057e97552278531cecb8fb674ad059915..7577010c934562015a04d386b70a1cc208768320 100644 --- a/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt +++ b/ui/cypress/fixtures/applications/ore/monsore/validateMonsore.txt @@ -1,10 +1,10 @@ -{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2025,1,27,14,35,19,56584458],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2025,1,27,14,35,19,62010906],"type":"REACTIVE_INFO"} -{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2025,1,27,14,35,19,62400757],"type":"REACTIVE_INFO"} -{"result":0.01,"time":[2025,1,27,14,35,19,63177446],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2025,1,27,14,35,19,503641913],"type":"REACTIVE_INFO"} -{"result":0.0,"time":[2025,1,27,14,35,19,504272532],"type":"REACTIVE_PROGRESS"} -{"result":0.0,"time":[2025,1,27,14,35,19,504836962],"type":"REACTIVE_PROGRESS"} -{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2025,1,27,14,35,20,403496272],"type":"REACTIVE_INFO"} -{"result":{"id":"4aa54dc2-084f-4bed-b270-29b4b621c8c8","creationDate":null,"updateDate":null,"lastChartes":5336473980199903000,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"Unit","fr":"Unité"},"data":{"en":"Data","fr":"Donnée"},"test":{"en":"Test","fr":"Test"},"context":{"en":"Context","fr":"Contexte"},"temporal":{"en":"Temporality","fr":"Temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":true,"referenceCheckerType":"StringChecker"},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":null,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":true,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":null,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"sites"},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"unites"},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":null,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"projet"},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"especes"},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"sites"},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"valeurs_qualitatives"},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"unites"}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"type_de_sites"},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"chartDescription":null,"reference":false,"hidden":false,"referenceCheckerType":"StringChecker"},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"chartDescription":null,"reference":true,"hidden":false,"referenceCheckerType":"sites"}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2025,1,27,14,35,20,404192189],"type":"REACTIVE_RESULT"} -{"result":1.0,"time":[2025,1,27,14,35,20,404545450],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.testYamlIsvalid","params":null,"time":[2025,1,29,21,16,43,627493467],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.yamlIsvalid","params":null,"time":[2025,1,29,21,16,43,628527282],"type":"REACTIVE_INFO"} +{"result":"application.createConfiguration.versionIsValid","params":null,"time":[2025,1,29,21,16,43,628752506],"type":"REACTIVE_INFO"} +{"result":0.01,"time":[2025,1,29,21,16,43,628763736],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.Starting parsing of configuration","params":{},"time":[2025,1,29,21,16,43,714772794],"type":"REACTIVE_INFO"} +{"result":0.0,"time":[2025,1,29,21,16,43,715354579],"type":"REACTIVE_PROGRESS"} +{"result":0.0,"time":[2025,1,29,21,16,43,715366512],"type":"REACTIVE_PROGRESS"} +{"result":"application.createConfiguration.CheckSyntax.startValidation.start","params":{"applicationName":"monsore"},"time":[2025,1,29,21,16,43,728242213],"type":"REACTIVE_INFO"} +{"result":{"id":"9d45f6eb-9052-43f4-8b40-618379f50357","creationDate":null,"updateDate":null,"lastChartes":5336473980199903000,"name":"monsore","version":null,"data":["themes","especes","variables","type_de_sites","site_theme_datatype","unites","projet","valeurs_qualitatives","type_de_fichiers","variables_et_unites_par_types_de_donnees","pem","sites"],"additionalFiles":["fichiers","utilisateurs"],"configuration":{"version":{"version":"2.0.1","runTimeVersion":{}},"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"unit"},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"i18n":{"tags":{"unit":{"en":"Unit","fr":"Unité"},"data":{"en":"Data","fr":"Donnée"},"test":{"en":"Test","fr":"Test"},"context":{"en":"Context","fr":"Contexte"},"temporal":{"en":"Temporality","fr":"Temporalité"}},"application":{"title":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"},"description":{"en":"SOERE my SOERE","fr":"SOERE mon SOERE"}},"data":{"themes":{"validations":{},"exceptions":{},"components":{"description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du thème"}}},"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom du thème"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Thematic","fr":"Thème"},"description":{"en":"Thematic list","fr":"Liste des thèmes"}}},"variables":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Variable definition"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Variable name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"Le nom de la variable"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La définition de la variable"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Variables","fr":"Variables"},"description":{"en":"Variables list","fr":"Liste des variables"}}},"especes":{"validations":{},"exceptions":{},"components":{"my_computed_column":{"exportHeader":{"title":{"en":"computed column","fr":"colonne calculée"},"description":{"en":"a calculated column returning 'my value'","fr":"une colonne calculée retournant 'my value'"}}},"esp_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"species definition"}}},"esp_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition de l'espèce"}}},"esp_nom":{"exportHeader":{"title":{"en":"code","fr":"code"},"description":{"en":"code name of the species","fr":"nom codique de l'espèce"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{esp_nom}","fr":"{esp_nom}"},"description":{"en":"{esp_definition_en}","fr":"{esp_definition_fr}"}},"i18n":{"title":{"en":"Species","fr":"Espèces"},"description":{"en":"Description of species fished in the watershed","fr":"Description des espèces pêchées sur le bassin versant"}}},"site_theme_datatype":{"validations":{"checkDatatype":{"fr":"test"},"projetRef":{"fr":"référence au projet"},"sitesRef":{"fr":"référence au site"},"themesRef":{"fr":"référence au theme"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"},"description":{"en":"Join on projet name: {projet}, site name : {site}, theme name : {theme}, data type name : {datatype}","fr":"Jointure nom du projet: {projet}, nom du site : {site}, nom du thème : {theme}, nom du type de données : {datatype}"}},"i18n":{"title":{"en":"Data types by site and project","fr":"Types de données par site et projet"},"description":{"en":"Join table of theme sites and datatypes","fr":"Table de jointure des sites theme et datatypes"}}},"type_de_sites":{"validations":{},"exceptions":{},"components":{"tze_nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom du type de sites"}}},"tze_nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Site type name"}}},"tze_definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Site type definition"}}},"tze_definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du type de site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{tze_nom_en}","fr":"{tze_nom_fr}"},"description":{"en":"{tze_definition_en}","fr":"{tze_definition_fr}"}},"i18n":{"title":{"en":"Sites types","fr":"Types de sites"},"description":{"en":"Sites types list","fr":"Liste des types de sites"}}},"unites":{"validations":{},"exceptions":{},"components":{"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"Unit name"}}},"code_en":{"exportHeader":{"title":{"en":"code"},"description":{"en":"Unit code"}}},"nom_fr":{"exportHeader":{"title":{"fr":"nom"},"description":{"fr":"La nom de l'unité"}}},"code_fr":{"exportHeader":{"title":{"fr":"code"},"description":{"fr":"Le code du unité"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en} ({code_key})","fr":"{nom_fr} ({code_key})"},"description":{}},"i18n":{"title":{"en":"Units","fr":"Unités"},"description":{"en":"Units list","fr":"Liste des unités"}}},"projet":{"validations":{},"exceptions":{},"components":{"definition_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"project definition"}}},"nom_en":{"exportHeader":{"title":{"en":"Name"},"description":{"en":"Project name"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Nom du projet"}}},"definition_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"définition du projet"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{definition_en}","fr":"{definition_fr}"}},"i18n":{"title":{"en":"Project","fr":"Projet"},"description":{"en":"List of information system projects","fr":"Liste des projets du système d'information"}}},"valeurs_qualitatives":{"validations":{},"exceptions":{},"components":{"valeur_fr":{"exportHeader":{"title":{"fr":"valeur"},"description":{"fr":"La valeur dans la liste"}}},"nom_en":{"exportHeader":{"title":{"en":"name"},"description":{"en":"The name list"}}},"valeur_en":{"exportHeader":{"title":{"en":"value"},"description":{"en":"The value in list"}}},"nom_fr":{"exportHeader":{"title":{"fr":"Nom"},"description":{"fr":"Le nom de la liste"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{valeur_en}","fr":"{valeur_fr}"},"description":{"en":"{valeur_en} of {nom_en}","fr":"{valeur_fr} de {nom_fr}"}},"i18n":{"title":{"en":"Qualitative values","fr":"Valeurs qualitatives"},"description":{"en":"List of qualitative values list","fr":"Liste de liste de valeurs qualitatives"}}},"variables_et_unites_par_types_de_donnees":{"validations":{"checkDatatype":{"fr":"test"},"uniteRef":{"fr":"référence à l'unité'"},"variableRef":{"fr":"référence à la variable"}},"exceptions":{},"components":{},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"datatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"},"description":{"en":"Join ondatatype name : {datatype}, variable name : {variable}, : unit name {unite}","fr":"Jointure des nom du type de données : {datatype}, nom de la variable : {variable}, : nom de l'unité {unite}"}},"i18n":{"title":{"en":"Variables and units by data type","fr":"Variables et unités par type de données"},"description":{"en":"Variables and units by data type join list","fr":"Liste de jointure des variables et unités par type de données"}}},"type_de_fichiers":{"validations":{},"exceptions":{},"components":{"description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"Thematic definition"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{nom_en}","fr":"{nom_fr}"},"description":{"en":"{description_en}","fr":"{description_fr}"}},"i18n":{"title":{"en":"Files types","fr":"Types de fichiers"},"description":{"en":"The files types","fr":"Les types de fichiers"}}},"pem":{"validations":{"unitOfIndividus":{"fr":"vérifie l'unité du nombre d'individus"},"unitOfColor":{"fr":"vérifie l'unité de la couleur des individus"}},"exceptions":{},"components":{"chemin":{"exportHeader":{"title":{"en":"Path","fr":"Chemin"},"description":{"en":"Data calculating the full path of the site","fr":"Données calculant le chemin complet du site"}}},"color_value":{"exportHeader":{"title":{"en":"United colors","fr":"Couleur des individus"},"description":{}}},"individusNumbervalue":{"exportHeader":{"title":{"en":"Number of individuals","fr":"Nombre d'individus"},"description":{}}}},"submissions":{"referenceScopes":{"projet":{"title":{"en":"project","fr":"projet"},"description":{"en":"Choose the project","fr":"Choisissez le projet"}},"sites":{"title":{"en":"site","fr":"site"},"description":{"en":"The site","fr":"Le site"}}}},"i18nDisplayPattern":null,"i18n":{"title":{"en":"Trap in ascent","fr":"Piégeage en Montée"},"description":{"en":"Upstream trapping fishing data","fr":"Données de pêche par piégeage en Montée"}}},"sites":{"validations":{},"exceptions":{},"components":{"zet_description_en":{"exportHeader":{"title":{"en":"definition"},"description":{"en":"site definition"}}},"zet_nom_fr":{"exportHeader":{"title":{"fr":"Nom du site"},"description":{"fr":"Le nom du site"}}},"zet_nom_en":{"exportHeader":{"title":{"en":"Site name"},"description":{"en":"The site name"}}},"zet_description_fr":{"exportHeader":{"title":{"fr":"définition"},"description":{"fr":"La definition du site"}}}},"submissions":{"referenceScopes":{}},"i18nDisplayPattern":{"title":{"en":"{zet_chemin_parent} - {zet_nom_fr}","fr":"{zet_chemin_parent} - {zet_nom_fr} "},"description":{"en":"{zet_description_en}","fr":"{zet_description_fr}"}},"i18n":{"title":{"en":"Site","fr":"Site"},"description":{"en":"Sites list","fr":"Liste des sites du système d'information"}}}},"rightsrequest":{"fields":{"endDate":{"title":{"en":"Give the project end date","fr":"Date de fin du projet"},"description":{"en":"Project end date","fr":"Donnez la date de fin du projet"}},"organization":{"title":{"en":"Name of research organization","fr":"Nom de l'organisme de recherche"},"description":{"en":"Usual ame of research organization","fr":"Nom usuel de l'organisme de recherche"}},"project":{"title":{"en":"Description of the research project","fr":"Description du projet de recherche"},"description":{"en":"Describe your the research project","fr":"Donnez une description du projet de recherche"}},"startDate":{"title":{"en":"Project start date","fr":"Date de début du projet"},"description":{"en":"Give the project start date","fr":"Donnez la date de début du projet"}}},"i18n":{"title":{"en":"You can request rights to the monsore application by filling out this form","fr":"Vous pouvez demander des droits à l'application monsore en remplissant ce formulaire"},"description":{"en":"Monsoere Data Access Right Request Form","fr":"Formulaire de demande de droit d'accès aux données de Monsoere"}}},"additionalFiles":{"utilisateurs":{"i18n":{"title":{"en":"Users","fr":"Utilsateurs"},"description":{"en":"System User Description Files","fr":"Fichiers de dexcription des utilisateurs du système"}},"fields":{"prenom":{"title":{"en":"Surname","fr":"Prénom"},"description":{"en":"User surname","fr":"Prénom de l'utilisateur"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"User name","fr":"Nom de l'utilisateur"}}}},"fichiers":{"i18n":{"title":{"en":"Files","fr":"Fichiers"},"description":{"en":"Various files relating to the Information System","fr":"Différents fichiers afférents au Système d'Information"}},"fields":{"date":{"title":{"en":"Date","fr":"Date"},"description":{"en":"The date the file was updated","fr":"La date de mise à jour du fichier"}},"site":{"title":{"en":"Place","fr":"Site"},"description":{"en":"Site described by the file","fr":"Site décrit par le fichier"}},"poids":{"title":{"en":"Weight","fr":"Poids"},"description":{"en":"File size in kb","fr":"Poids du fichier en ko"}},"nom":{"title":{"en":"Name","fr":"Nom"},"description":{"en":"The name of the file for download","fr":"Le nom du fichier pour téléchargement"}},"age":{"title":{"en":"Age","fr":"Age"},"description":{"en":"Minimum age for file access","fr":"Age minumum d'accès au fichier"}}}}}},"applicationDescription":{"name":"monsore","version":{"version":"3.0.1","runTimeVersion":{}},"defaultLanguage":"fr","comment":"Fichier de test de l'application brokenADOM version initiale"},"dataDescription":{"themes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":"description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"especes":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["esp_nom"],"componentDescriptions":{"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_en":{"type":"BasicComponent","componentKey":"esp_definition_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_en","exportHeaderName":"esp_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"my_computed_column":{"type":"ComputedComponent","componentKey":"my_computed_column","tags":[{"tagDefinition":"HIDDEN_TAG"}],"exportHeaderName":"my_computed_column","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return \"my value\";\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":true,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_nom":{"type":"BasicComponent","componentKey":"esp_nom","defaultValue":null,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"esp_nom","exportHeaderName":"esp_nom","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"esp_definition_fr":{"type":"BasicComponent","componentKey":"esp_definition_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"esp_definition_fr","exportHeaderName":"esp_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"variables":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"is_qualitative":{"type":"BasicComponent","componentKey":"is_qualitative","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"isQualitative","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["tze_nom_key"],"componentDescriptions":{"tze_nom_key":{"type":"BasicComponent","componentKey":"tze_nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_fr":{"type":"BasicComponent","componentKey":"tze_nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_fr","exportHeaderName":"tze_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_fr":{"type":"BasicComponent","componentKey":"tze_definition_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_fr","exportHeaderName":"tze_definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_nom_en":{"type":"BasicComponent","componentKey":"tze_nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_nom_en","exportHeaderName":"tze_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"tze_definition_en":{"type":"BasicComponent","componentKey":"tze_definition_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_definition_en","exportHeaderName":"tze_definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"site_theme_datatype":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["projet","site","theme","datatype"],"componentDescriptions":{"site":{"type":"BasicComponent","componentKey":"site","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"theme":{"type":"BasicComponent","componentKey":"theme","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du thème","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"projetRef":{"checkers":{"projet":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["projet"],"required":false,"mandatory":"OPTIONAL"},"sitesRef":{"checkers":{"site":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["site"],"required":false,"mandatory":"OPTIONAL"},"themesRef":{"checkers":{"theme":{"type":"ReferenceChecker","componentKey":"theme","multiplicity":"ONE","required":false,"refType":"themes","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["theme"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"unites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key"],"componentDescriptions":{"code_en":{"type":"BasicComponent","componentKey":"code_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_en","exportHeaderName":"code_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_key":{"type":"BasicComponent","componentKey":"code_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"code_fr":{"type":"BasicComponent","componentKey":"code_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"code_fr","exportHeaderName":"code_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"projet":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_en":{"type":"BasicComponent","componentKey":"definition_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_en","exportHeaderName":"definition_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"colonne_homonyme_entre_referentiels":{"type":"BasicComponent","componentKey":"colonne_homonyme_entre_referentiels","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"colonne_homonyme_entre_referentiels","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"definition_fr":{"type":"BasicComponent","componentKey":"definition_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"definition_fr","exportHeaderName":"definition_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"valeurs_qualitatives":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["nom_key","valeur_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":"nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_en":{"type":"BasicComponent","componentKey":"valeur_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_en","exportHeaderName":"valeur_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":"nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_key":{"type":"BasicComponent","componentKey":"valeur_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"valeur_fr":{"type":"BasicComponent","componentKey":"valeur_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"valeur_fr","exportHeaderName":"valeur_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":false,"order":9999},"type_de_fichiers":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"HIDDEN_TAG"}],"naturalKey":["nom_key"],"componentDescriptions":{"nom_key":{"type":"BasicComponent","componentKey":"nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_en":{"type":"BasicComponent","componentKey":"nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_en","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"nom_fr":{"type":"BasicComponent","componentKey":"nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_fr":{"type":"BasicComponent","componentKey":"description_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_fr","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"description_en":{"type":"BasicComponent","componentKey":"description_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"description_en","exportHeaderName":"description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{},"depends":[],"migrations":null,"hidden":true,"order":9999},"variables_et_unites_par_types_de_donnees":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"data"}],"naturalKey":["datatype","variable"],"componentDescriptions":{"variable":{"type":"BasicComponent","componentKey":"variable","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de la variable","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"datatype":{"type":"BasicComponent","componentKey":"datatype","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom du type de données","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"unite":{"type":"BasicComponent","componentKey":"unite","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"nom de l'unité","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false}},"submission":null,"authorization":null,"validations":{"variableRef":{"checkers":{"variable":{"type":"ReferenceChecker","componentKey":"variable","multiplicity":"ONE","required":false,"refType":"variables","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["variable"],"required":false,"mandatory":"OPTIONAL"},"uniteRef":{"checkers":{"unite":{"type":"ReferenceChecker","componentKey":"unite","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["unite"],"required":false,"mandatory":"OPTIONAL"},"checkDatatype":{"checkers":{"datatype":{"type":"GroovyExpressionChecker","multiplicity":"ONE","required":false,"expression":"String datatype = datum.datatype; def data = application.getConfiguration().i18n().data ; if(data==null){\n return false;\n}; def i18n = data\n .collect{ it->it.value.i18n};\nif(i18n==null){\n return false;\n}; def title = i18n \n .collect{ it->it.title};\nif(title==null){\n return false;\n}; def french = title\n .collect { it->it.get(java.util.Locale.FRENCH)};\nreturn french \n .find{it->datatype.equals(fr.inra.oresing.domain.application.configuration.Ltree.fromUnescapedString(it.toString()).sql)}!=null;\n","references":null,"exceptionMessages":[],"codify":true,"data":null}},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":["datatype"],"required":false,"mandatory":"OPTIONAL"}},"depends":[],"migrations":null,"hidden":false,"order":9999},"pem":{"separator":";","headerLine":4,"firstRowLine":5,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"data"},{"tagDefinition":"DOMAIN_TAG","tagName":"test"},{"tagDefinition":"DOMAIN_TAG","tagName":"context"},{"tagDefinition":"DATA_TAG"}],"naturalKey":["projet","site","plateforme","date","espece"],"componentDescriptions":{"date":{"type":"BasicComponent","componentKey":"date","defaultValue":null,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":1},{"tagDefinition":"DOMAIN_TAG","tagName":"temporal"}],"importHeader":"date","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"DateChecker","multiplicity":"ONE","required":true,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"site":{"type":"BasicComponent","componentKey":"site","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"site","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"individusNumber_unit":{"type":"ComputedComponent","componentKey":"individusNumber_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"individusNumber_unit","multiplicity":"ONE","required":true,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":true,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true},"projet":{"type":"BasicComponent","componentKey":"projet","defaultValue":null,"tags":[{"tagDefinition":"ORDER_TAG","tagOrder":2},{"tagDefinition":"DOMAIN_TAG","tagName":"test"}],"importHeader":"projet","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"projet","multiplicity":"ONE","required":false,"refType":"projet","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"projet","chartDescription":null,"reference":true},"espece":{"type":"BasicComponent","componentKey":"espece","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"espece","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"espece","multiplicity":"ONE","required":false,"refType":"especes","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"especes","chartDescription":null,"reference":true},"chemin":{"type":"ComputedComponent","componentKey":"chemin","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":"chemin","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"chemin","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return OA_buildCompositeKey(['site','plateforme']);\n","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true},"plateforme":{"type":"BasicComponent","componentKey":"plateforme","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"plateforme","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_value":{"type":"BasicComponent","componentKey":"color_value","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Couleur des individus","exportHeaderName":"color_value","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_value","multiplicity":"ONE","required":false,"refType":"valeurs_qualitatives","isRecursive":false,"isParent":false},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"valeurs_qualitatives","chartDescription":null,"reference":true},"individusNumbervalue":{"type":"BasicComponent","componentKey":"individusNumbervalue","defaultValue":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"return 0","references":null,"exceptionMessages":[],"codify":false,"data":null},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"Nombre d'individus","exportHeaderName":"individusNumbervalue","langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"color_unit":{"type":"ComputedComponent","componentKey":"color_unit","tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"color_unit","multiplicity":"ONE","required":false,"refType":"unites","isRecursive":false,"isParent":false},"computationChecker":{"type":"ComputationChecker","multiplicity":"ONE","required":false,"expression":"'sans_unite'","references":null,"exceptionMessages":[],"codify":false,"data":null},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"unites","chartDescription":null,"reference":true}},"submission":{"strategy":"OA_VERSIONING","fileNameParsing":{"pattern":"(.*)!(.*)!(.*)!(.*).csv","authorizationScopes":["projet","chemin"],"startDate":3,"endDate":4},"submissionScope":{"referenceScopes":[{"reference":"projet","component":"projet"},{"reference":"sites","component":"chemin"}],"timescope":{"component":"date"}}},"authorization":{"authorizationScope":[{"component":"projet","data":"projet"},{"component":"chemin","data":"sites"}],"timeScope":"date"},"validations":{"unitOfColor":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":false,"mandatory":"OPTIONAL"},"unitOfIndividus":{"checkers":{},"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"columns":null,"required":true,"mandatory":"OPTIONAL"}},"depends":[{"type":"DependsReferences","references":"sites","component":"site"},{"type":"DependsReferences","references":"unites","component":"individusNumber_unit"},{"type":"DependsReferences","references":"projet","component":"projet"},{"type":"DependsReferences","references":"especes","component":"espece"},{"type":"DependsReferences","references":"sites","component":"chemin"},{"type":"DependsReferences","references":"valeurs_qualitatives","component":"color_value"},{"type":"DependsReferences","references":"unites","component":"color_unit"}],"migrations":null,"hidden":false,"order":2},"sites":{"separator":";","headerLine":1,"firstRowLine":2,"allowUnexpectedColumns":false,"tags":[{"tagDefinition":"DOMAIN_TAG","tagName":"context"}],"naturalKey":["zet_chemin_parent","zet_nom_key"],"componentDescriptions":{"tze_type_nom":{"type":"BasicComponent","componentKey":"tze_type_nom","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"tze_type_nom","exportHeaderName":null,"langRestrictions":[],"required":true,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"tze_type_nom","multiplicity":"ONE","required":true,"refType":"type_de_sites","isRecursive":false,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"type_de_sites","chartDescription":null,"reference":true},"zet_description_en":{"type":"BasicComponent","componentKey":"zet_description_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_en","exportHeaderName":"zet_description_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_fr":{"type":"BasicComponent","componentKey":"zet_nom_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_fr","exportHeaderName":"zet_nom_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_key":{"type":"BasicComponent","componentKey":"zet_nom_key","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_key","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_nom_en":{"type":"BasicComponent","componentKey":"zet_nom_en","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_nom_en","exportHeaderName":"zet_nom_en","langRestrictions":["en"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_description_fr":{"type":"BasicComponent","componentKey":"zet_description_fr","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_description_fr","exportHeaderName":"zet_description_fr","langRestrictions":["fr"],"required":false,"mandatory":"OPTIONAL","checker":null,"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"StringChecker","chartDescription":null,"reference":false},"zet_chemin_parent":{"type":"BasicComponent","componentKey":"zet_chemin_parent","defaultValue":null,"tags":[{"tagDefinition":"NO_TAG","tagName":"no_tag"}],"importHeader":"zet_chemin_parent","exportHeaderName":null,"langRestrictions":[],"required":false,"mandatory":"OPTIONAL","checker":{"type":"ReferenceChecker","componentKey":"zet_chemin_parent","multiplicity":"ONE","required":false,"refType":"sites","isRecursive":true,"isParent":true},"submissionAuthorizationScope":null,"hidden":false,"referenceCheckerType":"sites","chartDescription":null,"reference":true}},"submission":null,"authorization":null,"validations":{},"depends":[{"type":"DependsParent","references":"type_de_sites","component":"tze_type_nom"},{"type":"DependsParent","references":"sites","component":"zet_chemin_parent"}],"migrations":null,"hidden":false,"order":9999}},"rightsRequest":{"formFields":{"organization":{"order":0,"type":"RightsRequestField","required":true,"checker":{"type":"StringChecker","multiplicity":"ONE","required":true,"pattern":".*"}},"project":{"order":1,"type":"RightsRequestField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":".*"}},"startDate":{"order":2,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"endDate":{"order":3,"type":"RightsRequestField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}}}},"additionalFiles":{"fichiers":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"date":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"DateChecker","multiplicity":"ONE","required":false,"pattern":"dd/MM/yyyy","min":[-999999999,1,1,0,0],"max":[999999999,12,31,23,59,59,999999999],"duration":null}},"age":{"order":2,"type":"AdditionalFileField","required":false,"checker":{"type":"IntegerChecker","multiplicity":"ONE","required":false,"min":-2147483648,"max":2147483647}},"poids":{"order":3,"type":"AdditionalFileField","required":false,"checker":{"type":"FloatChecker","multiplicity":"ONE","required":false,"min":10.0,"max":100.0}},"site":{"order":4,"type":"AdditionalFileField","required":true,"checker":{"type":"ReferenceChecker","componentKey":"site","multiplicity":"ONE","required":true,"refType":"sites","isRecursive":false,"isParent":false}}}},"utilisateurs":{"formFields":{"nom":{"order":0,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}},"prenom":{"order":1,"type":"AdditionalFileField","required":false,"checker":{"type":"StringChecker","multiplicity":"ONE","required":false,"pattern":"[a-z]*"}}}}},"hierarchicalNodes":[{"nodeName":"especes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"projet","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"pem","componentKey":"color_unit","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","unites","projet","especes","valeurs_qualitatives","type_de_sites"],"order":2,"isRecursive":false},{"nodeName":"themes","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"site_theme_datatype","componentKey":"theme","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["sites","projet","themes","type_de_sites"],"order":9999,"isRecursive":false},{"nodeName":"type_de_fichiers","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"type_de_sites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[{"nodeName":"sites","componentKey":"zet_chemin_parent","columnToLookUpForRecursive":"zet_chemin_parent","parent":"type_de_sites","children":[],"depends":["type_de_sites"],"order":9999,"isRecursive":true}],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"unites","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"valeurs_qualitatives","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables","componentKey":null,"columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":[],"order":9999,"isRecursive":false},{"nodeName":"variables_et_unites_par_types_de_donnees","componentKey":"variable","columnToLookUpForRecursive":null,"parent":null,"children":[],"depends":["unites","variables"],"order":9999,"isRecursive":false}],"requiredAuthorizationsAttributes":["themes","variables","especes","site_theme_datatype","type_de_sites","unites","projet","valeurs_qualitatives","variables_et_unites_par_types_de_donnees","type_de_fichiers","pem","sites"],"hiddenData":["type_de_fichiers"]},"configFile":null,"allDataNames":["especes","projet","sites","themes","type_de_sites","site_theme_datatype","type_de_fichiers","unites","valeurs_qualitatives","variables","variables_et_unites_par_types_de_donnees","pem"]},"time":[2025,1,29,21,16,43,728687675],"type":"REACTIVE_RESULT"} +{"result":1.0,"time":[2025,1,29,21,16,43,728897825],"type":"REACTIVE_PROGRESS"}