Commit Graph

269 Commits

Author SHA1 Message Date
Ferdinand Mütsch 5df0f48303 feat: user avatars 2021-10-14 12:04:21 +02:00
Ferdinand Mütsch 76a7cf7e80 chore: include runtime metrics 2021-10-14 10:35:01 +02:00
Ferdinand Mütsch 7cae3c43d0 chore: enhanced caching for user entity sets (resolve #264) 2021-10-14 10:22:59 +02:00
Ferdinand Mütsch 3b96bd3723 docs: include relay endpoint in swagger docs 2021-10-13 17:47:18 +02:00
Ferdinand Mütsch 2c7977cf63 chore: invert visualization of project labels (resolve #263) 2021-10-13 17:12:55 +02:00
Ferdinand Mütsch 8d073aaef2 feat: implement relay endpoint (see #237) 2021-10-11 11:00:50 +02:00
Konstantin Kondr a869897f80 statusbar endpoint fix 2021-09-07 10:12:24 +00:00
Konstantin Kondr 1ab29b22e1 add statusbar endpoint 2021-09-06 17:01:49 +00:00
Hiroya Onoe 398b4c16d6 fix(docs): wrong parameter in OpenAPI-Docs
The parameter `range` of `/compat/wakatime/v1/users/{user}/stats/{range} [get]` is path.
However, it was described as query in OpenAPI-Docs.
So, I fixed it and generated files in `static/docs`.

Closes: #239

Signed-off-by: Hiroya Onoe <hiroyanoe.io@gmail.com>
2021-09-05 03:02:01 +09:00
Ferdinand Mütsch 30de96950b chore: persist raw user agent value 2021-08-29 10:54:00 +02:00
Ferdinand Mütsch 87fadf46f7 chore: use partial includes in mail templates to avoid code duplication 2021-08-08 12:33:40 +02:00
Ferdinand Mütsch 2088987a0c chore: implement diagnostics endpoint (resolve #225) 2021-08-07 10:16:50 +02:00
Ferdinand Mütsch 533b5d62fc fix: speed up settings page (resolve #226) 2021-08-06 16:37:01 +02:00
Ferdinand Mütsch 5e96e2a601 chore: cache active users with hourly precision 2021-06-26 12:42:51 +02:00
Ferdinand Mütsch dd6a040171 chore: add api tests for all alternative heartbeat endpoints 2021-06-22 00:27:46 +02:00
Ferdinand Mütsch 9f1266957b fix: single heartbeat endpoint (resolve #212)
docs: swagger docs for all available heartbeat endpoints
2021-06-21 21:53:47 +02:00
Ferdinand Mütsch 466f2e1786 fix: summary caching (resolve #211) 2021-06-19 12:47:35 +02:00
Ferdinand Mütsch 490cca05eb feat: ui for managing project labels 2021-06-12 10:44:19 +02:00
Ferdinand Mütsch 628ea0b9dd fix: nil pointer dereference
chore: allow to share labels publicly on settings page
2021-06-12 09:12:28 +02:00
Ferdinand Mütsch 0d64858721 feat: implement project labels (resolve #204) 2021-06-11 20:59:34 +02:00
Ferdinand Mütsch 538b9d2463 fix: permissions for stats endpoint 2021-06-11 17:41:45 +02:00
Ferdinand Mütsch f4612fd542 fix: badge endpoint permission fixes (resolve #205)
fix: reference past x days intervals from now instead of start of day
2021-06-11 16:02:28 +02:00
Ferdinand Mütsch 101fdfb957 chore: adapt default insert batch size (fix #206)
fix: set user data flag after import (fix #207)
2021-06-10 23:22:04 +02:00
Ferdinand Mütsch ee31212cdd fix: hotfix for invalid api base url prefix (#203) 2021-05-19 10:18:18 +02:00
Ferdinand Mütsch cf3d293688 feat: implement wakatime projects endpoint (resolve #196) 2021-05-01 13:52:03 +02:00
Ferdinand Mütsch 0fbb554fc3 fix: respect timezone parameter for wakatime summary endpoint (resolve #195) 2021-05-01 12:46:53 +02:00
Ferdinand Mütsch 11b224fc24 fix: exact path matching for api endpoints (resolve #194) 2021-04-30 18:08:53 +02:00
Ferdinand Mütsch ef9303e61e feat: settings dialog for mail reports 2021-04-30 16:20:24 +02:00
Ferdinand Mütsch 29c04c3ac5 feat: email reports (resolve #124) 2021-04-30 14:07:14 +02:00
Ferdinand Mütsch 1beca82875 feat: implement wakatime users endpoint (resolve #193) 2021-04-30 10:13:32 +02:00
Ferdinand Mütsch 37d4d58b57 fix: make wakatime summary endpoint date range inclusive (resolve #192) 2021-04-29 21:08:47 +02:00
Ferdinand Mütsch 2b45b064eb fix: permit simple date time format in wakatime summaries endpoint (resolve #190) 2021-04-28 22:19:44 +02:00
Ferdinand Mütsch c6fd43a964 chore: log requests from json response util method 2021-04-26 21:26:59 +02:00
Ferdinand Mütsch c142b525a4 refactor: time zone sensitivity (resolve #184) 2021-04-25 21:05:04 +02:00
Ferdinand Mütsch dca736752e refactor: logging (resolve #169) 2021-04-16 16:02:55 +02:00
Ferdinand Mütsch b9ea6530f9 fix: serve static file from local fs when on dev (fix #176) 2021-04-16 12:24:19 +02:00
Ferdinand Mütsch a9739a6db0 fix: make range picker show actual range with ceiled to date (fix #175) 2021-04-16 11:53:37 +02:00
Steven Tang 6256c8e10a
ref: embed files, bump to go 1.16 (#167)
* ref: embed portion of files
* fix: readd pkger
* ref: embed version.txt
* fix: wrong mail template import path
* refactor: get rid of sql-migrate
refactor: get rid of pkger in favor of go embed (resolve #164)
* chore: remove unused var [ci-skip]

Co-authored-by: Ferdinand Mütsch <ferdinand@muetsch.io>
2021-04-11 10:42:43 +00:00
Ferdinand Mütsch 2a9fbfdfd7 chore: send notification on successful import 2021-04-10 10:48:06 +02:00
Ferdinand Mütsch 56247b4e1e fix: throttle wakatime api requests (attempt to fix #152) 2021-04-10 10:18:09 +02:00
Ferdinand Mütsch 4706809170 feat: smtp mail provider implementation 2021-04-10 00:07:13 +02:00
Ferdinand Mütsch ddc29f0414 chore: log mailwhale error 2021-04-09 22:51:03 +02:00
Ferdinand Mütsch 6ad33e3c3b feat: password resets (resolve #133) 2021-04-05 22:57:57 +02:00
Ferdinand Mütsch 7f3a654b26 fix: import bug with small number of heartbeats (fix #160) 2021-04-04 09:45:32 +02:00
Ferdinand Mütsch 2b57da224c chore: write authenticated user to logs and sentry 2021-03-26 13:10:10 +01:00
Ferdinand Mütsch 81ca703501 fix: disable recompute caching (resolve #149) 2021-03-24 23:31:04 +01:00
Ferdinand Mütsch 2d1010e9d9 chore: add caching to badge endpoint
chore: add type index for summary items
2021-03-24 21:49:42 +01:00
Ferdinand Mütsch f73285160d fix: delete language mapping (resolve #143) 2021-03-22 21:20:23 +01:00
Ferdinand Mütsch 2846748b26 hotfix: remove user agent check for shields.io 2021-03-09 23:15:35 +01:00
Ferdinand Mütsch 4f86f67716 chore: fix success messages 2021-02-21 13:12:29 +01:00
Ferdinand Mütsch 017530ac4a chore: introduce user email addresses (resolve #132) 2021-02-21 13:02:11 +01:00
Ferdinand Mütsch 30510591eb feat: custom time intervals (resolve #115) 2021-02-13 12:59:59 +01:00
Ferdinand Mütsch daf67b844a refctor: change active users query 2021-02-13 11:23:58 +01:00
Ferdinand Mütsch 6b0b3bddda fix: include overall total number of heartbeats again 2021-02-12 23:16:20 +01:00
Ferdinand Mütsch 301cab4be4 feat: per-user heartbeats count metrics 2021-02-12 23:06:48 +01:00
Ferdinand Mütsch 703805412b chore: code smell [ci skip] 2021-02-12 19:26:23 +01:00
Ferdinand Mütsch 88eb68b1a9 feat: add prometheus metrics without external standalone exporter 2021-02-12 18:50:13 +01:00
Ferdinand Mütsch 8191a52ce1 chore: make very first user have admin privileges 2021-02-12 18:49:47 +01:00
Ferdinand Mütsch 22fbfceca2 fix: support default range for stats endpoint (resolve #125) 2021-02-12 11:25:21 +01:00
Ferdinand Mütsch 218c571859 feat: display setup instructions on startup (resolve #120) 2021-02-12 10:10:44 +01:00
Ferdinand Mütsch 8fc39f23fa feat: add swagger docs (resolve #40) 2021-02-07 11:54:41 +01:00
Ferdinand Mütsch 6d2697ec37 feat: allow unlimited date ranges 2021-02-06 23:23:26 +01:00
Ferdinand Mütsch 6b1f1c1360 feat: add endpoint compatible to github readme stats (resolve #65) 2021-02-06 23:02:35 +01:00
Ferdinand Mütsch fca12f522f feat: option to publicly share stats data (resolve #36) 2021-02-06 23:02:35 +01:00
Ferdinand Mütsch d1dc73b5e6 refactor: make each router handler register middleware on its own 2021-02-06 23:02:35 +01:00
Ferdinand Mütsch 8fed606e9b refactor: make intervals be string lists of aliases 2021-02-06 23:02:35 +01:00
Ferdinand Mütsch 9ff35b85d0 feat: implement stats endpoint (resolve #114) 2021-02-06 23:02:35 +01:00
Ferdinand Mütsch 161e375f74 chore: optimize import date range 2021-02-06 23:02:35 +01:00
Ferdinand Mütsch fd9e2acdf1 feat: wakatime data import (resolve #87) 2021-02-06 23:02:35 +01:00
Ferdinand Mütsch d728426b45 chore: add config option to disable user registrations (resolve #113) 2021-02-06 10:59:12 +01:00
Ferdinand Mütsch aef0c929df fix: wakatime relay 2021-02-05 14:50:00 +01:00
Ferdinand Mütsch 9cb9747e2e fix: missing summary api route 2021-02-03 21:40:01 +01:00
Ferdinand Mütsch a2368ff76a refactor: significant changes related to routing and general code cleanup 2021-02-03 21:28:02 +01:00
Ferdinand Mütsch 4838300086 refactor: settings routes and actions 2021-02-03 20:53:27 +01:00
Ferdinand Mütsch 8bed266110 feat: account deletion (#99) 2021-02-02 22:54:22 +01:00
Ferdinand Mütsch c6139e5366 fix: really fix it now 🤦‍♂️ 2021-01-31 18:56:34 +01:00
Ferdinand Mütsch 28269aa329 fix: start and end parameter parsing for wakatime summary route 2021-01-31 18:41:48 +01:00
Ferdinand Mütsch 0c3f3b37b0 fix: attempt to quickfix hash collisions 2021-01-31 18:06:20 +01:00
Ferdinand Mütsch dc1a0c7983 chore: introduce hashes for heartbeats 2021-01-31 17:46:50 +01:00
Ferdinand Mütsch 3e5a51c272 feat: add missing query params to wakatime endpoints (resolve #109) 2021-01-31 16:25:48 +01:00
Ferdinand Mütsch 979549448c chore: remove legacy support for md5 hashed passwords
chore: remove password from encoded cookie content as not used anyway
2021-01-31 14:34:54 +01:00
Ferdinand Mütsch 617d9ad7e4 refactor: include logging framework (resolve #92) 2021-01-30 11:17:37 +01:00
Ferdinand Mütsch fd239e4f21 chore: add check to validate wakatime api key before accepting it 2021-01-30 10:54:54 +01:00
Ferdinand Mütsch 417d4789ab chore: move route registration into the handler classes themselves (resolve #57) 2021-01-30 10:34:52 +01:00
Ferdinand Mütsch a6aff07b21 chore: use wakatime colors for editors and os (resolve #100) 2021-01-30 09:51:36 +01:00
Ferdinand Mütsch 71d1b2177b fix: missing ca certificates in docker container (resolve #98)
fix: server crash in unsuccessful relaying of heartbeat to wakatime
2021-01-24 21:39:35 +01:00
Steven Tang d93348842a
fix: delay defer templateFile.Close() 2021-01-24 10:19:20 +11:00
Steven Tang fb92747129
fix: embed of static, views 2021-01-24 10:13:37 +11:00
Steven Tang 4e6e665e19
feat: embed assets into binary
Resolves #26
2021-01-23 10:00:15 +11:00
Ferdinand Mütsch a552073d18 feat: ui for configuring wakatime integration 2021-01-21 23:26:50 +01:00
Ferdinand Mütsch d57c02af7c feat: add ui for managing aliases (resolve #91) 2021-01-21 00:26:52 +01:00
Ferdinand Mütsch 16b683fcbd fix: permissions bug related to deleting language mappings 2021-01-20 20:49:27 +01:00
Ferdinand Mütsch acda62488d chore: support for cockroachdb (resolve #90) 2021-01-18 21:37:15 +01:00
Ferdinand Mütsch cd97976ed5 chore: show total hours on index page (resolve #88) 2021-01-17 09:32:08 +01:00
Ferdinand Mütsch 98b62b33c8 fix: concurrent access to language mappings (resolve #83) 2021-01-07 10:56:00 +01:00
Ferdinand Mütsch 16b9aa2282 feat: add front page (resolve #34) 2020-11-28 20:23:40 +01:00
Ferdinand Mütsch 4a78f66778 chore: set samesite attributes and configurable max age for cookies (resolve #75)
fix: sort entities by total time descending (resolve #74)
2020-11-21 22:30:56 +01:00
Ferdinand Mütsch ad8168801c test: add first few unit tests 2020-11-08 12:46:12 +01:00
Ferdinand Mütsch 35cdc7b485 refactor: define interface types for all services and repositories 2020-11-08 10:12:49 +01:00
Ferdinand Mütsch 2f12d8efde refactor: simplify summary generation (resolve #68) 2020-11-07 12:01:35 +01:00
Ferdinand Mütsch 8ddd9904a0 refactor: alert handling 2020-11-06 21:19:54 +01:00
Ferdinand Mütsch e269b37b0e feat: add ability to regenerate summaries
fix: database cascade settings
chore: debug log mode for gorm queries is back
2020-11-06 17:09:41 +01:00
Ferdinand Mütsch 8efc3854ab refactor: migrate to latest gorm version
refactor: language mappings implementation
2020-11-01 20:14:10 +01:00
Ferdinand Mütsch 755cabb5f4 refactor: introduce repositories as an additional layer of abstraction to allow for better testability 2020-11-01 16:56:36 +01:00
Ferdinand Mütsch 96ff490d8d fix: crash when calling badge endpoint with no filters applied (resolve #66) 2020-11-01 16:04:30 +01:00
Ferdinand Mütsch c2d30826f6 fix: critical fixes related to alias resolution 2020-11-01 12:50:59 +01:00
Ferdinand Mütsch e19761337f Merge branch 'notarock/62' 2020-10-26 22:34:50 +01:00
Roch D'Amour 178c417757 Keep the old configuration rules behaviour 2020-10-25 23:02:28 -04:00
Roch D'Amour 395d039d41 General cleanup and fixed PR comments 2020-10-25 22:18:33 -04:00
Roch D'Amour fdf2289f8e MVP for custom rules support 2020-10-25 21:51:06 -04:00
Ferdinand Mütsch c78ee5465c chore: display database type 2020-10-16 16:58:16 +02:00
Ferdinand Mütsch a4c344aaa1 chore: minor code restyling 2020-10-16 16:11:14 +02:00
Ferdinand Mütsch 21b822de42 chore: minor code enhancements 2020-10-09 21:37:20 +02:00
Ferdinand Mütsch 660fefcca9 refactor: migrate to new config (resolve #54) 2020-10-04 10:37:38 +02:00
Ferdinand Mütsch f843be8d12 refactor: move config to separate package
chore: load config from main method
2020-09-29 18:55:07 +02:00
Ferdinand Mütsch 1c0e63e125 chore: restrict badge access by user agent 2020-09-12 16:58:22 +02:00
Ferdinand Mütsch d60dddb550 feat: implement badges endpoint and sharing functionality 2020-09-12 16:09:23 +02:00
Ferdinand Mütsch 8dca9f5cc0 chore: parallel summary conversion 2020-09-12 00:20:16 +02:00
Ferdinand Mütsch 21567e7601 feat: implement summaries compat endpoint (resolve #44)
fix: fix all time view model
2020-09-11 23:24:51 +02:00
Ferdinand Mütsch a8009e107d fix: support project query param for alltime endpoint 2020-09-11 20:22:33 +02:00
Ferdinand Mütsch 84e9559860 fix: all time data model 2020-09-06 17:20:37 +02:00
Ferdinand Mütsch 587ac6a330 feat: add wakatime-compatible alltime endpoint 2020-09-06 12:15:46 +02:00
Ferdinand Mütsch 08a83af8da feat: extract machine name from heartbeat requests (resolve #47) 2020-08-29 21:20:23 +02:00
Ferdinand Mütsch c0d6855546 fix: return proper response to heartbeat requests (resolve #46) 2020-08-29 21:13:56 +02:00
Ferdinand Mütsch 7818f6b094 fix: return created status code for heartbeats (resolve #43) 2020-08-19 23:17:34 +02:00
Ferdinand Mütsch 4f035b3a63 chore: minor code improvement 2020-06-07 20:01:31 +02:00
Ferdinand Mütsch 0eac9a8854 feat: add ability to reset api key (resolve #29) 2020-06-07 19:58:06 +02:00
Ferdinand Mütsch 0294425de0 feat: add ability to change passwords (resolve #30) 2020-06-07 19:28:32 +02:00
Ferdinand Mütsch c1e6a3e265 feat: persist user creation date (resolve #31) 2020-05-30 22:19:05 +02:00
Ferdinand Mütsch 3c2dc78c93 refactor: refactor migrations and add fixtures
feat: introduce key-value store
feat: imprint page (resolve #23)
chore: remove default user
chore: remove packr
2020-05-30 20:41:27 +02:00
Ferdinand Mütsch 9dae5a1f77 feat: allow insecure cookies (resolve #27) 2020-05-30 12:11:25 +02:00
Ferdinand Mütsch 6c2f0cb1ec feat: add auto-migrations for old md5 password to maintain backwards compatibility 2020-05-25 22:24:29 +02:00
Ferdinand Mütsch 08675bd99f feat: use bcrypt with salts instead of md5 for hashing password (resolve #21) 2020-05-25 21:42:45 +02:00
Ferdinand Mütsch 625994d1e9 feat: add basic sign up instructions 2020-05-24 21:42:15 +02:00
Ferdinand Mütsch 2cca2cb0bb feat: display api key on user interface (resolve #24) 2020-05-24 21:19:05 +02:00
Ferdinand Mütsch c171d31f30 feat: set html base path from server base path
refactor: services
2020-05-24 17:32:26 +02:00
Ferdinand Mütsch d6e9f0295a feat: introduce base path config option to better support redirections behind a proxy 2020-05-24 17:08:44 +02:00
Ferdinand Mütsch abfaa9d768 feat: user signup 2020-05-24 16:34:32 +02:00
Ferdinand Mütsch 9697bb5fd5 refactor: use cookie-based login
feat: add login page
2020-05-24 13:41:19 +02:00
Ferdinand Mütsch d3ab54f6dc chore: enable templates to consist of partials 2020-05-24 10:37:31 +02:00
Ferdinand Mütsch 7a74ae251c Add health endpoint. 2020-04-08 21:29:11 +02:00
Ferdinand Mütsch 7d36c4e111 Rename project.
Add build script.
2020-03-31 12:22:17 +02:00
Ferdinand Mütsch 0e61870568 Resolve #7. 2020-03-31 11:24:44 +02:00
Ferdinand Mütsch f69b55b1f9 Default interval. 2020-02-20 15:54:20 +01:00
Ferdinand Mütsch 6d3891b398 Resolve #11. 2020-02-20 15:39:56 +01:00
Ferdinand Mütsch b7f700e7a5 Refactor to server-rendered app. 2020-02-20 14:28:55 +01:00
Ferdinand Mütsch d583dd312b Fix start of year computation.
Add shortcut to get lifetime statistics.
2020-01-09 00:19:24 +01:00
Ferdinand Mütsch fe1cc3ac88 Minor code cleanup. 2019-11-07 23:11:19 +01:00
Ferdinand Mütsch 9e726028c3 Introduce flag to recompute summaries from raw events instead of using aggregations. 2019-11-07 12:56:05 +01:00
Ferdinand Mütsch 37b02ff32c Fix summary merging.
Rename some methods.
Use pointers for structs and none for primitives.
2019-10-11 08:00:02 +02:00