Giter VIP home page Giter VIP logo

datadir's Introduction


Codacy Badge

geOrchestra is a complete Spatial Data Infrastructure solution.

It features a metadata catalog (GeoNetwork), an OGC server (GeoServer) with fine-grained access control (based on GeoFence), an advanced viewer and editor and many more (security and auth system based on proxy/CAS/LDAP, analytics, admin UIs, ...)

Please refer to the documentation for more information.

datadir's People

Contributors

arnaud-morvan avatar catmorales avatar cmangeat avatar edevosc2c avatar emmdurin avatar f-necas avatar fgravin avatar fvanderbiest avatar gaetanbrl avatar groldan avatar isanchez-c2c avatar jahow avatar jeanmi151 avatar jemacchi avatar jmbourdaret avatar landryb avatar lpasquali avatar marwanehcine avatar mbarto avatar pmauduit avatar severo avatar tkohr avatar tonio avatar vampouille avatar vdorut avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

datadir's Issues

sec-org header

Currently, the datadir (master branch) is not in a coherent state with the security-proxy code (master branch too) , since the sec-org header is set twice:

Several options here:

  • remove the sec-org=o header mapping,
  • keep the line, but rename the sec-org header (the one mapping to the user's o field) to sec-orgname

One question to @Vampouille : what links the user's o field and his org's cn field ?

Combine datadir for docker and kubernetes

Having two different branches adds some overhead and is time-consuming when maintaining the datadir for the containerized environments (Docker and Kubernetes). We have to merge the changes for two different solutions.

What I propose is to add variables for as many configurations files as possible so that the same datadir for Docker and Kubernetes can be used.


@jeanmi151 is already working on it

[mapstore] mettre a jour les urls IGN pour la migration vers la geoplateforme

cf urls on https://groups.google.com/g/georchestra/c/5f7f1KYTOBk et https://geoservices.ign.fr/services-beta-geoplateforme-diffusion pour les urls temporaires...

  • mettre ces urls 'béta' en plus des existantes pour permettre les tests d'interop au fur et a mesure que l'ign alimente les nouveaux flux ?
  • -faire la bascule vers les urls définitives avant le débranchement des anciennes urls fin 2023 ?

les existants ont été ajoutés en georchestra/mapstore2-georchestra#410 et #224

cc @fvanderbiest

Update Mapstore's conf to optimise layers loading

As discuted previously with other administrators, we should setup the way example catalogs are configured in order to have faster tiles loading.

Here is an example of what can be done :

[...]
"newService": {
    "url": "",
    "type": "wms",
    "title": "",
    "isNew": true,
    "autoload": false,
    "format":"image/vnd.jpeg-png",
    "layerOptions":{
        "tileSize":512,
        "singleTile":false,
        "legendOptions":{
            "legendWidth":30,
            "legendHeight":30
        }
    }
},
[...]
"services": {
    "localgs": {
        "url": "/geoserver/ows",
        "type": "wms",
        "title": "le geoserver local",
        "autoload": true,
        "format":"image/vnd.jpeg-png",
        "layerOptions":{
            "tileSize":512,
            "singleTile":false,
            "legendOptions":{
                "legendWidth":30,
                "legendHeight":30
            }
        },
    }
[...]

The use of image/vnd.jpeg-png should allow to faster tiles loading as it rely on GS to choose between JPEG or PNG (transparency or not).

In the last Mapstore release, image/vnd.jpeg-png8 is also available, so when it will be integrated in Georchestra, we could use it.

Any opinions about this sample conf ?

@MaelREBOUX @landryb @catmorales ?

ldapadmin email related properties

Clarify the use of moderatorEmail in https://github.com/georchestra/datadir/blob/master/ldapadmin/ldapadmin.properties:

How is it related with (below):

# Mails-related properties
emailHtml=false
[email protected]
[email protected]
language=en
subject.account.created=[geOrchestra] Your account has been created
subject.account.in.process=[geOrchestra] Your new account is waiting for validation
subject.requires.moderation=[geOrchestra] New account waiting for validation
subject.change.password=[geOrchestra] Update your password
subject.account.uid.renamed=[geOrchestra] New login for your account
warnUserIfUidModified=true

Definitely needs more doc ...

docker - temp folders should be in volumes

eg:

atlas/atlas.properties:atlas.temporaryDirectory=/tmp/georchestra/atlas
cadastrapp/cadastrapp.properties:tempFolder=/tmp
geonetwork/geonetwork.properties:geonetwork.dir=/tmp/gn_data

mapstore - default new json etent

(really minor issue)

The datadir new.json extent is center on a specific region.
It could be nice to use a more largest area instead :

    "maxExtent": [
      -1076658.754450426,
      5134999.16310118,
      2166310.6398374303,
      6771685.279280833
    ],

image

geonetwork - getting rid of the geonetwork db user

We historically use a dedicated user for geonetwork, so that the webapp does not mess up tables in the public schema. We actually can define the following property in the geonetwork.properties file:

jdbc.connectionProperties=currentSchema=geonetwork

and use the geochestra user instead.

Comment all the properties in datadir (and harmonize the format of properties files)

All the properties are (should be) loaded with Spring placeholders in the applications, with a default value in case the property does not exist.

In order to facilitate the tasks of the administrator, we could use that following pattern in the properties file (it's the common way of doing in .conf files in /etc/ in GNU/Linux distributions):

# The maximum in memory size allowed
# Default is 10240
# See also: see https://docs.spring.io/autorepo/docs/spring-framework/3.1.0.RELEASE/javadoc-api/org/springframework/web/multipart/commons/CommonsFileUploadSupport.html#setMaxInMemorySize(int)
#maxInMemorySize=10240
  • the property is commented (the administrator will uncomment if they want to change the value)
  • it's preceded by a comment on what the property is, and on its default value, that must be equal to the value in the commented line

And obviously, this value should also correspond to the default value in the code when it's accessed via a placeholder, eg:

    <property name="maxInMemorySize" value="${maxInMemorySize:10240}"/>

[mapstore] change approach of tracking default config

After some discussion and investigation (and browsing through issues from the past) I am wondering if we could not simplify the process of keeping up with default configurations for mapstore.

Of what I could identify, the main ups and downs of the currently "externalized" configs and patching the default configs shipped with the webapp are:

externalize patch
+ easier to read - harder to read
- difficult to update + easy to update
~ full control on deployed features ~ automatic deploy of new features

This makes me wonder if it would not make sense to switch from "externalizing" to "patching" in the georchestra datadir (at least for the two configs that are most impacted by new developments). This would allow staying automatically aligned with these developments.

To be more precise, I'm thinking of this:

  • remove localConfig.json and pluginsConfig.json from datadir
  • motivate and explain the use of patching these two configs (via localConfig.json.patch and pluginsConfig.json.patch) in the readme
  • mention the possibility to externalize these configs, but clarify what this means for updates in the readme (and point to the doc that already treats this)

I do not know the complete history of the mapstore datadir in georchestra and might be missing reasons, why certain files have been included. So please correct me.

Note: One potential drawback that I've noticed playing around with patching the localConfig.json is the technical limitation of targeting elements in an array other than by their position, which makes replacing plugins via a patch (without potentially breaking future configs) difficult for example.

Question: I saw that overriding is also a possibility, but had some trouble applying this in georchestra. Is it meant to work within mapstore2-georchestra, as well?

Add a comment for anonymous binding

Could be something like:

# Note: ldapAdminDn and ldapAdminPassword properties allow to create an
# authenticated connection to the LDAP server.
# But, as the access required by CAS is read-only, depending on the LDAP server
# configuration, you may only want to give CAS an anonymous access. In that
# case, uncomment ldapAdminDn and ldapAdminPassword properties, and let an
# empty value.

See #149 (comment) comment and below.

simplify ldapadmin security-mappings.xml

Current config:

  <intercept-url pattern="/ldapadmin/private/.*" access="ROLE_MOD_LDAPADMIN" />
  <intercept-url pattern="/ldapadmin/public/.*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
  <intercept-url pattern="/ldapadmin/console/public/.*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
  <intercept-url pattern="/ldapadmin/console/.*" access="ROLE_MOD_LDAPADMIN" />
  <intercept-url pattern="/ldapadmin/account/userdetails" access="IS_AUTHENTICATED_FULLY" />
  <intercept-url pattern="/ldapadmin/account/changePassword" access="IS_AUTHENTICATED_FULLY" />
  <intercept-url pattern="/ldapadmin/.*/emails" access="ROLE_MOD_LDAPADMIN" />
  <intercept-url pattern="/ldapadmin/.*/sendEmail" access="ROLE_MOD_LDAPADMIN" />
  <intercept-url pattern="/ldapadmin/attachments" access="ROLE_MOD_LDAPADMIN" />
  <intercept-url pattern="/ldapadmin/emailTemplates" access="ROLE_MOD_LDAPADMIN" />
  <intercept-url pattern="/ldapadmin/emailProxy" access="ROLE_MOD_EMAILPROXY" />

To be tested:

  <intercept-url pattern="/ldapadmin/public/.*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
  <intercept-url pattern="/ldapadmin/console/public/.*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
  <intercept-url pattern="/ldapadmin/account/userdetails" access="IS_AUTHENTICATED_FULLY" />
  <intercept-url pattern="/ldapadmin/account/changePassword" access="IS_AUTHENTICATED_FULLY" />
  <intercept-url pattern="/ldapadmin/emailProxy" access="ROLE_MOD_EMAILPROXY" />
  <intercept-url pattern="/ldapadmin/.*" access="ROLE_MOD_LDAPADMIN" />

mapstore2 extensions folder and file

The mapstore/README.md contains a extensions.json detail :

extensions.json: dynamic registry of currently installed extensions, in JSON format

But we have nothing about that when we clone the datadir.
From last release, we have a new folder extensions to contains extensions.json file.

Btw, I think that we could provide this folder and a ready extensions.json file to avoid default install error.

I will create a PR next.

add local geoserver in mapfishapp/wms.servers.json ?

do you think that adding the local geoserver in mapfishapp/wms.servers.json should be a good idea ?

    {
        "name": "My local WMS geoserver",
        "url": "https://georchestra.mydomain.org/geoserver/wms"
    }

I think it would be very useful for everyone.

Redundant use of <context:property-placeholder>?

I understand that the line:

 <context:property-placeholder location="file:${georchestra.datadir}/geonetwork/geonetwork.properties" file-encoding="UTF-8" ignore-unresolvable="true" order="0"/>

present in three files:

should be moved to config-overrides-georchestra.xml in order to avoid multiple loading operations of the same file. And it could allow to add a second file (default.properties, see georchestra/georchestra#2299) with more trust in the priority order (see georchestra/georchestra#2123).

Cannot create account or modify password

Hello,

I'm having troubles while configuring Georchestra! I cannot create account.
When I try to generate a password for one user by sending email =>{"success":false,"error":"com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.1 Authentication required\n"}

I correctly configured my SMTP parameters, I can receive test message.
According to the "Authentification required" message, I would say that my configuration in administration parameter isn't used.
So I tried to force them in default.properties and console.properties but there is nothing about a password I should specify...

Like an authentification e-mail and password on the SMTP server...

Is there something I am missing?

Thanks for help!

console fails with java.lang.NumberFormatException: For input string: "${rabbitmqPort}"

With the recent introduction of rabbit MQ, some new config parameters have been introduced in the default.properties file.

Since Rabbit MQ for now only addresses the usage of Gateway, I would say that we should consider it optional, since Gateway is still not the mainstream option. Considering that, it would be good if those config parameters didn't break the apps.

Right now, using the helm chart and docker-master datadir, the console fails with java.lang.NumberFormatException: For input string: "${rabbitmqPort}".

Apparently, the issue is not rabbit MQ not being available, but simply a string to Int conversion error (when RABBITMQ_PORT is not configured). I propose we provide a default value to this env var, to prevent this error. I didn't check it on properties file, but ${RABBITMQ_PORT:-5672} works in the shell and should also work here, I'd say. And at least prevent this error.

geoserver privileged user belongs to default.properties

It currently appears in many different modules:

analytics/analytics.properties:#excludedUsers=geoserver_privileged_user,monitoringUser
analytics/analytics.properties:# default: geoserver_privileged_user
analytics/analytics.properties:#excludedUsers=geoserver_privileged_user
console/console.properties:# default: geoserver_privileged_user
console/console.properties:#protectedUsersList=geoserver_privileged_user
datafeeder/datafeeder.properties:#datafeeder.publishing.geoserver.auth.basic.username=geoserver_privileged_user
gateway/security.yaml: protectedUsers: geoserver_privileged_user
security-proxy/security-proxy.properties:# default: geoserver_privileged_user
security-proxy/security-proxy.properties:#trustedUsers=geoserver_privileged_user

geonetwork: not overriding as intended?

In config-security-georchestra.xml, we have:

<ctx:property-override location="WEB-INF/config-security/config-security-overrides.properties" order="2"/>
<ctx:property-override location="file:${georchestra.datadir}/geonetwork/geonetwork-security-overrides.properties" order="1" ignore-resource-not-found="true" />
<!-- using the one from the geOrchestra datadir first (if available) -->
<ctx:property-placeholder location="file:${georchestra.datadir}/geonetwork/geonetwork.properties" ignore-resource-not-found="true" ignore-unresolvable="true" order="1"/>

and the comments seem to mean that file:${georchestra.datadir}/geonetwork/geonetwork.properties would be the file of highest priority to override the beans properties.

But the property-placeholder tag used is not intended for that, it only provides the XML Spring configuration file with values for the placeholders. Meanwhile, the property-override tag used in the previous two lines is intended to directly replace the properties of bean, without using a placeholder. To do that, the properties inside the file:${georchestra.datadir}/geonetwork/geonetwork-security-overrides.properties file, for example, explicitly mention the bean to be modified (see , it will replace the mapping[name] property inside the ldapUserContextMapper bean).

I don't know if it's the expected behavior, but clearly, the file:${georchestra.datadir}/geonetwork/geonetwork.properties file shouldn't be used with the property-override tag, since the format of the strings is different between the "placeholder" and the "override" properties files.

Note that it's somewhat related to georchestra/georchestra#2123.

[mfapp] remove mentions of broken IGN API keys

i know mfapp subdir should be ditched from this repo, but there are still mentions of IGN services such as wxs.ign.fr/opbnnt8s6esy6680ptjfqmwo (cf wms/wmts.servers.json which are deprecated/broken since february, and those should be moved to new urls as done for ms2 in #224

defaults.properties is not currently provided by any debian package

As far as I know, no debian package is configured to claim the ownership of the /etc/georchestra/default.properties file, which means that a default setup based on these packages might be broken (or we have a good luck with default parameter values).

Maybe the Security-proxy should take care of the file ?

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.