Commit Graph

158 Commits

Author SHA1 Message Date
c77d5a5424 Remove prints from server startup 2023-09-28 22:13:23 -07:00
6d5a86a8bb Revert all commits since v0.223 to enable me to release a patch on top of v0.223 2023-09-28 21:49:37 -07:00
d0712f84c6 Skip storing user stats when running with sqlite, since the queries aren't compatible with sqlite 2023-09-26 20:49:21 -07:00
db4e31d997 Add backend table to track daily/weekly active user stats 2023-09-26 20:11:06 -07:00
3d0673e6e9 Update CreateIndices() function so that it works with sqlite 2023-09-24 18:49:40 -07:00
9b4af85f34 Fix bug in updateUsageData that caused it to not record usage data for newly created users 2023-09-24 16:14:05 -07:00
5121df5a8c Remove testutils.Check(t, err) and replace it with require.NoError which gives a clearer error message and a full stacktrace 2023-09-24 16:05:01 -07:00
6c6245d962 Remove prints from server startup 2023-09-24 15:59:39 -07:00
1a144e4e70 Call TrackUsageData(true) to enable usage data tracking, which was accidentally disabled during server refactoring 2023-09-24 14:17:15 -07:00
8443292070 Augment IsOfflineError(err) so that it detects if the hishtory server is down, and will then treat all API errors as offline errors 2023-09-23 16:40:03 -07:00
4006eef1e1 Fix bug where requests missing the X-Hishtory-Version header wouldn't get dump/deletion requests (which caused tests to fail since the tests don't set this header) 2023-09-23 12:23:42 -07:00
b5db10d56a Update submission endpoint to only include dump and deletion requests if the request is from a modern client, and update it to increment the relevant counters 2023-09-23 11:34:56 -07:00
47bdc966b2 Add GreaterThan method for comparing versions 2023-09-23 11:34:02 -07:00
6cfbec4823 Add struct + functions for parsing hishtory versions 2023-09-23 11:23:47 -07:00
eb85f9a293 Revert "Remove TODO: I think this isn't worth implementing since in the long term, clients will update and this branch will not be necessary (and thus will primarily be tech debt)"
This reverts commit bbfda0be96.
2023-09-22 21:20:53 -07:00
bbfda0be96 Remove TODO: I think this isn't worth implementing since in the long term, clients will update and this branch will not be necessary (and thus will primarily be tech debt) 2023-09-22 19:20:51 -07:00
5bdbd9b262 Revert increased read_count requirement for deletion requests since deleting via encrypted-ID should be reliable 2023-09-22 19:19:06 -07:00
cc11916f3c Create func to automatically create DB indexes rather than just documenting them in a comment that has to be manually executed 2023-09-22 19:11:43 -07:00
8c6443ed07 Fix incorrect column name 2023-09-22 18:59:37 -07:00
1d878195b2 Rework ff98a7907c to use the newly added EntryId column rather than deleting based on the start time 2023-09-22 14:03:41 -07:00
9b847c5e35 Further optimize client-server roundtrips by including deletion and dump requests in submit responses (follow up to 1e43de689f) 2023-09-22 13:49:29 -07:00
2a5a6d65c4 Roll-forward "Add preliminary support for persisting pre-saved history entries remotely"
This rolls-forward commit 66916c27cb.
2023-09-22 13:13:46 -07:00
66916c27cb Revert "Add preliminary support for persisting pre-saved history entries remotely"
This reverts commit ff98a7907c. That commit is incomplete since it doesn't include support for the continous deletion of pre-saved history entries as soon as they
finish running. Support for this will require a good bit more work/thought, so reverting for and keeping this code in the git history.
2023-09-21 12:39:20 -07:00
ff98a7907c Add preliminary support for persisting pre-saved history entries remotely 2023-09-21 12:39:04 -07:00
a3b865fa6b Move all handlers into either api_handlers.go for client-exposed handlers, or debug_handlers.go for debug/admin functionality 2023-09-21 11:47:16 -07:00
9fc1140ab9 Swap json decoding to Decoder API for shorter/clearer code 2023-09-21 11:42:02 -07:00
1e43de689f Optimize number of round-trip HTTP connections made by the client by having the submit handler return metadata about whether there are pending dump/deletion requests
For now, I'm still keeping the dedicated endpoints for those functionalities, but since most of the time there are no dump/deletion requests this should cut down the number of requests made by the client by 2/3.
2023-09-21 11:35:24 -07:00
f64362fbba Fix metrics tag format so handler tags are properly exported to datadog 2023-09-17 22:46:31 -07:00
1ab61f1d7d Fix missing err != nil branch 2023-09-17 13:07:38 -07:00
d94e1bfa22 Fix imports after moving backend/server code in 772aaf2453 2023-09-17 12:53:55 -07:00
772aaf2453 Move internal/ directory into backend/server since it is all server-specific internals 2023-09-17 12:51:21 -07:00
04a0fc40cd Make errors from updateUsageData(...) crash when running in non-prod to ensure they're detected/handled before deployment 2023-09-17 12:03:42 -07:00
b733878878 Skip re-initializing tables when running in prod to make server startup faster 2023-09-15 17:51:14 -07:00
63741a0d14 Optimize docker build efficiency by running apk add early so that it is cached 2023-09-15 17:10:55 -07:00
1036e14c17 Add debug prints to debug server startup 2023-09-15 17:07:25 -07:00
a66ea1387d Refactor server.go to remove two global variables 2023-09-13 21:47:06 -07:00
a8360efa67 revert main.ReleaseVersion changes 2023-09-12 15:55:41 -04:00
0d30011a33 break down release versions and fix server tests 2023-09-12 15:44:03 -04:00
60a0e20dd9 extract server object to its own package 2023-09-12 15:44:03 -04:00
02b1e8287d isolate all server handlers into a single struct, without using global variables 2023-09-12 15:44:01 -04:00
50c74e5881 Rename a bunch of DB functions + add error checking for DB table creation (follow up to #104) 2023-09-12 08:30:43 -07:00
eaa837d17d fix check for empty array result (II) 2023-09-11 16:37:55 -04:00
ff2ac2194d fix %w 2023-09-11 13:03:29 -04:00
f9ee8ed189 use DateOnly as local constant instead of using the imported time package 2023-09-11 10:15:42 -04:00
3c18f62d99 finishing removing direct DB instructions from http handlers 2023-09-08 10:58:01 -04:00
0d6aa081d8 remove direct db instructions from apiRegisterHandler and statsHandler 2023-09-08 10:58:01 -04:00
382f234c09 remove usage_data related queries from the main package into a database package 2023-09-08 10:58:01 -04:00
a3e6d5a940 docker improvements:
* use alpine for small docker images
* use docker compose to wait for the database to be ready
* use a single Dockerfile with parameters to determine the correct GOARCH
* update makefile to account for the new GOARCH parameter on the Dockerfile
* remove native-arch-Dockerfile
2023-09-07 11:06:32 -04:00
aa3c7fc41a Follow up to #103: assign err from fmt.Fprintf to _ to ensure go-errcheck doesn't flag it 2023-09-07 07:57:20 -07:00
68e3a813c9 Follow up to #103: pull context from r.Context() when used rather than at the start of functions 2023-09-07 07:56:03 -07:00