3DM Publisher Admin API - Publication Management
This page describes the publication management API's for 3DM Publisher.
Please familiarize yourself with the basics first before continuing.
Table of Contents
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 logopublication 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 | 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 | 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 | * | 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.", }