sogis / json2qgs

Repo für json2qgs, jsons mit assets und serviceübergreifendes permission.json
0 stars 2 forks source link

Schemaprüfung beisst sich mit Token replacing #14

Closed ojeker closed 3 years ago

ojeker commented 3 years ago

Hoi Matthias

Wir haben an mehreren Stellen Validierungsprobleme mit URLs, sofern für diese Platzhalter konfiguriert sind.

Beispiele: "oereb_json_url": "http://oereb-web-service.agi-oereb-test.svc/extract/reduced/json/geometry/{egrid}", "oereb_xml_url": "https://geo-t.so.ch/api/oereb/extract/reduced/xml/geometry/{egrid}", "oereb_pdf_url": "https://geo-t.so.ch/api/oereb/extract/reduced/pdf/geometry/{egrid}",

Fehlermeldung beim Validieren: …is not a valid URI

War mir nicht sicher, ob dies valide URIs sind... Gemäss dem folgenden online checker auch nicht: https://quuz.org/url/uri-validate.html

--> In den Schemas "uri" replacen mit String?

pfeimich commented 3 years ago

Aufgetreten bisher im ogcConfig.json (online_resources) und im plotinfoConfig.json (siehe Beispiele Oliver)

mwa commented 3 years ago

Je nach JSON Validator werden die Platzhalter in diesen URLs offenbar nicht immer akzeptiert.

Das PlotInfo Service JSON Schema können wir entsprechend anpassen und den Constraint für das Format uri entfernen.

@pfeimich Verwendet ihr ENV Variablen ($$VARNAME$$) für die online_resources im ogcConfig? Allenfalls könnte dort der Wert leicht angepasst werden, damit die URL trotzdem validiert wird:

        "online_resources": {
          // vorher
          "service": "$$SERVICE_URL$$",
          // angepasst, damit URI Format erfüllt sein sollte
          "service": "https://$$SERVICE_URL$$",
          // ...
        }

Je nach dem müssten wir trotzdem das JSON Schema anpassen. Wo verwendet ihr sonst noch Platzhalter für ENV Variablen?

pfeimich commented 3 years ago

@mwa Auszug configGeneratorConfig.json

ogc-service

    "wms_services": [
            {
              "name": "somap",
              "print_url": "$$QGIS_SERVER_PRINT_URL$$somap_print",
              "online_resources": {
                "service": "$$MAP_BASE_URL$$/api/wms",
                "feature_info": "$$MAP_BASE_URL$$/api/v1/featureinfo/somap",
                "legend": "$$MAP_BASE_URL$$/api/v1/legend/somap"
              }
            }
          ],
          "wfs_services": [
            {
              "name": "somap",
              "wfs_url": "$$WFS_URL$$/ows/somap_wfs",
              "online_resource": "$$MAP_BASE_URL$$/api/wfs"
            }
          ]

dataproduct-service

{
        "name": "dataproduct",
        "config": {
          "wms_service_url": "$$WMS_SERVICE_URL$$",
          "qgs_resources_dir": "/qgs-resources/"
        }
},

plotinfo-service

"oereb_json_url": "http://oereb-web-service.agi-oereb-test.svc/extract/reduced/json/geometry/{egrid}",
"oereb_xml_url": "https://geo-t.so.ch/api/oereb/extract/reduced/xml/geometry/{egrid}",
"oereb_pdf_url": "https://geo-t.so.ch/api/oereb/extract/reduced/pdf/geometry/{egrid}",

ccc-config

{
        "name": "ccc",
        "config": {
          "clients": [
            {
              "id": "baugk",
              "cccServer": "$$CCC_BASE_URL$$/ccc-service",
              "title": "BauGK - GIS",

Probleme gibt es bisher beim ogc-service und beim plotinfo-service. Beim plotinfo-service ist ja https mit drin. Scheint also nicht zu funktionieren. Beim ccc-config funktioniert die Prüfung. Evtl ist hier der Parameter anders (string?) definiert? Dataproduct-service ist unklar, ob es funktioniert, da wir hier immer noch das bigint Problem bei der Prüfung haben

mwa commented 3 years ago

Die URI Format Constraints sind jetzt in allen JSON Schemas für die QWC Services bereinigt. Bei den URLs ist jetzt nur noch "type": "string" notwendig. So können Platzhalter für ENV Variablen und in den PlotInfo URLs eingesetzt werden, ohne dass die Schemavalidierung fehlschlägt.

Zum Teil war das im Dataproduct Service oder CCC Config Service bereits vorher schon so definiert.

ojeker commented 3 years ago

OK - Danke