Skip to content

Latest commit

 

History

History
110 lines (98 loc) · 6.7 KB

File metadata and controls

110 lines (98 loc) · 6.7 KB

Models

Publication

  • 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

  • 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

  • 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.

Map

  • 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>
    • or by UUID:
      • filesystem: /path/to/LAYMAN_DATA_DIR/maps/<UUID>
      • REST API: /rest/maps/<uuid>/thumbnail
      • Micka: /record/basic/m-<uuid>
  • Simple rules
    • one map file per map
    • one thumbnail per map
    • one metadata record per map

Internal map layer

  • Internal map layer is layer of the map named l_<UUID> in layman or layman_wms workspace, and
    • whose className is WMS (or ends with .WMS) and whose url points to the Layman instance,
    • or whose className is Vector (or ends with .Vector), whose protocol.format is WFS (or ends with .WFS) and whose protocol.url points to the Layman instance.
  • Map layer is considered internal even if layer with UUID does not currently exist in the Layman instance.

External map layer

  • External map layer is layer of the map that is not internal.

User

  • 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

  • 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

  • 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 EVERYONE that represents every user including anonymous (unauthenticated).
  • Roles (except of EVERYONE) are managed by role service.

Workspace

  • 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

  • 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