.. _administrator_tinyows:
Transactional WFS with TinyOWS
==============================
Based on `TinyOWS `_, c2cgeoportal mapserver layers can be
edited via Transactional WFS (WFS-T), for example using QGIS as a client. c2cgeoportal acts as a
proxy to TinyOWS to limit access to authorized users.
.. note::
This is not needed for QGIS server, because it natively supports Transactional WFS.
The following explains how to configure WFS-T for a c2cgeoportal layer.
TinyOWS configuration
---------------------
The configuration of TinyOWS is made in an XML file, which is located at
``mapserver/tinyows.xml.tmpl``:
.. code:: xml
In the root element ``tinyows``, the following properties have to be set:
* ``online_resource`` - This should be the URL to the TinyOWS proxy, usually
``https://${VISIBLE_WEB_HOST}/tinyows_proxy``.
* ``schema_dir`` - The path to the TinyOWS schema directory. Adapt this path according to your installation.
* ``log_level`` - The log level (default: 1). Please refer to the
`TinyOWS documentation `__
for more information.
* ``check_schema`` - Defines if the input data is validated against the schema when new features are
created. In a vhost environment, the schema check has to be disabled so that the proxy can function
properly. This does not disable the validation database-side though!
The database connection is configured in the element ``pg``. By default, the
same database as for the c2cgeoportal application will be used.
The layers that should be accessible with TinyOWS have to specified with ``layer`` elements:
.. code:: xml
In this example, a layer named ``point`` is created for the table ``point`` in the
database schema ``edit`` with the primary key column ``id``. This layer is both
``retrievable`` and ``writable``.
The referenced database table must contain a single geometry column and must
provide a sequence for the primary key so that new entities can be created.
The layer's name must match the name of a c2cgeoportal layer. This c2cgeoportal
layer must be assigned to a restriction-area whose``readwrite`` flag is
enabled. The restriction-area will be used inside the proxy to restrict the
access to a layer to the users of a restriction-area.
.. warning::
The actual *area* of a restriction-area is ignored in the TinyOWS proxy.
The proxy only checks for authorized users. To limit the access to a
specific area, the ``geobbox`` property has to be set for a layer in the
TinyOWS XML configuration. Please refer to the
`TinyOWS documentation `__
for more information.
After the configuration is made, re-build your c2cgeoportal application as usual.
Editing a layer with WFS-T
--------------------------
The configured layers can now be edited using your favorite GIS supporting
WFS-T. For example, in QGIS, add a new WFS layer with the URL
``https://${host}/tinyows_proxy`` (e.g.
``https://geomapfish.demo-camptocamp.com/demo/tinyows_proxy``). For the
authentication use your c2cgeoportal account details.