[Geoserver-devel] Add per-workspace support for WFS Stored Queries WIP

Hi community,

I’m working on adding per-workspace WFS 2.0 Stored queries support.

The core concept is that we will allow the creation of stored queries per workspace​:

  • when creating a stored query, if a workspace virtual service end-point is used, then the query will belong to that workspace:

    • but that query will only be visible \ usable from that workspace virtual end-point
  • if no workspace virtual service is used, then the stored query will be global
    In terms of stored queries usage (list stored queries, execute a stored query, etc …):

  • when targeting the global GeoServer end-point, only global stored queries will be visible:

    • hence two stored queries of different workspaces can have the same id
  • when targeting a workspace virtual service end-point, the workspace stored queries and global stored queries that don’t collide (don’t have the same id) will be considered:

    • considering also global queries will allow the definition of more generic stored queries, hence removing the need of duplication

    • considering global queries will be activated by default, but can be deactivated (flag in the WFS workspace configuration)

In terms of backwards compatibility:

  • global stored queries will be stored as they are now, so no data directory migration need

  • ​for backwards compatibility, a flag deactivating per workspace stored queries will be added:

    • if an user was using a virtual service end-point for creating stored-queries (we can do that now but the stored query will be global anyway), it can use that global flag to deactivate the new functionality

I would like to backport this feature, so proposed default behavior is:

  • Activated by default on master branch.
  • Deactivated by default on backport branches.
    Do you have comments, suggestions on this plan?

Current PR for master branch, if anyone wants to check/review:
https://github.com/geoserver/geoserver/pull/3867

Regards,

Fernando Mino

==

GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information.

==

Fernando Mino

Software Engineer

GeoSolutions S.A.S.

Via di Montramito 3/A

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

http://www.geo-solutions.it

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.

The idea seems straightforward, I am a bit concerned with using the same id in two different workspaces. This seems important to you since you marked it in bold - why?

It may be more straight forward to only manage the stored queries globally or per-workspace rather than try and combine them all into a single list (and have complexity around ID collisions).

Usual feedback, write up a proposal and be sure to update the documentation.

···


Jody Garnett