Configuring TinyOWS with a standard Mapfile

Mapfile Config File support for TinyOWS

TinyOWS supports as a configuration file a standard MapServer Mapfile. This allow a single file to configure both MapServer and TinyOWS. (e.g could be useful if you use them both, as one for WMS and the other as WFS-T)

TinyOWS does not handle all of the parameters in a Mapfile, but will ignore, without error, any extra parameters that are not implemented in TinyOWS.

If you prefer, you can configure TinyOWS using an XML file (Configuring TinyOWS with an XML File).

To indicate where your Mapfile is located, to TinyOWS binary, use the ‘’TINYOWS_MAPFILE’’ environment variable.

Here an example of a single Mapfile:

MAP
    NAME "TinyOWS"

    WEB
         METADATA
                    "tinyows_schema_dir" "/usr/local/share/tinyows/schema/"
                    "tinyows_onlineresource" "127.0.0.1/cgi-bin/tinyows.fcgi"
                    "wfs_title" "TinyOWS service provided by a MapFile"
                    "wfs_contact" "foo@bar.net"
         END
    END

    LAYER
            NAME 'France'
            CONNECTIONTYPE postgis
            CONNECTION "host=127.0.0.1 user=postgres password=postgres dbname=tinyows_demo port=5432"
            METADATA
                    'wfs_title' 'France'
                    'wfs_namespace_prefix' 'tows'
                    'wfs_namespace_uri' 'http://www.mapserver.org/tinyows/'
                    'wfs_srs' 'EPSG:27582'
                    'tinyows_table'  'france'
                    'tinyows_writable' '1'
                    'tinyows_retrievable' '1'
            END
            DUMP TRUE
    END
END

Current concepts and limitations:

  • Only the PostGIS CONNECTIONTYPE is handled
  • TinyOWS does not support all of the WFS parameters available in a Mapfile. But on the other hand, you are able to configure every part of TinyOWS with a Mapfile.
  • The CONNECTION string value in each layer must be the same.
  • Mapfile PROJECTION content is not parsed, so use explicit wfs_srs.
  • Mapfile LAYER and FILTER are not parsed.
  • Default values are TinyOWS ones, even for common properties shared by both TinyOWS and MapServer.
  • TinyOWS does not use DATA element from Mapfile, so you have to use tinyows_table (and tinyows_schema if needed) in each layer.
  • If DUMP is not set to TRUE on a layer, both read and write access are disabled for the layer.

Mapfile path of each TinyOWS config element

Original TinyOWS XML Config File Mapfile counterpart
/tinyows@online_resource /map/metadata@tinyows_onlineresource
/tinyows@schema_dir /map/metadata@tinyows_schema_dir
/tinyows@log /map/metadata@tinyows_log
/tinyows@log_level /map/metadata@tinyows_log_level
/tinyows@degree_precision /map/metadata@tinyows_degree_precision
/tinyows@meter_precision /map/metadata@tinyows_meter_precision
/tinyows@display_bbox /map/metadata@tinyows_display_bbox
/tinyows@estimated_extent /map/metadata@tinyows_estimated_extent
/tinyows@check_schema /map/metadata@tinyows_check_schema
/tinyows@check_valid_geom /map/metadata@tinyows_check_valid_geom
/tinyows@encoding /map/metadata@wfs_encoding
/tinyows@db_encoding /map/metadata@tinyows_db_encoding
/tinyows@expose_pk /map/metadata@tinyows_expose_pk
/tinyows/limits@features /map/metadata@wfs_maxfeatures
/tinyows/limits@geobbox /map/metadata@tinyows_geobbox
/tinyows/pg@host /map/layer@connection
/tinyows/pg@user /map/layer@connection
/tinyows/pg@password /map/layer@connection
/tinyows/pg@dbname /map/layer@connection
/tinyows/pg@port /map/layer@connection
/tinyows/pg@encoding /map/metadata@tinyows_db_encoding
/tinyows/metadata@name /map@name
/tinyows/metadata@title /map/metadata@wfs_title
/tinyows/metadata@keywords /map/metadata@wfs_keywordlist
/tinyows/metadata/abstract /map/metadata@wfs_abstract
/tinyows/metadata@fees /map/metadata@wfs_fees
/tinyows/metadata@access_constraints /map/metadata@wfs_accessconstraints
/tinyows/layer@ns_prefix /map/layer/metadata@wfs_namespace_prefix or /map/metadata@wfs_namespace_prefix
/tinyows/layer@ns_uri /map/layer/metadata@wfs_namespace_uri or /map/metadata@wfs_namespace_uri
/tinyows/layer@name /map/layer@name
/tinyows/layer@title /map/layer/metadata@wfs_title
/tinyows/layer@retrievable /map/layer/metadata@tinyows_retrievable and /map/layer@dump
/tinyows/layer@writable /map/layer/metadata@tinyows_writable and /map/layer@dump
/tinyows/layer@schema /map/layer/metadata@tinyows_schema
/tinyows/layer@keywords /map/layer/metadata@wfs_keywordlist
/tinyows/layer/abstract /map/layer/metadata@wfs_abstract
/tinyows/layer@srid /map/metadata@wfs_srs and /map/layer/metadata@wfs_srs
/tinyows/layer@geobbox /map/layer/metadata@tinyows_geobbox
/tinyows/layer@include_items /map/layer/metadata@include_items
/tinyows/layer@exclude_items /map/layer/metadata@exclude_items
/tinyows/layer@pkey /map/layer/metadata@pkey
/tinyows/contact@name /map/metadata@ows_contactorganization
/tinyows/contact@site  
/tinyows/contact@email /map/metadata@ows_contactelectronicmailaddress
/tinyows/contact@individual_name /map/metadata@ows_contactperson
/tinyows/contact@position /map/metadata@ows_contactposition
/tinyows/contact@phone /map/metadata@ows_contactvoicetelephone
/tinyows/contact@fax /map/metadata@ows_contactfacsimiletelephone
/tinyows/contact@online_resource  
/tinyows/contact@address /map/metadata@ows_address
/tinyows/contact@city /map/metadata@ows_city
/tinyows/contact@administrative_area  
/tinyows/contact@country /map/metadata@ows_country
/tinyows/contact@hours_of_service  
/tinyows/contact@contact_instructions