{"name": "GeoDeploy", "package_name": "geodeploy_qgis", "version": "0.3.4", "experimental": true, "qgis_min": "3.28.0", "qgis_max": "3.99.0", "downloads": 18, "uploaded_by": "bravemaster3", "upload_datetime": "2026-08-18T02:26:00.567990", "changelog": "0.3.4 - The plugin wears the GeoDeploy logo instead of a placeholder circle, six\nQDialogButtonBox enums missed by the first Qt6 pass are scoped (the scope belongs to the class\nyou are calling, and that one is not QMessageBox), and a handful of unused imports and an\nambiguous variable name are gone.\n0.3.3 - Ready for QGIS 4. Qt6 only reaches an enum member through its scope\n(Qt.PenStyle.NoPen, not Qt.NoPen), so every one of the 94 places this plugin read an enum now\ngoes through a small resolver that asks for the scoped name and falls back to the flat one -\nwhich keeps QGIS 3.28 working exactly as before. Dialogs call exec() rather than the removed\nexec_(). No behaviour changes on QGIS 3.\n0.3.2 - The 0.3.1 security declarations are applied inline instead of in a bundled\n.bandit file. plugins.qgis.org runs bandit with an explicit list of tests, and a config file\nthat skips any of them makes bandit abort without scanning anything - which is what the 0.3.1\nscan report showed. Same declarations, same fixes, now honoured.\n0.3.1 - Security-scan round. Two findings pointed at real weaknesses and were fixed\nrather than waved through: every URL the plugin opens is now checked to be http or https before\nit is opened - it follows links that come BACK from an instance, so a hostile one could\notherwise have pointed it at a local file - and a WMTS capabilities document that declares XML\nentities is refused outright, which removes the entity-expansion class of attack without adding\na dependency a QGIS plugin cannot have. The remaining findings are deliberate and are declared,\nwith reasons, in a bundled .bandit config.\n0.3.0 - First public release. Browse a GeoDeploy instance (no account needed for public\ndata), add a layer using the fastest source it offers, open a whole portal as a styled QGIS\ngroup, and upload back - including multi-gigabyte files. Styling travels BOTH WAYS: single\nsymbol, graduated and categorized vectors; colormap, stretch, band, hillshade, contours and\ncolour-per-value rasters; size-from-a-field; marker shape, stroke colour and width; a polygon's\noutline width. A layer opens looking like the portal, and what you change goes home.\nWhich renderer QGIS offers depends on the SOURCE, so a per-layer Source picker and a\n\"Restyle this layer...\" button get you onto the surface that can actually be restyled. A PostGIS\nlayer opens over OGC API - Features, ready to classify by a field; tiled GeoParquet keeps its\ntiles. A portal opens either as it draws it, or editable - every layer from its own data with\nthe portal's styling painted on - so a portal's layers restyle exactly like single ones.\nKNOWN LIMITATION: a layer's 3D extrusion is carried safely (opening one and pushing it back\ndoes not remove it) but is NOT yet drawn in QGIS's 3D view, so 3D cannot be edited here.\n0.2.1 - A polygon's outline WIDTH now travels, which was the one property that could\nnot: GeoDeploy draws a fill's edge as a real line layer now, so the number means something.\n0.2.0 - First public release. Browse a GeoDeploy instance (no account needed for public\ndata), add a layer using the fastest source it offers, open a whole portal as a styled QGIS\ngroup, and upload back - including multi-gigabyte files. Styling travels BOTH WAYS for every\nlayer type: single symbol, graduated and categorized vectors; colormap, stretch, band, hillshade,\ncontours and colour-per-value rasters; 3D extrusion for polygons and points; size-from-a-field;\nmarker shape and stroke. A layer opens looking like the portal, and what you change goes home.\nWhich renderer QGIS offers depends on the SOURCE, so a per-layer Source picker and a\n\"Restyle this layer...\" button get you onto the surface that can actually be restyled. A PostGIS\nlayer opens over OGC API - Features, ready to classify by a field; tiled GeoParquet keeps its\ntiles. A portal opens either as it draws it, or editable - every layer from its own data with\nthe portal's styling painted on - so a portal's layers restyle exactly like single ones.\n0.1.15 - A classified raster's stretch is no longer compared. GeoDeploy does not\napply a stretch to a colour-per-value palette - the classes are matched on raw pixel values, and\na stretch would change the very numbers they key on - so a stretch sitting beside one is not a\nvisible difference and must not report the layer as restyled.\n0.1.14 - Class LABELS now travel with a classified raster. \"Water\" and \"Trees\" are\nthe whole point of a classification, and the reader only carried the value and the colour - so\npushing a land-cover raster back from QGIS replaced its classes with unlabelled ones and every\nlegend fell back to bare numbers. A class QGIS labelled with its own value still counts as\nunlabelled, so a raster whose classes were never named does not report as edited.\n0.1.13 - Raster symbology is editable, 3D extrusion travels both ways, and contour\nlines round-trip. Why a raster offered nothing to change: QGIS picks its renderer from the layer\nTYPE, and server-rendered tiles arrive as one band of RGBA - \"Singleband color data\", no bands,\nno classes. Vector tiles are the same shape of limit: no categorized or graduated renderer at\nall. Opening the data instead used to cost you GeoDeploy's colours; now the GeoTIFF opens WITH\nits colormap, stretch, band and classification applied, so you can classify it and send it back.\nA per-layer Source picker replaces the old global checkbox, and a new \"Restyle this layer...\"\nbutton reopens whatever is selected from its data, in place, keeping the styling it has. For a\nportal's raster that styling is read out of the portal's own tile URL, so you restyle what the\nportal shows rather than the layer's default. 3D EXTRUSION now applies and reads back for\npolygons and points - heights from a field, fixed heights, bases, colours, and a point pillar's\nfootprint - and what QGIS cannot express is preserved rather than flattened by the next push.\nContour styling is carried the same way. Nothing is slower: the default source is unchanged.\n0.1.12 - Rasters can finally be restyled, and every symbol property now travels. A\nraster's real bands come from its GeoTIFF, and that file was refused unless the layer was shared\npublicly - so for a private raster there was no way to restyle it at all. It is now readable by\nanyone who may see the layer, and the plugin gives GDAL the token (scoped to your instance) so\n/vsicurl/ can use it. Tick \"Prefer the real data over the styled view\", restyle, then \"Save\nstyling to GeoDeploy\". Marker outline WIDTH and shape, and size-by-field, are now applied and read\nback like everything else, and a push no longer deletes styling QGIS cannot draw (3D extrusion,\nimported paint, popup fields) - it updates what it understands and leaves the rest.\n0.1.11 - Change detection is right in both directions. Changing only a symbol's STROKE\n(or its marker shape) is now noticed - before, only the fill was read, so a stroke-only edit came\nback byte-identical and reported \"unchanged\". And opening a portal and pushing it straight back no\nlonger reports every layer as restyled: a style read out of QGIS is always complete while a stored\none holds only what you chose, so the two are now compared through the same defaults. A raster\ndrawn from server tiles still cannot be restyled in QGIS - the checkbox that opens the real\nGeoTIFF now says so on its label, and the explanation is logged as information rather than as\nthree warnings that look like failures.\n0.1.10 - Restyling a POINT layer and pushing it back now registers. QGIS's vector-tile\nsymbology editor keeps one style per geometry type - polygons, lines, points - and the plugin read\nthe first of them, so a changed marker came back as the untouched polygon colour: identical to the\nold style, so \"Push group to portal\" saw no change and \"Save styling to GeoDeploy\" appeared to do\nnothing. The layer's geometry is now recorded when it is added and used to pick the right one.\n0.1.9 - \"Open in GeoDeploy\" now opens a PORTAL in the editor rather than repeating what\n\"Open portal in browser\" already does, and the actions that need a token (push a group, upload,\nsave styling, edit a portal) are disabled with the reason in their tooltip until you connect with\none. A public layer's page opens for anyone, with the map, the extent and the share links, and\nwithout any of the buttons that would need an account.\n0.1.8 - Restyling a layer inside a portal group and pushing it back now works. A portal's\nlayers open as TILES, and QGIS renders those through a different renderer than a normal vector\nlayer - so the styling was read from the wrong place and nothing was sent. It is now read back\nproperly, classes and all. A raster opened from portal tiles has no bands to restyle (\"Singleband\ncolor data\"), so its portal styling is now LEFT ALONE instead of being replaced with nothing -\nwhich used to wipe the colormap. To restyle a raster, tick \"Prefer the real data over the styled\nview\", restyle that, and use \"Save styling to GeoDeploy\". Also fixes marker size and line width\nchanging slightly every time a layer was pushed back.\n0.1.7 - New \"Open in GeoDeploy\" button: opens the selected layer's page on the instance\nin your browser - map, metadata, fields, extent and every share link. Works without an account\nfor a public layer; a private one asks you to sign in there.\n0.1.6 - A portal now opens the same way whether or not you are signed in. The API's portal\ndocument does not carry a layer's source, geometry or name - only the published style does - so\nevery fix in 0.1.5 covered the signed-out path alone: with a token, rasters still opened in the\nlayer's default colours and 3D layers were drawn from the wrong tiles. The two are now merged.\n0.1.5 - Fixes layers drawn with the wrong kind of symbol. A vector-tile style is bound to\nONE geometry type, and the plugin was falling back to \"point\" whenever it could not tell - so\npolygons and lines arrived as a dot at every vertex, or did not draw at all. The geometry is now\nread from the portal's own published style (and from how the layer is DRAWN, so 3D layers work\ntoo); where it is genuinely unknown, every geometry type gets a symbol instead of one being\nguessed. A portal's own tiles are also no longer swapped for the layer's when the two differ.\n0.1.4 - Opening a portal is much faster and looks like the portal. Layers are styled\nbefore they join the map instead of after (one redraw each, not two), the canvas is frozen while\na group is assembled (one redraw for the whole portal, not one per layer), and the documents\nthat describe a layer are fetched once and reused - in the background thread, not between\nlayers. A portal opened WITHOUT an account now uses the portal's own colours, width, outline and\ntransparency rather than each layer's default style, and no longer loses a layer when a vector\nand a raster share an id. Polygons are drawn at the map's 0.45 fill opacity, lines at its default width.\n0.1.3 - A raster opened as part of a portal is drawn the way THAT portal draws it, not\nin the layer's default style - the portal bakes its colormap, stretch and hillshade into its own\ntile URL, and the same raster can look different in two portals. Layer opacity now travels in as\nwell as out, so a half-transparent overlay opens half-transparent.\n0.1.2 - Points are drawn at the size and colour the map draws them. A layer whose style\nnames a colour but no radius kept QGIS's default marker number under our points unit - a third\nof the intended size - under QGIS's dark default outline, so styled point layers arrived as\ntiny black dots. They now take the portal's own defaults: radius 5, white 1px stroke.\n0.1.1 - Vector layers are added through their TileJSON, so QGIS asks only for tiles that\nexist: no more requests past the deepest real zoom, and \"Zoom to layer\" lands on the layer. A\nPMTiles archive is no longer opened whole (GDAL reads every tile at the deepest zoom to answer\na feature count). Vector-tile layers now carry the layer's real symbology - graduated and\ncategorized classes, not just a base colour. Portal groups show the portal's title.\n0.1.0 - First release: browse an instance (public data without an account), add vector and\nraster layers, upload the active layer.", "external_deps": "", "download_url": "https://plugins.qgis.org/plugins/geodeploy_qgis/version/0.3.4/download/"}