Skip to content

v1.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Oct 11:20
7f7f5aa

1.6.0 (2026-10-22)

Features

  • add BulkEditAction for dynamic bulk edits (3d10f84)
  • add BulkEditAction for dynamic bulk edits OC:8133 (#233) (3d10f84)
  • add Layer component copying feature OC:7642 (#218) (6427643)
  • add super-admin email gating and new actions OC:7911_7912 (#217) (dec14bb)
  • analytics: ✨ add PostHog analytics integration for Nova (2fa4ef1)
  • auth: ✨ add exceptions for unit tests and API logins in Nova access enforcement (7aa3f8b)
  • command: ✨ add config option to wm:backup-run command (45df1ba)
  • command: ✨ add WmSyncUgcTaxonomyWhereCommand for UGC taxonomy synchronization oc:7377 (#215) (5ba9039)
  • config: ✨ add 'from' and 'to' fields to wm-elasticsearch configuration (#214) (fd77c39)
  • config: ✨ add supervisor-dem configuration to wm-horizon (d14655a)
  • config: ✨ update AWS configuration with environment variables (77a4cde)
  • extend BulkEditAction default exclusions OC:8133 (3d10f84)
  • geojson-upload: ✨ add GeoJSON file upload to FeatureCollection OC:8175 (#238) (cb61dc2)
  • localization: ✨ add minimum app version strings in English and Italian oc:7824 (#212) (476541b)
  • localization: 🌐 add new tile layer selection description OC:7806 (#211) (92b6464)
  • migrations: gate publish-missing-migrations con confronto schema DB oc:8218 (9c10952)
  • migrations: gate publish-missing-migrations con confronto schema DB oc:8218 (9c10952)
  • migrations: gate publish-missing-migrations con confronto schema DB oc:8218 (b8419ed)
  • nova: ✨ add role modification capability in Nova user resource OC:8072 (#228) (6e4e83b)
  • nova: disable geolocation field when auth_show_at_startup is off OC:7852 (#227) (320120e)
  • observer: ✨ oc:7641 add layer association to new UGC models (2a709e7)
  • oc:7546: builder traduzioni App (#248) (e33260c)
  • oc:7645: add use_image_as_icon to EC POI related map display (fc7ab80)
  • oc:7648: add dynamic range support to AnalyticsService with per-range cache and TTL (ba9a255)
  • oc:7648: add range selector dropdown and per-track download table to LayerAnalyticsCard (441f3b2)
  • oc:7648: Analytics Layer — selezione range temporale + download per traccia (2e528ca)
  • oc:7648: AnalyticsController reads and validates ?days/?month query params (e2c44ea)
  • oc:7648: merge develop into feature branch — resolve conflicts keeping range support (5474f5a)
  • oc:7648: pass tracking_since prop from LayerAnalyticsCard (bbe917a)
  • oc:7756: add BboxField standalone Nova component for bounding box (#223) (fb3c055)
  • oc:8014: add ImportTaxonomyThemeJob and TaxonomyTheme Nova resource (#225) (0f775ff)
  • oc:8079: expose resolveLayerByProximity publicly and make search distance configurable via env (91f44d6)
  • oc:8079: merge auto-assign layer_id on UGC reports (efe029d)
  • oc:8139: auto-associate EcPoi to layer via track relation (#234) (c9f1081)
  • oc:8158: import UGC (POI, Track, Media) e autori da GeoHub (#262) (9fd3659)
  • oc:8160: move Geometry to dedicated Map panel and show EcPoi on layer map (#237) (a94a634)
  • oc:8161: block web login for users without access-nova permission (b969a89)
  • oc:8163: cognome obbligatorio in fase di registrazione (798ead3)
  • oc:8165: origine della traccia UGC e limite sui tratti dritti lunghi (46a3d68)
  • oc:8165: origine della traccia UGC e limite sui tratti dritti lunghi (3c389b9)
  • oc:8231: add Nova impersonate with role-based authorization (#242) (4c833cd)
  • oc:8239: move OSM EcPoi import from Maphub into wm-package (#244) (818a6dd)
  • oc:8241: add Poi/Track horizontal scroll box with custom search field (#246) (65107c3)
  • oc:8242: export token middleware (WM_EXPORT_TOKEN, 403 se assente, 401 se errato) (d045378)
  • oc:8242: versioned apps export endpoint /api/v1/export/apps (v1 contract) (991da81)
  • oc:8247: validate minimum icon/splash dimensions on upload (#245) (4d8fdd8)
  • oc:8272: add Logo Nova field with png/webp and square ratio validation (798ead3)
  • oc:8303: add static translatable description field to EcPoi/EcTrack (#251) (5f44215)
  • oc:8333: applica throttle al login API (#268) (c83c26e)
  • oc:8486: due modali per la selezione where da GeoHub (#273) (f30c5d0)
  • oc:8486: import TaxonomyWhere da GeoHub per una data app (#272) (48b8905)
  • oc:8487: generalizza sync taxonomy_where a EcTrack e EcPoi (#275) (7650b42)
  • oc:8489: apre la creazione d'ufficio dell'istanza con upload della geometria (d1292f6)
  • oc:8489: dominio trail_registry — registro dei codici REI, istanze e anomalie (#8489) (76515a2)
  • oc:8489: il registro si apre sui codici più recenti, la ricerca resta in ordine (867b286)
  • oc:8492: domini opzionali — stub di migration e feature opt-in (#270) (bee0ff6)
  • oc:8539: dominio Catasto Sentieri estendibile dagli shard (#288) (318a8dc)
  • oc:8540: chiave via (meta intermedia) nelle properties del sentiero (#293) (fbae771)
  • oc:8543: inversione del verso della traccia (#278) (92ffb90)
  • oc:8567: motivazione del respingimento e azioni solo dal dettaglio dell'istanza (#292) (bdd9c05)
  • oc:8568: sentieri vicini con numero e variante nella mappa del registro (#279) (2f056e3)
  • oc:8569: sostituzione del numero dall'istanza, con la variante (b86d998)
  • oc:8570: il numero proposto continua la numerazione dei sentieri vicini (#281) (d62e774)
  • oc:8571: DEM, valori manuali e mappa del codice sull'istanza (#284) (631a294)
  • oc:8585: aggrega e mostra l'uso dei filtri avanzati (route) in Analytics (#280) (546c1f1)
  • oc:8588: località mostrate per App e formato unico di taxonomy_where (#285) (54a3810)
  • oc:8637: nome utente sul marker live attivabile per shard (#286) (e9f16ec)
  • oc:8660: DEM mancante ricalcolato all'apertura del dettaglio anche per EcTrack (#289) (9d4beaa)
  • oc:8700: Catasto visibile solo ad Administrator ed Editor (#294) (e299404)
  • oc:8702: renderer della mappa a più layer per le immagini di condivisione (#298) (ea3eaa6)
  • oc:8703: etichette di testo facoltative in MapRenderService::renderLayers (#301) (b6572eb)
  • oc:8719: pulizia automatica dei punti GPS errati nelle tracce UGC (#300) (5b40269)
  • oc:8742: dati tecnici delle UgcTrack calcolati dal server (properties.stats) (c082374)
  • oc:8742: dati tecnici delle UgcTrack calcolati dal server in properties.stats (295ad87)
  • oc:8747: mappa Nova delle UgcTrack con i cammini dell'App nella zona (e29863a)
  • oc:8747: mappa Nova delle UgcTrack con i cammini dell'App nella zona (29d77ca)
  • oc:8747: origine della UgcTrack in Nova (registrata o file importato) (6ed3ce4)
  • oc:8747: origine della UgcTrack in Nova (registrata o file importato) (b28c750)
  • oc:8773: corrispondenza UGC track ↔ EC track per segmenti (5350b45)
  • oc:8773: corrispondenza UGC track ↔ EC track per segmenti (1d91184)
  • oc:8776: mappa della UGC track leggibile, tracce e tappe sovrapposte (a285f7a)
  • oc:8776: mappa della UGC track leggibile, tracce e tappe sovrapposte (8b4b4f9)
  • oc:8803: link unico dell'App con QR code verso store, app e webapp (#311) (77d79ee)
  • tiles: ✨ add tiles and app_tile migration, model, and Nova resource oc:7657 (#207) (78fa887)

Bug Fixes

  • AppTiles: 🔧 update tile URL for improved resource access (c4f1a55)
  • config: 🐛 resolve URL fallback logic for wmfeUrl OC:7896 (#216) (6f6bdb7)
  • config: 🛠️ add visibility setting to wm-s3 filesystem (6547351)
  • GeometryComputationService: rollback esplicito su errore SQL in geometryModelToBbox (60f88f4)
  • nova: required(false) su config_detail per evitare crash creation/update-fields (e5aa1c4)
  • nova: update SKU field validation rules (e456df8)
  • oc:7645: move show_image_on_map field next to image in Nova index (b2d3299)
  • oc:7645: resolve show_image_on_map into feature_image, remove from properties (5df0e0f)
  • oc:7953: 🐛 add missing options to POI Search In multiselect OC:7953 (#220) (e062019)
  • oc:7953: 🔧 update wm-package pointer (e062019)
  • oc:7984: 🐛 use classifyField for DEM fields in EcTrackExcelExporter OC:7984 (#219) (caed72d)
  • oc:8013: use entityId instead of model->id in getTaxonomyMorphableRecords call (#224) (bcac90b)
  • oc:8041: use geohub_id from model properties in processDependencies (#232) (01ff3f6)
  • oc:8042: resolve role assignment errors (1d1dc8e)
  • oc:8063: sync properties['name'] from getTranslations in EcPoiRowProcessor (#226) (b919276)
  • oc:8089: add novaPath prop to LayerFeatures field for correct eye-link URL (60ee095)
  • oc:8089: merge fix/oc-8089-fix-ui-layer-owner into oc_561 (073260c)
  • oc:8093: recompile FeatureCollectionMap dist to remove spurious inline-geojson prop (3377f58)
  • oc:8094: fix race condition on taxonomy pivot sync + scope taxonomy import (#263) (15c49fd)
  • oc:8140: skip updateLayersProperty when layer has no filters or manual models (#235) (f72224d)
  • oc:8158: carry over Geohub's raw properties/raw_data/metadata for UGC (9fd3659)
  • oc:8158: decode Geohub's jsonb properties before User::create() (9fd3659)
  • oc:8158: merge Geohub properties flat instead of nesting/raw_data (9fd3659)
  • oc:8158: normalize properties.app_id on imported UGC to the local app id (9fd3659)
  • oc:8162: permessi Nova ruolo Editor — scoping per-app EC/UGC (#265) (23c4b5e)
  • oc:8242: author() relation used implicit author_id FK instead of user_id (915f9c5)
  • oc:8314: persisti modalita auto/manuale del layer lato backend (4c01c9a)
  • oc:8314: persisti modalita auto/manuale del layer lato backend (d289162)
  • oc:8463: escludi chiavi interne dichiarate dal consumer da config.json e layer() (#277) (489260d)
  • oc:8469: identifier per TaxonomyWhere derivato dalla sorgente (#266) (b6ddbda)
  • oc:8489: le voci dichiarate dal consumer non spariscono più dal menu (b39b6a4)
  • oc:8586: rimuovi nome utente reale e link dal marker live sulla mappa (#283) (4b9b281)
  • oc:8590: punta l'embed wm-layer-map al repo mantenuto wm-elements (#282) (2bf3491)
  • oc:8662: numero del codice in esame, segnavia CAI e profilo sulla mappa del catasto (3ce9b57)
  • oc:8662: settore davanti al numero sui segnavia della mappa del catasto (a685012)
  • oc:8672: chiavi di traduzione in inglese nel Catasto Sentieri (#296) (0f2cf63)
  • oc:8679: import Geohub converte related_url di POI e tracce, logica condivisa in un trait (#299) (ef5cd39)
  • oc:8681: la ricerca restituisce il nome delle tracce in tutte le lingue (5de6413)
  • oc:8718: UGC duplicati per uuid, store idempotente e normalizzazione (#302) (1dd52b3)
  • oc:8773: supervisor-ugc-track-matching in tutti gli ambienti di Horizon (d67cdbd)
  • oc:8773: supervisor-ugc-track-matching in tutti gli ambienti di Horizon (4b3c535)
  • ricarica geometry corretta per i settori OSM2CAI (#267) (3382e6e)
  • taxonomy: generate identifier from name if empty, fix uniqueness check (02479f7)
  • typo: 🐛 correct misspellings of 'searchable' in method and tab name OC:7833 (#213) (6028446)
  • use default cache store in BuildAppPoisGeojsonJob uniqueVia (e9c717d)

Reverts

  • restore Cache::store('redis') in BuildAppPoisGeojsonJob uniqueVia (c51048a)

Miscellaneous Chores

  • add translations and labels for Activity, POI Type, Theme, and Where resources (d5130ec)
  • dependencies: 🔄 update marshmallow/nova-tiptap version constraint (ff34028)
  • dependencies: 🔧 update illuminate/contracts and laravel/sanctum version constraints (d2418b3)
  • file di build generati dai test fuori dall'indice (#290) (f46e5e1)
  • oc:7648: add package-lock.json for LayerAnalytics card (9acdec2)