hecate 0.62.0

OpenStreetMap Inspired Data Storage Backend Focused on Performance and GeoJSON Interchange
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
# CHANGELOG

## Emoji Cheatsheet
- :pencil2: doc updates
- :bug: when fixing a bug
- :rocket: when making general improvements
- :white_check_mark: when adding tests
- :arrow_up: when upgrading dependencies
- :tada: when adding new features

# Version History

## v0.62.0

- :bug: Improved session handling to ensure server restarts without `HECATE_SECRET` don't lock session cookie

## v0.61.2

- :bug: Database Sandbox arg fix

## v0.61.1

- :bug: Dynamic PostGIS/PostgreSQL version error message
- :rocket: only test version of write DB connection

## v0.61.0

- :tada: Optimize Boundary Stats by subdividing large/irregularly shaped geometries for faster indexed retrieval.
- :rocket: Redefine database connections into `database`, `database_replica`, `database_sandbox`

## v0.60.0

- :tada: Add postgres/posgis version checking to database checks

## v0.59.1

- :bug: Optimize Bounds#Get with `ST_Subdivide`

## v0.59.0

- :tada: Feature query by lat/lng.

## v0.58.1

- :rocket: Reduce `clone()` calls where possible to decrease allocation calls
- :rocket: Rename `xml` => `osm` mod to better reflect contents

## v0.58.0

- :arrow_up: Update to `geojson@13` which adds support for better representation of `Feature::Id` values
- :tada: Validate coordinates on upload (180,-180,90,-90)
- [UI] Fix styles overflow in admin panel

## v0.57.0

- :tada: Add `HECATE_SECRET` option for providing a 256 bit base64 key for cookie signing (`openssl rand --base64 32`)

## v0.56.0

- :bug: Explicitly set the cookie path

## v0.55.1

- :arrow_up: `Rocket@0.4.0`

## v0.55.0

- :tada: Add standard error class to store and parse errors from across the server
- :rocket: Change the majority of custom error objects to use the new error class
- :rocket: Remove unneeded `extern crate` calls

## v0.54.0

- :arrow_up: [BREAKING] Update to `nightly-2018-12-01` per README instructions to compile
- :arrow_up: Update Rocket to RC2
- :arrow_up: General dep updates

## v0.53.0

- :tada: Add new `/api/data/stats/regen` endpoint
- :rocket: Make `hecate` ROLE database owner for regen endpoint

## v0.52.0


- :rocket: Add filter consistency to users and bounds APIs
- :tada: `users` has `limit` & `filter` param
- :tada: `bounds` has `limit` & `filter` param
- :rocket: `users` & `bounds` no longer require 2 function with rocket@0.4

## v0.51.0

- :tada: Add database check to ensure connections work before starting server

## v0.50.1

- :bug: Fix regression where Data => String is not supported in release builds

## v0.50.0

- :arrow_up: [BREAKING] Update to `nightly-2018-11-19` per README instructions to compile
- :arrow_up: Update to Rocket@0.4

## v0.49.3

- [UI] Much better session handling, refreshing the page no longer marks you as logged out, when you actually still have a valid session cookie!
- [UI] Add User Listing to admin panel
- [UI] Add Self Modal to view your own account information when signed in
- [UI] Add clickable usernames to open a user's public profile
- [UI] Load auth settings at startup to allow components to conditionally request content - avoiding 401 errors where possible by telling the user they aren't logged in/aren't admin, etc.
- [UI] Fix turf bbox calculation bug in Delta Panel
- [UI] Fix Foot component error in Features Panel

## v0.49.2

- [UI] More whitespace fixes in deltas panel

## v0.49.1

- [UI] Fix spacing on main toolbar
- [UI] Fix whitespace & overflow on delta message

## v0.49.0

- :rocket: Make fallback for `database_read` flag
- :tada: Schema now creates a `hecate` & `hecate_read` user instead of using the `postgres` user by default

## v0.48.3

- :arrow_up: Update to latest deps

## v0.48.2

- :rocket: [UI] Show JOSM changeset messages in delta panel

## v0.48.1

- :rocket: [UI] Add cursor change on hover events in mapbox-gl

# v0.48.0
- :rocket: Add endpoint for clearing the tile cache
- :rocket: Add UI Fxn to clear tile cache

## v0.47.0

- :bug: Meta Set was incorrectly set to check meta::list permission
- :tada: [UI] Add new server settings - allowing management of default styles
- :tada: [UI] Add default styles switching

## v0.46.0

- :tada: Add support for configurable web workers to allow custom levels of parallelism

## v0.45.0

- :rocket: Add EOT Character at end of streaming API calls

## v0.44.1

- :rocket: Add redirect from `/admin` => `/admin/index.html`

## v0.44.0

- :tada: Allow creating and deleting bounds programatically

## v0.43.0

- :tada: Add an endpoint for allowing an admin to add admins who can add more admins
- :tada: Add endpoint for admins to remove other admins
- :tada: Add endpoint for searching list of users

## v0.42.0

- :rocket: Add generic server meta store

## v0.41.0

- :rocket: Add Data Statistics API for Boundaries

## v0.40.0

- :rocket: Add Data Statistics API

## v0.39.0

- :bug: [UI] Ensure protocol (http(s)) is respected
- :rocket: [UI] Add paging fxn for deltas panel
- :bug: [UI] Ensure panels don't collide with mapbox logo

## v0.38.1

- :bug: Fix version mismatch

## v0.38.0

- :rocket: All query style endpoints now use read-only postgres account
- :tada: Allow multiple read-only postgres connections & load balancing between them

## v0.37.2

- :rocket: remove all `unwrap()` `feature` mod

## v0.37.1

- :white_check_mark: Add test for missing Action on features
- :bug: :white_check_mark: Ensure non-string `key` values error gracefully

## v0.37.0

- :rocket: Ensure app API requests include domain cookies

## v0.36.1

- :rocket: [UI] Add style deletion 
- :bug: [UI] Ensure feature requests didn't poll infinitely

## v0.36.0

- :rocket: Rewrite web UI to use Vue Components for better readability
- :tada: Add logout endpoint for deletion of session token

## v0.35.2

- :bug: Take 2 - Use `0.0.0.0` to make docker a happy camper

## v0.35.1

- :bug: Use `localhost` to make docker a happy camper

## v0.35.0

- :rocket: Remove `Rocket.toml`, replacing with CLI options

## v0.34.0

- :rocket: Add CLI option for manually specifying read only db connection

## v0.33.0

- :tada: Add arbitrary SQL query endpoint

## v0.32.1

- :white_check_mark: Add `FeatureCollection` force tests

## v0.32.0

- :tada: Add `force: true` option for force overwriting `create` features.

## v0.31.0

- :rocket: `Feature` and `FeatureCollection` uploads now will return the specific feature/id if there is an error

## v0.30.1

- :arrow_up: Update to latest deps

## v0.30.0

- :bug: Ensure `affected` array is the actual feature id on create and not the user specified id
- :rocket: Throw an error if a `version` is provided on create

## v0.29.0

- :rocket: Allow querying features by `key` value in addition to their assigned id.

## v0.28.0

- :tada: Add `start`, `end` and `limit` options to delta list API

## v0.27.2

- :arrow_up: Remove unused `geo` dependency

## v0.27.1

- :bug: A `key: null` JSON property on an uploaded feature should not return a `Duplicate Key Value` error when attempting an upload. Duplicate `null` is allowed

## v0.27.0

- :tada: Add optional `key` value to allow the user to specify a duplication avoidance policy

## v0.26.0

- :tada: Add new `action: restore` on Features to be able to restore previously deleted features to the given id

## v0.25.0

- :white_check_mark: Add a bunch of tests around the `deltas` endpoints
- :bug: change behavior of `?offset=` param to return the anticipated results

## v0.24.1

- :bug: Fix session token bug preventing style creation
- :bug: (UI) Fix stringification of function of new style creation

## v0.24.0

- :tada: Add `GET /api/auth` endpoint for retrieving overview of auth settings

## v0.23.0

- :rocket: Consistent Streaming Line-Delimited GeoJSON Output

## v0.22.0

- :tada: Add data clone API

## v0.21.1

- :rocket: Refector `BoundsStream` into a new generic `PGStream`

## v0.21.0

- :tada: Add custom authentication config

## v0.20.3

- :rocket: Migrate all BoundsStream implementation details into the `bounds` mod for cleaner `lib.rs` file

## v0.20.2

- :rocket: Add ability to toggle style access `public/private` via web UI

## v0.20.1

- :bug: Fix negative feature ids entering deltas from xml_shim

## v0.20.0

- :tada: Add feature history endpoint

## v0.19.0

- :tada: Add API Meta endpoint

## v0.18.0

- :arrow_up: `rust@nightly-2018-05-05`
- :arrow_up: Update all deps to latest versions

## v0.17.0

- :tada: Add `GET /api/tiles/<z>/<x>/<y>/meta` endpoint & assoc. tests

## v0.16.0

- :tada: Add Styles UI
- :rocket: Return Style ID on create
- :rocket: Return `uid` on session token

## v0.15.0

- :tada: Add endpoint for manually regenerating Mapbox Vector Tiles

## v0.14.0

- :tada: Add mapbox-gl-js style related endpoints

## v0.13.0

- :rocket: Rewrite `bounds` endpoint to use in-memory streams

## v0.12.2

- :bug: Fix Web UI timezone bug

## v0.12.1

- :bug: Unescape XML chars when uploading via OSMXML shim

## v0.12.0

- :rocket: Add support for JSON in OSM XML
- :tada: Add schema endpoint

## v0.11.0

- :rocket: Add time based TileCache for faster map rendering

## v0.10.1

- :rocket: Better visualization of Arrays & Object properties in web UI

## v0.10.0

- :rocket: `hecate::start` is now exposed via lib. Note thta it is blocking, per the rocket docs
- :white_check_mark: Each test now creates and manages its own server instance

## v0.9.0

- :rocket: Add JSON Schema Validation

## v0.8.0

- :rocket: Add login fxn to web UI
- :rocket: Add register fxn to web UI
- :tada: Add user info endpoint
- :tada: Add user session endpoint
- :rocket: Refactor Auth object to support Basic or Cookie auth

## v0.7.3

- :rocket: Allow downloading bounds files via web UI

## v0.7.2

- :rocket: Improvements to the web UI

## v0.7.1

- :rocket: View list of bounds via the web UI

## v0.7.0

- :white_check_mark: Rewrite all JS tests in pure rust w/ reqwest
- :rocket: Limit number of features in MVT at low zooms

## v0.6.1

- :bug: Use the `location.host` prop for all API calls in admin interface instead of hardcoded port

## v0.6.0

- :tada: Delta APIs
- :tada: Usable Web API

## v0.5.0

- :rocket: Add support for `multipoint`, `polygon`, `multilinestrint`, `multipolygon` via XML download shim

## v0.4.0

- :tada: Service Vector Tiles directly from data for web interface
- :pencil2: Doc new tile endpoint and admin interface

## v0.3.1

- :pencil2: Huge doc update on endpoints & setting up
- :rocket: Update a ton of install & Docker instructions

## v0.3.0 

- :tada: Add bounds API

## v0.2.0

- :tada: Authentication on all endpoints!

## v0.1.3

- :rocket: Add CLI Options

## v0.1.2

- :bug: Track package.json & Cargo.toml

## v0.1.1

- :tada: `409 CONFLICT` errors are now thrown when a changeset is closed that the caller tries to access/append to

## v0.1.0

- :rocket: The first general release
  - Basic OSMXML support for points & sketchy line/simply poly suport
  - Full delta/geojson support
  - opening/committing/finalizing deltas
  - Pretty thorough suite of JS tests for JS integration
  - Basic Rust tests for node/way/rel objects