Skip to content

Commit 7c485d1

Browse files
tariqksolimanjtrobertsac-61jl-0claude
authored
#699 Incorporate planetcantile into TiTiler (#748)
* #699 planetcantile p1 * #699 Add planetcantile * #699 Add untested EPSG:3413 TileMatrixSet * #699 Update Feature Branch (#747) * Use PolyMeasure to draw great circle lines with Measure Tool * Round meters to two digits on Measure tool x-axis * Added option to not display PolylineMeasure tooltips * Fix bug with noDataValue for single banded COGs (#700) * Fixed issue where rubberline is not drawn with first click or after zoom * Fix critical security vulnerabilities identified in SonarQube analysis (#701) * Fix critical security vulnerabilities identified in SonarQube analysis This commit addresses 8 legitimate security vulnerabilities while documenting 13 false positives that had adequate existing protections. Security fixes implemented: **Path Injection Vulnerabilities (3 issues fixed):** - middleware.js: Added URL validation requiring /Missions prefix and blocking directory traversal sequences (../ and ..\) - configs.js: Fixed flawed validation logic (AND→OR) and added directory traversal protection for mission names **Cross-Site Scripting (1 issue fixed):** - configs.js: Added sanitizeInput() function to escape HTML entities in error messages containing user-controlled data, preventing reflected XSS attacks **Insecure Temporary File Creation (4 sample fixes):** - Replaced insecure tempfile.mktemp() with tempfile.mkstemp() in: - auxiliary/demtiles/gdal2demtiles.py (lines 839, 874) - auxiliary/gdal2tiles4extent/gdal2tiles4extent.py (line 521) - auxiliary/gdal2customtiles/legacy/gdal2customtiles.py (line 601) - Eliminates race condition vulnerabilities in GDAL processing scripts **False Positives Documented:** - SQL Injection (5 issues): Existing parameterized queries and input sanitization provide adequate protection - Analysis details in reviewed_findings.md All fixes maintain backward compatibility while significantly improving security posture. Remaining auxiliary Python scripts follow the same tempfile pattern for completion. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Tweaks to critical security vulnerability fixes * Support .. as long as it stays within /Missions --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Tariq Soliman <Tariq.K.Soliman@jpl.nasa.gov> * Minor fix: sort geodataset results * Make sure polyline measurements are cleared on reset * #702 Fix LayersTool filtering on non-dynamicExtent props-on-click geodatasets (#703) * Minor fix: more versatile Help root pathing * #704 Upgrade All Adjacent Servers (#705) * Don't use polyline with LOS or else it results in two lines * Make sure rubberline gets drawn in continuous modes * Ensure line of sight follows great circle and polyline display cleanup * Update Dockerfile to update certs * Use LOS technique to draw great circle lines with varying colors * Show great circle line even if no DEM #52 * #708 User Account Management (#711) * #708 User Account Management 1 * #708 user account control part 2 * #708 user account management part 3 * User account control part 4 * #708 minor style tweaks * Minor resetPassword link fix * Use contours on all login pages * #712 Fix some security issues (#713) * #714 Configurable Wrapping for 2D Map (#715) * #714 Map maxbounds * #714 apply to projected maps too * #716 Per Mission Permissions (#717) * #716 Per-Mission Permission part 1 * #716 Per Mission Permissions * #718 Globe Controls clash with Separated Tool buttons in the UI (#719) * Added multi-platform build to support arm64 architecture * Fix ensureUser for new Admins * Separate platform builds and append -arm64 to the end of arm64 images * Use separate ARM64 runner for faster ARM64 Docker builds * Fix arm64 tag assignment syntax * Use a prerendered image for the layer legend #658 * #721 Show, Delete, and Search for individual STAC items (#723) * #721 STAC item UI part 1 * #721 STAC item UI part 2 * Bump version 4.0.0 -> 4.1.0 * Adjust legend width based on legend image up to 300px * #724 Legends Max on top (#725) * Add feature to set Layer header expanded state individually (#726) * Expand layers feature * Fix bug with keeping header expanded/unexpanded state * Expand individual headers only if LayersTool.vars.expanded is not set to true * #727 STAC item regex search and bulk delete (#728) * #727 Stac item regex, bbox, bulk delete support part 1 * #727 Support 32bit stac items in map * #729 Default configuration for live mode (#730) * #731 Projection Tab Autocomplete, Case Insensitive Mission Sorting, Smart field dsiabling in /configure (#732) * Filter out blank csv entries in csvToJSON function (#734) * Add amd64 image suffix and build it last * Use regular docker build instead of buildx * Add Legend tool display options (#735) * Add configuration options * Add header options for legend tool * Improve syntax * #736 Configure Required Field Indicators (#737) * #738 Fix GeoDataset LOCAL (#739) * #740 Add mission planet radii (#741) * Add legend-based property styling for vector layers * #742 Configure Preview iframe to respect subpaths (#744) * #709 Improved Continuous Legend Symbology Styling * #745 Live Follow Mode (#746) --------- Co-authored-by: Joe Roberts <joe.t.roberts@jpl.nasa.gov> Co-authored-by: ac-61 <ac-61@users.noreply.github.com> Co-authored-by: Jeff Leach <jl-0@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Joe T. Roberts <5315956+jtroberts@users.noreply.github.com> * #699 Add EPSG:3413 --------- Co-authored-by: Joe Roberts <joe.t.roberts@jpl.nasa.gov> Co-authored-by: ac-61 <ac-61@users.noreply.github.com> Co-authored-by: Jeff Leach <jl-0@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Joe T. Roberts <5315956+jtroberts@users.noreply.github.com>
1 parent a0c647e commit 7c485d1

File tree

1,043 files changed

+756449
-28
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,043 files changed

+756449
-28
lines changed
Lines changed: 291 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,291 @@
1+
{
2+
"id": "52EuropaEquidistantCylindricalSphere",
3+
"title": "52 Europa (2015) - Sphere EN EquidistantCylindricalSphere",
4+
"crs": "PROJCRS[\"52 Europa (2015) - Sphere / Equidistant Cylindrical\",BASEGEOGCRS[\"52 Europa (2015) - Sphere\",DATUM[\"52 Europa (2015) - Sphere\",ELLIPSOID[\"52 Europa (2015) - Sphere\",157500,0,LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],ANCHOR[\"long axis that pointed toward the Earth on 2007 May28 8.3125 UT (light-time corrected) : 0\"]],PRIMEM[\"Reference Meridian\",0,ANGLEUNIT[\"degree\",0.0174532925199433,ID[\"EPSG\",9122]]]],CONVERSION[\"World Equidistant Cylindrical\",METHOD[\"Equidistant Cylindrical\",ID[\"EPSG\",1028]],PARAMETER[\"Latitude of 1st standard parallel\",0,ANGLEUNIT[\"degree\",0.0174532925199433],ID[\"EPSG\",8823]],PARAMETER[\"Longitude of natural origin\",0,ANGLEUNIT[\"degree\",0.0174532925199433],ID[\"EPSG\",8802]],PARAMETER[\"False easting\",0,LENGTHUNIT[\"metre\",1],ID[\"EPSG\",8806]],PARAMETER[\"False northing\",0,LENGTHUNIT[\"metre\",1],ID[\"EPSG\",8807]]],CS[Cartesian,2],AXIS[\"easting (X)\",east,ORDER[1],LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],AXIS[\"northing (Y)\",north,ORDER[2],LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],USAGE[SCOPE[\"52 Europa graticule coordinates expressed in simple Cartesian form.\"],AREA[\"Whole of 52 Europa\"],BBOX[-90,-180,90,180]],REMARK[\"Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: doi:10.1007/s10569-017-9805-5\"]]",
5+
"orderedAxes": [
6+
"E",
7+
"N"
8+
],
9+
"tileMatrices": [
10+
{
11+
"id": "0",
12+
"scaleDenominator": 6902913.545485387,
13+
"cellSize": 1932.815792735908,
14+
"cornerOfOrigin": "topLeft",
15+
"pointOfOrigin": [
16+
-494800.84294039244,
17+
247400.42147019622
18+
],
19+
"tileWidth": 256,
20+
"tileHeight": 256,
21+
"matrixWidth": 2,
22+
"matrixHeight": 1
23+
},
24+
{
25+
"id": "1",
26+
"scaleDenominator": 3451456.7727426933,
27+
"cellSize": 966.407896367954,
28+
"cornerOfOrigin": "topLeft",
29+
"pointOfOrigin": [
30+
-494800.84294039244,
31+
247400.42147019622
32+
],
33+
"tileWidth": 256,
34+
"tileHeight": 256,
35+
"matrixWidth": 4,
36+
"matrixHeight": 2
37+
},
38+
{
39+
"id": "2",
40+
"scaleDenominator": 1725728.3863713467,
41+
"cellSize": 483.203948183977,
42+
"cornerOfOrigin": "topLeft",
43+
"pointOfOrigin": [
44+
-494800.84294039244,
45+
247400.42147019622
46+
],
47+
"tileWidth": 256,
48+
"tileHeight": 256,
49+
"matrixWidth": 8,
50+
"matrixHeight": 4
51+
},
52+
{
53+
"id": "3",
54+
"scaleDenominator": 862864.1931856733,
55+
"cellSize": 241.6019740919885,
56+
"cornerOfOrigin": "topLeft",
57+
"pointOfOrigin": [
58+
-494800.84294039244,
59+
247400.42147019622
60+
],
61+
"tileWidth": 256,
62+
"tileHeight": 256,
63+
"matrixWidth": 16,
64+
"matrixHeight": 8
65+
},
66+
{
67+
"id": "4",
68+
"scaleDenominator": 431432.09659283666,
69+
"cellSize": 120.80098704599425,
70+
"cornerOfOrigin": "topLeft",
71+
"pointOfOrigin": [
72+
-494800.84294039244,
73+
247400.42147019622
74+
],
75+
"tileWidth": 256,
76+
"tileHeight": 256,
77+
"matrixWidth": 32,
78+
"matrixHeight": 16
79+
},
80+
{
81+
"id": "5",
82+
"scaleDenominator": 215716.04829641833,
83+
"cellSize": 60.400493522997124,
84+
"cornerOfOrigin": "topLeft",
85+
"pointOfOrigin": [
86+
-494800.84294039244,
87+
247400.42147019622
88+
],
89+
"tileWidth": 256,
90+
"tileHeight": 256,
91+
"matrixWidth": 64,
92+
"matrixHeight": 32
93+
},
94+
{
95+
"id": "6",
96+
"scaleDenominator": 107858.02414820917,
97+
"cellSize": 30.200246761498562,
98+
"cornerOfOrigin": "topLeft",
99+
"pointOfOrigin": [
100+
-494800.84294039244,
101+
247400.42147019622
102+
],
103+
"tileWidth": 256,
104+
"tileHeight": 256,
105+
"matrixWidth": 128,
106+
"matrixHeight": 64
107+
},
108+
{
109+
"id": "7",
110+
"scaleDenominator": 53929.01207410458,
111+
"cellSize": 15.100123380749281,
112+
"cornerOfOrigin": "topLeft",
113+
"pointOfOrigin": [
114+
-494800.84294039244,
115+
247400.42147019622
116+
],
117+
"tileWidth": 256,
118+
"tileHeight": 256,
119+
"matrixWidth": 256,
120+
"matrixHeight": 128
121+
},
122+
{
123+
"id": "8",
124+
"scaleDenominator": 26964.50603705229,
125+
"cellSize": 7.5500616903746405,
126+
"cornerOfOrigin": "topLeft",
127+
"pointOfOrigin": [
128+
-494800.84294039244,
129+
247400.42147019622
130+
],
131+
"tileWidth": 256,
132+
"tileHeight": 256,
133+
"matrixWidth": 512,
134+
"matrixHeight": 256
135+
},
136+
{
137+
"id": "9",
138+
"scaleDenominator": 13482.253018526146,
139+
"cellSize": 3.7750308451873202,
140+
"cornerOfOrigin": "topLeft",
141+
"pointOfOrigin": [
142+
-494800.84294039244,
143+
247400.42147019622
144+
],
145+
"tileWidth": 256,
146+
"tileHeight": 256,
147+
"matrixWidth": 1024,
148+
"matrixHeight": 512
149+
},
150+
{
151+
"id": "10",
152+
"scaleDenominator": 6741.126509263073,
153+
"cellSize": 1.8875154225936601,
154+
"cornerOfOrigin": "topLeft",
155+
"pointOfOrigin": [
156+
-494800.84294039244,
157+
247400.42147019622
158+
],
159+
"tileWidth": 256,
160+
"tileHeight": 256,
161+
"matrixWidth": 2048,
162+
"matrixHeight": 1024
163+
},
164+
{
165+
"id": "11",
166+
"scaleDenominator": 3370.5632546315364,
167+
"cellSize": 0.9437577112968301,
168+
"cornerOfOrigin": "topLeft",
169+
"pointOfOrigin": [
170+
-494800.84294039244,
171+
247400.42147019622
172+
],
173+
"tileWidth": 256,
174+
"tileHeight": 256,
175+
"matrixWidth": 4096,
176+
"matrixHeight": 2048
177+
},
178+
{
179+
"id": "12",
180+
"scaleDenominator": 1685.2816273157682,
181+
"cellSize": 0.47187885564841503,
182+
"cornerOfOrigin": "topLeft",
183+
"pointOfOrigin": [
184+
-494800.84294039244,
185+
247400.42147019622
186+
],
187+
"tileWidth": 256,
188+
"tileHeight": 256,
189+
"matrixWidth": 8192,
190+
"matrixHeight": 4096
191+
},
192+
{
193+
"id": "13",
194+
"scaleDenominator": 842.6408136578841,
195+
"cellSize": 0.23593942782420751,
196+
"cornerOfOrigin": "topLeft",
197+
"pointOfOrigin": [
198+
-494800.84294039244,
199+
247400.42147019622
200+
],
201+
"tileWidth": 256,
202+
"tileHeight": 256,
203+
"matrixWidth": 16384,
204+
"matrixHeight": 8192
205+
},
206+
{
207+
"id": "14",
208+
"scaleDenominator": 421.32040682894205,
209+
"cellSize": 0.11796971391210376,
210+
"cornerOfOrigin": "topLeft",
211+
"pointOfOrigin": [
212+
-494800.84294039244,
213+
247400.42147019622
214+
],
215+
"tileWidth": 256,
216+
"tileHeight": 256,
217+
"matrixWidth": 32768,
218+
"matrixHeight": 16384
219+
},
220+
{
221+
"id": "15",
222+
"scaleDenominator": 210.66020341447103,
223+
"cellSize": 0.05898485695605188,
224+
"cornerOfOrigin": "topLeft",
225+
"pointOfOrigin": [
226+
-494800.84294039244,
227+
247400.42147019622
228+
],
229+
"tileWidth": 256,
230+
"tileHeight": 256,
231+
"matrixWidth": 65536,
232+
"matrixHeight": 32768
233+
},
234+
{
235+
"id": "16",
236+
"scaleDenominator": 105.33010170723551,
237+
"cellSize": 0.02949242847802594,
238+
"cornerOfOrigin": "topLeft",
239+
"pointOfOrigin": [
240+
-494800.84294039244,
241+
247400.42147019622
242+
],
243+
"tileWidth": 256,
244+
"tileHeight": 256,
245+
"matrixWidth": 131072,
246+
"matrixHeight": 65536
247+
},
248+
{
249+
"id": "17",
250+
"scaleDenominator": 52.66505085361776,
251+
"cellSize": 0.01474621423901297,
252+
"cornerOfOrigin": "topLeft",
253+
"pointOfOrigin": [
254+
-494800.84294039244,
255+
247400.42147019622
256+
],
257+
"tileWidth": 256,
258+
"tileHeight": 256,
259+
"matrixWidth": 262144,
260+
"matrixHeight": 131072
261+
},
262+
{
263+
"id": "18",
264+
"scaleDenominator": 26.33252542680888,
265+
"cellSize": 0.007373107119506485,
266+
"cornerOfOrigin": "topLeft",
267+
"pointOfOrigin": [
268+
-494800.84294039244,
269+
247400.42147019622
270+
],
271+
"tileWidth": 256,
272+
"tileHeight": 256,
273+
"matrixWidth": 524288,
274+
"matrixHeight": 262144
275+
},
276+
{
277+
"id": "19",
278+
"scaleDenominator": 13.16626271340444,
279+
"cellSize": 0.0036865535597532424,
280+
"cornerOfOrigin": "topLeft",
281+
"pointOfOrigin": [
282+
-494800.84294039244,
283+
247400.42147019622
284+
],
285+
"tileWidth": 256,
286+
"tileHeight": 256,
287+
"matrixWidth": 1048576,
288+
"matrixHeight": 524288
289+
}
290+
]
291+
}

0 commit comments

Comments
 (0)