- Publication is any geospatial data that can be published by Layman through REST API.
- Available publications are map and layer.
- Each publication is placed in one workspace.
- Layer is publication created from combination of vector or raster data (GeoJSON, ShapeFile, PostGIS table, GeoTIFF, JPEG2000, PNG or JPEG) and visualization (SLD, SE, or QML style). Raster layer can hold also timeseries data.
- Published layer can be accessed by standardized OGC interfaces
- Thumbnail image available
- Layer-related data is named and structured by UUID:
- filesystem:
/path/to/LAYMAN_DATA_DIR/layers/<UUID>- PostgreSQL:db=LAYMAN_PG_DBNAME, schema=layers, table=layer_<UUID>- GeoServer WFS:/geoserver/layman/ows, layer=l_<UUID>- GeoServer WMS:/geoserver/layman_wms/ows, layer=l_<UUID>, style=<UUID>- Micka:/record/basic/m-<UUID>- REST API:/rest/layers/<uuid>/thumbnail - Simple rules
- one DB table per input file (vector layers only)
- one WFS feature type per DB table (vector layers only)
- exception: external PostGIS table can be published as multiple WFS feature types
- one WMS layer per DB table
- exception: external PostGIS table can be published as multiple WMS layers
- one SLD or QGIS style per WMS layer
- one thumbnail per WMS layer
- one metadata record per WMS&WFS layer
- Timeseries is layer created from set of raster data files (GeoTIFF, JPEG2000, PNG or JPEG).
- Each file represents one time instant, more files may represent the same time instant.
- The smallest possible supported temporal unit is one day (see #875).
- Information about time representation is passed through time_regex parameter.
- Also referred to as map composition
- Map is publication defined by JSON valid against map-composition schema version 2 or 3 used by Hslayers-ng
- Map is collection of WMS layers and vector data
- Maps composed of WMS layers only are fully supported
- Each layer is either internal, or external.
- Documented map publishing process
- Thumbnail image available
- Map-related data is named and structured
- either by workspace and layername
- REST API:
/rest/workspaces/<workspace_name>/maps/<mapname>
- REST API:
- or by UUID:
- filesystem:
/path/to/LAYMAN_DATA_DIR/maps/<UUID> - REST API:
/rest/maps/<uuid>/thumbnail - Micka:
/record/basic/m-<uuid>
- filesystem:
- either by workspace and layername
- Simple rules
- one map file per map
- one thumbnail per map
- one metadata record per map
- Internal map layer is layer of the map named
l_<UUID>inlaymanorlayman_wmsworkspace, and- whose
classNameisWMS(or ends with.WMS) and whoseurlpoints to the Layman instance, - or whose
classNameisVector(or ends with.Vector), whoseprotocol.formatisWFS(or ends with.WFS) and whoseprotocol.urlpoints to the Layman instance.
- whose
- Map layer is considered internal even if layer with UUID does not currently exist in the Layman instance.
- User is any person who communicates with Layman REST API through any client.
- User can be either authenticated, or unauthenticated (i.e. anonymous).
- User is sometimes identified by username
- List of users with usernames can be obtained by GET Users.
- Username is a string identifying one user, so it is unique among all users.
- The string is lower-case (in contrast with role name), maximum length is 59 characters.
- Each user is represented by max. one username.
- Username is also used to identify user's personal workspace when communicating with Layman REST API.
- Username can be reserved by PATCH Current User.
- Usernames can be used for assigning access rights.
- Anonymous user has no username.
- Role is any group of users. One user can be assigned to multiple roles.
- Each role is identified by name that is unique among all roles.
- The name is upper-case (in contrast with username), maximum length is 64 characters.
- Role names can be used for assigning access rights.
- Existing roles can be obtained by GET Roles.
- There is always listed special pseudo-role
EVERYONEthat represents every user including anonymous (unauthenticated).
- There is always listed special pseudo-role
- Roles (except of
EVERYONE) are managed by role service.
- Workspace is folder for publications.
- Each workspace is identified by name that is unique among all workspaces.
- The name is lower-case, maximum length is 59 characters.
- Workspace name is sometimes used for structuring publication-related data. For example, it's part of REST API URL (
/rest/workspaces/<workspace_name>/...). - Workspace's REST API consists of all map and layer endpoints endpoints.
- There are following types of workspaces:
- Personal workspace is a workspace whose name is equal to username of some user.
- Such user is considered as owner of this workspace and he is the only one who can publish new publications in this workspace.
- Personal workspace is created automatically when username is reserved.
- Public workspace is a workspace whose name is not equal to any username.
- Public workspace has no owner.
- Only users listed in GRANT_PUBLISH_IN_PUBLIC_WORKSPACE can publish new publications in public workspace.
- Public workspace is automatically created when first publication is being published there. Only users listed in GRANT_CREATE_PUBLIC_WORKSPACE can create new public workspace in this way.