====== 3DM Publisher Admin API - Publication Management ======
[[publisher_console_api|Back to the index]]
This page describes the publication management API's for 3DM Publisher.\\
Please familiarize yourself with [[publisher_console_api_basics|the basics]] first before continuing.
~~INTOC~~
===== Model: Publication =====
A ''Publication'' models a published workspace and related configurations.
Properties:
^ Property ^ Required ^ Type ^ Description ^
| id | * | number | Unique publication identifier. |
| name | * | number | Name of the publication. |
| user_mode | | ''named'' (default) or ''guest'' | User mode of the publication.\\ ''guest'' means only guests can open the publication.\\ ''named'' means only named users can open the publication. |
| configuration | | string | The publication configuration, serialized to a string. |
| annotation_data | | string | The workspace annotations, serialized to a string. |
| logo_type | | ''none'' or ''organisation'' (default) or ''publication'' | The type of logo.\\ ''none'' means no logo.\\ ''organisation'' means using the system-level organisation logo\\ ''publication'' means using the ''image_url'' property. |
| logo_url | | string | The publication logo URL. |
| thumbnail_image | | string | The publication thumbnail image. |
| tags | | string | The tags, serialized to a string. |
| concurrent_use_min | | number | The minimum number of concurrent users to keep in reserve |
| concurrent_use_max | | number | The maximum number of concurrent users to allow. |
| created_by_user | | User| The user that created the publication. |
| workspace | | [[#Model: Workspace|Workspace]] | The workspace configuration. |
| is_wms | | number | Is this publication made available as a WMS service? |
| is_wfs | | number | Is this publication made available as a WFS service? |
| is_wfst | | number | Is this publication made available as a WFST service? |
| publication_permission | | [[#Model: PublicationPermission|PublicationPermission]][] | The list of publication permissions. |
Properties ending on ''_image'' are Base64-encoded JPEG images on create, but will be URL's to the image cache on retrieval.
===== Model: Workspace =====
A ''Workspace'' models the state of a workspace with resources and views.
Properties:
^ Property ^ Required ^ Type ^ Description ^
| id | * | number | Unique identifier. |
| configuration | * | string | The workspace configuration, encoded as a string.\\ Defines the workspace layout, views, resource states and settings. |
| workspace_resources | * | [[#Model: WorkspaceResource|WorkspaceResource]][] | The list of referenced resoruces in the workspace and their role. |
===== Model: WorkspaceResource =====
A ''WorkspaceResource'' models how a resource is used in the workspace.
Properties:
^ Property ^ Required ^ Type ^ Description ^
| id | * | number | Unique identifier. |
| resource| * | Resource | The resource.\\ Defines a resource reference only (an object with only the ''id'' field set) |
| role | * | ''workspace'' or ''basemap'' or ''dem'' or ''lref'' | The role of the resource in the workspace. |
| order | * | number | The order of the resource. |
===== Model: PublicationPermission =====
A ''PublicationPermission'' models one publication being shared with a usergroup or user.
Properties:
^ Property ^ Required ^ Type ^ Description ^
| id | * | number | Unique identifier for this group. |
| scope | * | ''user'' or ''usergroup'' | The scope of the permission.\\ ''user'' means we share with a ''user''. \\ ''usergroup'' means we share with a ''usergroup''.|
| user | | User | The user the permission applies to.\\ Defines a user reference only (an object with only the ''id'' field set) |
| usergroup | | Usergroup | The usergroup the permission applies to.\\ Defines a usergroup reference only (an object with only the ''id'' field set) |
===== Operation: List Publications =====
=== Discussion ===
This operation retrieves all publications.
Fields: [[#Model: Publication]]
=== Request ===
''GET'' ''/api/3/publication''
=== Example Response (http 200) ===
[
{
"id": 50,
"name": "Bla",
"user_mode": "named",
"description": "",
"configuration": "{\"language\":\"browser\",\"invert_zoom_direction\":false,\"preferred_unit\":\"metre\",\"preferred_crs\":\"31370\",\"sidebar\":true,\"sidebar_resources\":true,\"sidebar_resources_footprint\":true,\"sidebar_create_and_verify\":true,\"sidebar_workspace\":true,\"sidebar_measure_advanced\":true,\"sidebar_measure_basic\":true,\"sidebar_measure_download\":true,\"sidebar_annotation\":true,\"sidebar_annotation_view\":true,\"sidebar_snapshot\":true,\"sidebar_sliceview\":true,\"sidebar_object_inspector\":true,\"sidebar_bookmarks\":true,\"sidebar_bookmarks_user\":true,\"sidebar_fly\":true,\"sidebar_reporting\":true,\"sidebar_movie_creation\":true,\"add_view\":true,\"search\":true,\"viewmode_3d\":true,\"viewmode_MM_spherical\":true,\"viewmode_MM_planar\":true,\"viewmode_oblique_planar\":true,\"viewmode_uas_planar\":true,\"viewmode_MM_photo\":true,\"settings\":true,\"settings_general\":true,\"settings_resource\":true,\"settings_referenceview\":true,\"settings_viewing\":true,\"settings_measuring\":true,\"settings_navigation\":true,\"settings_inspector\":true,\"link_item_label\":\"fdfds\",\"link_item_url\":\"jhkjh\",\"publication_name_hide\":false,\"view_action\":true,\"view_mode\":true,\"view_close\":true,\"about_message\":\"About message.\",\"about_force_ok\":false,\"about_show_on_startup\":false}",
"logo_image": "https://website.org/logo.png",
"logo_type": "publication",
"thumbnail_image": "/api/3/imagecache/AiXoiBFkLf3PLWPleZbUappHd38%3D",
"created_by_user": {
"id": 0
},
"workspace": {
"id": 3,
"name": "Publication workspace",
"configuration": "{\"resourceStates\":[{\"resourceReference\":{\"id\":98},\"imageLegend\":{\"visibility\":true,\"transparency\":0},\"photoLegend\":{\"visibility\":true,\"brightness\":0},\"meshLegend\":{\"visibility\":true,\"transparency\":0,\"clipDistance\":0,\"hideMesh\":true},\"pointCloudLegend\":{\"visibility\":true,\"color\":\"rgb\",\"intensityModulation\":false,\"distanceModulation\":false,\"colorMap\":\"basic\",\"colorFixed\":\"255.100.100.100\",\"hidePoints\":true,\"pointSize\":-1,\"brightness\":0,\"clipDistance\":0,\"rgbAboveIntensityEnabled\":false,\"rgbAboveIntensity\":0.1,\"transparency\":0,\"rampStyle\":\"view\",\"rampRangeOffset\":0,\"rampRangeSize\":1,\"globalMin\":0,\"globalMax\":1,\"eyedomeLighting\":false,\"tresholdEnabled\":false,\"tresholdZ\":0,\"tresholdColor\":\"255.0.0.160\",\"tresholdAboveMode\":1,\"tresholdBelowMode\":2,\"colorAboveZ\":false,\"colorAboveZValue\":0,\"colorAboveZFallback\":\"255.0.0.160\"},\"vectorLegend\":{\"clipDistance\":0,\"depthRendering\":true,\"modifierSets\":[],\"modifiers\":[]},\"globalLegend\":{\"visibility\":true},\"isRecordable\":false,\"isCollapsed\":true,\"attributeHideMap\":{}},{\"resourceReference\":{\"id\":49},\"imageLegend\":{\"visibility\":true,\"transparency\":0},\"photoLegend\":{\"visibility\":true,\"brightness\":0},\"meshLegend\":{\"visibility\":true,\"transparency\":0,\"clipDistance\":0,\"hideMesh\":true},\"pointCloudLegend\":{\"visibility\":true,\"color\":\"rgb\",\"intensityModulation\":false,\"distanceModulation\":false,\"colorMap\":\"basic\",\"colorFixed\":\"255.100.100.100\",\"hidePoints\":true,\"pointSize\":-1,\"brightness\":0,\"clipDistance\":0,\"rgbAboveIntensityEnabled\":false,\"rgbAboveIntensity\":0.1,\"transparency\":0,\"rampStyle\":\"view\",\"rampRangeOffset\":0,\"rampRangeSize\":1,\"globalMin\":0,\"globalMax\":1,\"eyedomeLighting\":false,\"tresholdEnabled\":false,\"tresholdZ\":0,\"tresholdColor\":\"255.0.0.160\",\"tresholdAboveMode\":1,\"tresholdBelowMode\":2,\"colorAboveZ\":false,\"colorAboveZValue\":0,\"colorAboveZFallback\":\"255.0.0.160\"},\"vectorLegend\":{\"clipDistance\":0,\"depthRendering\":true,\"modifierSets\":[],\"modifiers\":[]},\"globalLegend\":{\"visibility\":true},\"isRecordable\":false,\"isCollapsed\":true,\"attributeHideMap\":{}},{\"resourceReference\":{\"id\":203},\"imageLegend\":{\"visibility\":true,\"transparency\":0},\"photoLegend\":{\"visibility\":true,\"brightness\":0},\"meshLegend\":{\"visibility\":true,\"transparency\":0,\"clipDistance\":0,\"hideMesh\":true},\"pointCloudLegend\":{\"visibility\":true,\"color\":\"rgb\",\"intensityModulation\":false,\"distanceModulation\":false,\"colorMap\":\"basic\",\"colorFixed\":\"255.100.100.100\",\"hidePoints\":true,\"pointSize\":-1,\"brightness\":0,\"clipDistance\":0,\"rgbAboveIntensityEnabled\":false,\"rgbAboveIntensity\":0.1,\"transparency\":0,\"rampStyle\":\"view\",\"rampRangeOffset\":0,\"rampRangeSize\":1,\"globalMin\":0,\"globalMax\":1,\"eyedomeLighting\":false,\"tresholdEnabled\":false,\"tresholdZ\":0,\"tresholdColor\":\"255.0.0.160\",\"tresholdAboveMode\":1,\"tresholdBelowMode\":2,\"colorAboveZ\":false,\"colorAboveZValue\":0,\"colorAboveZFallback\":\"255.0.0.160\"},\"globalLegend\":{\"visibility\":true},\"isRecordable\":false,\"isCollapsed\":true,\"attributeHideMap\":{}},{\"resourceReference\":{\"id\":211},\"imageLegend\":{\"visibility\":true,\"transparency\":0},\"photoLegend\":{\"visibility\":true,\"brightness\":0},\"meshLegend\":{\"visibility\":true,\"transparency\":0,\"clipDistance\":0,\"hideMesh\":true},\"pointCloudLegend\":{\"visibility\":true,\"color\":\"rgb\",\"intensityModulation\":false,\"distanceModulation\":false,\"colorMap\":\"basic\",\"colorFixed\":\"255.100.100.100\",\"hidePoints\":true,\"pointSize\":0,\"brightness\":0,\"clipDistance\":0,\"rgbAboveIntensityEnabled\":false,\"rgbAboveIntensity\":0.1,\"transparency\":0,\"rampStyle\":\"view\",\"rampRangeOffset\":0,\"rampRangeSize\":1,\"globalMin\":0,\"globalMax\":1,\"eyedomeLighting\":false,\"tresholdEnabled\":false,\"tresholdZ\":0,\"tresholdColor\":\"255.0.0.160\",\"tresholdAboveMode\":1,\"tresholdBelowMode\":2,\"colorAboveZ\":false,\"colorAboveZValue\":0,\"colorAboveZFallback\":\"255.0.0.160\"},\"vectorLegend\":{\"clipDistance\":0,\"depthRendering\":false,\"modifierSets\":[{\"geometrySpatialType\":1,\"visibility\":true,\"modifiers\":[{\"parameterName\":\"Text.Visibility\",\"defaultValue\":null},{\"parameterName\":\"Outline.Visibility\",\"defaultValue\":\"1\"},{\"parameterName\":\"Outline.Color\",\"defaultValue\":\"255.0.255.0\"},{\"parameterName\":\"Outline.Transparency\",\"defaultValue\":\"1\"},{\"parameterName\":\"Outline.Width\",\"defaultValue\":\"2\"}]},{\"geometrySpatialType\":0,\"visibility\":true,\"modifiers\":[{\"parameterName\":\"Symbol.OutlineColor\",\"defaultValue\":null},{\"parameterName\":\"Symbol.FillColor\",\"defaultValue\":null}]},{\"geometrySpatialType\":2,\"visibility\":true,\"modifiers\":[]}],\"modifiers\":[]},\"globalLegend\":{\"visibility\":true},\"isRecordable\":false,\"isCollapsed\":false,\"attributeHideMap\":{}},{\"resourceReference\":{\"id\":187},\"imageLegend\":{\"visibility\":true,\"transparency\":0},\"photoLegend\":{\"visibility\":true,\"brightness\":0},\"meshLegend\":{\"visibility\":true,\"transparency\":0,\"clipDistance\":0,\"hideMesh\":true},\"pointCloudLegend\":{\"visibility\":true,\"color\":\"rgb\",\"intensityModulation\":false,\"distanceModulation\":false,\"colorMap\":\"basic\",\"colorFixed\":\"255.100.100.100\",\"hidePoints\":true,\"pointSize\":0,\"brightness\":0,\"clipDistance\":0,\"rgbAboveIntensityEnabled\":false,\"rgbAboveIntensity\":0.1,\"transparency\":0,\"rampStyle\":\"view\",\"rampRangeOffset\":0,\"rampRangeSize\":1,\"globalMin\":0,\"globalMax\":1,\"eyedomeLighting\":false,\"tresholdEnabled\":false,\"tresholdZ\":0,\"tresholdColor\":\"255.0.0.160\",\"tresholdAboveMode\":1,\"tresholdBelowMode\":2,\"colorAboveZ\":false,\"colorAboveZValue\":0,\"colorAboveZFallback\":\"255.0.0.160\"},\"globalLegend\":{\"visibility\":true},\"isRecordable\":false,\"isCollapsed\":false,\"attributeHideMap\":{}}],\"viewerStates\":[{\"viewerId\":\"basemap\",\"viewState\":{\"viewPosition\":{\"x\":318094.87750000006,\"y\":5090372.889,\"z\":5145.366},\"viewCRS\":\"32633\",\"viewPositionWGS\":{\"x\":12.653180715568809,\"y\":45.94282428182222,\"z\":5145.366}},\"renderMode\":\"2d\",\"photoId\":null,\"viewScale2D\":0.00011926504156616306,\"groundHeight\":77.7710438801478},{\"viewerId\":\"2\",\"viewState\":{\"viewPosition\":{\"x\":318071.7622217525,\"y\":5090317.785379125,\"z\":100.55279311522976},\"viewCRS\":\"32633\",\"viewPositionWGS\":{\"x\":12.652903673181171,\"y\":45.942322619297386,\"z\":100.55279311522976},\"viewPan\":8.800000032551281,\"viewTilt\":-30.599999954926087,\"viewFOV\":90,\"viewRoll\":-3.2654913936739974e-9},\"renderMode\":\"3d\",\"photoId\":\"[CameraName:planar1][ResourceId:16]51\",\"viewProjectionOffset\":{\"x\":5,\"y\":49,\"z\":0},\"viewPixelSize\":0.0010974266326920167,\"groundHeight\":77.7710438801478}],\"viewerLayout\":{\"name\":\"layout:top:horizontal\",\"list\":[{\"__type__\":\"List\",\"model\":{\"type\":\"vertical\",\"margin\":5,\"elements\":[{\"sizePercent\":30,\"content\":{\"__type__\":\"Viewer\",\"model\":{\"id\":\"basemap\",\"type\":\"2d\",\"reference\":true,\"external\":false,\"maximized\":false}}},{\"sizePercent\":70,\"content\":{\"__type__\":\"ViewerList\",\"model\":{\"direction\":\"right\",\"maxSize\":4,\"margin\":5,\"viewers\":[{\"id\":\"2\",\"reference\":false,\"external\":false,\"maximized\":false}]}}}]}}]},\"basemapResources\":[],\"mobileCoverageLegendDefaults\":{},\"backdropColor\":\"25.71.125\",\"displayMeshOnImage\":false,\"displayPointCloudOnImage\":false,\"displayVectorsOnReference\":true,\"displayPointCloudsOnReference\":true,\"clipPointCloudsOnReference\":false,\"displayImagesOnReference\":true,\"displayMeshesOnReference\":true,\"displayAnnotationsOnReference\":true,\"displayViewingDirectionLabel\":false,\"displayResourceType\":true,\"synchronizeViews\":true,\"synchronizeViewsFromReference\":false,\"synchronizeReferenceFromViews\":false,\"allowResourceVisibilityByView\":false,\"invertZoomDirection\":false,\"invertTiltDirection\":false,\"preventGroundIntersect\":false,\"allowOverzoom\":true,\"measureDisplayCRS\":\"3857\",\"measureDisplayUnit\":\"foot\",\"measureAutoSave\":false,\"measureAutoCopy\":false,\"stereoMode3D\":0,\"lockZ\":false,\"zoomMin\":0.5,\"zoomMax\":1,\"zoomMaxEnabled\":false,\"displayBasemapOn3D\":true,\"focusDistance3D\":20,\"drapeTerrainModel\":true,\"planarRotateNorth\":\"auto\",\"planarOpenNearby\":\"auto\",\"playFunctionMode\":1,\"playFunctionQuality\":0,\"playFunctionLoop\":true,\"enableMoveView\":true,\"enableViewMetadata\":true,\"enablePlayFunction\":true,\"enableViewBrightness\":true,\"enableNextPreviousImageBySequence\":true,\"enableNextPreviousImageByRelevance\":true,\"enableRotateInPhotoGroup\":true,\"enableRotateOblique\":true,\"enableMaximize\":true,\"enableDownload\":true,\"enableFocusToView\":true,\"enableVideoPlayer\":true,\"enableTilt3DViewNadir\":true,\"enableTilt3DViewOblique\":true,\"enableTilt3DViewZenith\":true,\"enableReport\":true,\"enableOpenResources\":false,\"viewActionLockRight\":[\"enableReport\"],\"showNearbyPhotos\":true,\"enableDisplayTimestamp\":true,\"enableDisplayPhotoID\":true,\"enableDisplayResourceName\":true,\"enableDisplayLRefDistance\":true,\"enableFloors\":false,\"floorsUseResourceGroupChildren\":false,\"isFloorsListingFromResources\":true,\"enableTimeline\":false,\"timelineUseResourceGroupChildren\":true,\"timelineMode\":\"workspace\",\"timelineGroupMode\":\"month\",\"timelineSpacingMode\":\"absolute\",\"timelinePresentation\":\"slider\",\"enableMultipleBasemaps\":true,\"quickSetting1\":\"displayBasemapOn3D\",\"quickSetting2\":\"displayPointCloudOnImage\",\"photoPointCloudTimeRange\":0,\"showNearbyPhotosInStreetlevelPhotoView\":true,\"showPixelDetectionAnnotations\":true,\"showPixelDetectionAnnotationTags\":true,\"imageSegmentationVisible\":true,\"groundHeight\":77.7710438801478,\"activeTime\":null,\"focusPosition\":{\"x\":12.652964820251372,\"y\":45.94266722980311,\"z\":77.7710438801478},\"focusCRS\":\"4326\",\"showFocusPosition\":true,\"showCenterIndicator\":false,\"showHoverPosition\":true,\"showSliceOnViews\":true,\"applySliceOnViews\":false,\"showMeasurementsOnSlice\":false,\"selectionVisible\":true,\"selectionColor\":\"255.255.0.0\",\"selectionFocus\":\"255.0.0.255\",\"searchAutofocus\":true,\"searchExactMatch\":true,\"searchIncludeMapping\":true,\"inspectorMode\":\"search\",\"inspectorResource\":null,\"inspectorAttribute\":null,\"sidebarMode\":2,\"sidebarPosition\":\"left\",\"sidebarPanel\":\"bookmark\",\"viewToolsPosition\":\"center\",\"quickSettingsPosition\":\"sidebar\",\"photoMaxSearchDistanceStreetlevelSpherical\":422,\"viewDepthStreetlevel\":100,\"viewDepthStreetlevelPlanar\":100,\"viewDepthStreetlevelSpherical\":100,\"viewDepthUAV\":500,\"viewDepthOblique\":1000,\"annotationViewDepth\":0,\"planarObliqueSortingMethod\":1,\"planarUAVSortingMethod\":3,\"planarStreetlevelSortingMethod\":3,\"sphericalStreetlevelSortingMethod\":3,\"photoSearchCenter\":\"focus\",\"photoSearchCenterStreetlevelPlanar\":\"focus\",\"photoSearchCenterStreetlevelSpherical\":\"focus\",\"photoSearchCenterUAV\":\"focus\",\"photoSearchCenterOblique\":\"focus\",\"photoSearchDimensions\":\"3d\",\"photoSearchDimensionsStreetlevelPlanar\":\"2d\",\"photoSearchDimensionsStreetlevelSpherical\":\"3d\",\"photoSearchDimensionsUAV\":\"3d\",\"photoSearchDimensionsOblique\":\"3d\",\"searchLineOfSightOblique\":true,\"searchLineOfSightUAV\":true,\"searchLineOfSightStreetlevelPlanar\":true,\"searchLineOfSightStreetlevelSpherical\":false,\"searchImageCenterRangeStreetlevelPlanar\":0.6,\"searchImageCenterRangeUAV\":0.6,\"searchImageCenterRangeOblique\":0.6,\"enableCursor\":false,\"cursorShowUsedPoints\":false,\"cursorShowRadius\":false,\"cursorTransparency\":0.6,\"cursorMinPointCount\":5,\"measureTechnique\":9,\"measureMinSize\":5,\"measureMaxSize\":25,\"measureClusterGapSize\":0.1,\"measureSnapToRidgeOrCorner\":false,\"measureExportsLabelOption\":0,\"searchMode\":\"lref\",\"searchOpenPhoto\":true,\"leftDragAction\":null,\"middleDragAction\":null,\"rightDragAction\":null,\"styleName\":\"system\",\"styleHighlight\":\"green\",\"openSphericalPhotoPanMode\":\"relative\",\"useReferenceFocus\":false,\"referenceFocusScale\":50000}",
"workspace_resource": [
{
"resource": {
"id": 203
},
"role": "basemap",
"order": 0
},
{
"resource": {
"id": 60
},
"role": "lref",
"order": 0
},
{
"resource": {
"id": 187
},
"role": "workspace",
"order": 0
}
]
},
"tags": "[\"test\"]",
"is_wfs": 1,
"is_wfst": 1,
"is_wms": 1,
"publication_permission": [
{
"scope": "usergroup",
"usergroup": {
"id": 2
}
},
{
"scope": "user",
"user": {
"id": 25
}
}
]
},
...
]
===== Operation: Update Publication =====
=== Discussion ===
This operation updates a publication declaration, but not the underlying workspace. Use the [[#Operation: Update Workspace]] operation for that.\\ The following fields can be updated:
* name
* description
* configuration
* concurrent_use_min
* concurrent_use_max
* user_mode
* thumbnail_image
* logo_url
* logo_type
* tags
* is_wfs
* is_wfst
* is_wms
* publication_permission
Fields: [[#Model: Publication]]
=== Request ===
''POST'' ''/api/3/publication/123''
{
"name": "Test2",
"publication_permission": [
{
"scope": "usergroup",
"usergroup": {
"id": 25
}
}
]
}
=== Example Response (http 200) ===
On success, returns the full updated publication.\\
__Don't rely on this, this operation will return an empty response in the future (and http code 204).__
=== Example Response (http 400) ===
{
"code": "field_not_unique",
"message": "Uniqueness check failed: Another item with this name value 'test' already exists.",
}
===== Operation: Duplicate Publication =====
=== Discussion ===
This operation creates a new publication by duplicating an existing one.
=== Request ===
''POST'' ''/api/3/publication/123/duplicate''
=== Response (http 200) ===
Returns the full duplicated publication.
===== Operation: Delete Publication =====
=== Discussion ===
This operation deletes an existing publication (and workspace).
=== Request ===
''DELETE'' ''/api/3/publication/123''
=== Example Response (http 204) ===
//No content//
=== Example Response (http 404) ===
{
"code": "not_found",
"message": "Publication with id '123' was not found."
}
===== Operation: Update Workspace=====
=== Discussion ===
This operation updates a workspace declaration.
* A Workspace cannot be create or deleted, it is always part of a Publication.
The following fields can be updated:
* configuration
* workspace_resource
Fields: [[#Model: Workspace]]
=== Request ===
''POST'' ''/api/3/workspace/123''
{
"workspace_resource": [
{
"order": 0,
"role": "workspace",
"resource": {
"id": 25
}
}
]
}
=== Example Response (http 200) ===
//No content//
=== Example Response (http 404) ===
{
"code": "not_found",
"message": "Workspace with id '123' was not found.",
}