====== 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.", }