Commit graph

854 commits

Author SHA1 Message Date
Antoine Gersant
72c8ed9289
Support for bearer token authentication (#120)
* User manager can create and recognize auth tokens

* Implement HTTP bearer auth

* Use bearer auth in test-harness

* Can receive auth token via query parameter (useful for media endpoints)
2020-12-20 03:25:45 -08:00
Antoine Gersant
5e065c5e6a
Split configuration module (#117) 2020-12-18 01:14:24 -08:00
Antoine Gersant
e5c1d86577 Last FM unlink now correctly unsets credentials. Missing credentials no longer 401 2020-12-17 19:14:05 -08:00
Antoine Gersant
d4c78a0a31 Fixed a bug where only swagger index could be accessed without trailing slash 2020-12-15 21:12:00 -08:00
Antoine Gersant
ec39e696bb Fixed test on linux 2020-12-15 02:19:49 -08:00
Antoine Gersant
5b2d0a2216 Cosmetic change 2020-12-15 01:48:14 -08:00
Antoine Gersant
404d42d254 album art pattern is now case insensitive 2020-12-15 01:44:46 -08:00
Antoine Gersant
bd48ad1a5c Adds jpeg to default album art filter 2020-12-15 01:32:58 -08:00
Antoine Gersant
c2807b60de
Replace rocket with actix-web (#116)
* Adds actix dependency

* Failed attempt at test harness using actix

* Fixed test panic

* Simplified tests

* Run web server in tests

* Send json payloads

* Static file serving

* Default shutdown timeout

* Implement version endpoint

* Implements #[get("/initial_setup")]

* WIP put_settings endpoint

* Adds AdminRights extractor

* Fixed a bug where AdminRights extractor always failed

* Implements collection endpoints

* Re-use system runnner between calls

* Preserve client headers between API calls (tentative)

* Fixed test interferences

* Implemented more endpoints

* Implemented audio file serving

* Fixed sketchy responses

* Implements thumbnail endpoint

* Login endpoint WIP

* Implement login endpoint

* Auth support

* When using HTTP headers to authenticate, response now includes expected cookies

* Tentative fix for server not responding within docker

* Adds logging middleware + browse troubleshooting

* Tentative fix for path decoding issues

* Tentative fix for broken path decoding

* Fix routing issues w/ paths

* Fixed a bug where auth cookies were sent in every response

* More lenient test timeouts

* Fixed a bug where recent/random endpoints required trailing slashes

* Compilation fix for rocket branch

* More useful test matrix

* Signed session cookies (#106)

* Isolate conflicting dependencies between rocket and actix versions

* Removed macOS from test matrix

* Glorious test harness simplification

* Removed RequestBuilder

* Shutdown on ctrl+c

* Pin to stable

* Drop rocket

* Simplify dependencies

* Removed stray rocket dependency

* Better test matrix

* Skip windows build without bundled sqlite

* Offload thumbnail creation to a thread pool

* Compress responses when possible

* Removed unused manage state

* Fixed a bug where large playlists could not be saved

* Return HTTP 401 for last fm requests without authentication

* Web block (#115)

* web::block around DB operations

* web::block during auth utils hitting DB

* Fixed incorrect http response code for missing thumbnail

* Removed unecessary unwrap

* Eliminated unecessary unwrap
2020-12-14 21:18:44 -08:00
Antoine Gersant
6be6d2a7dc Cosmetic change 2020-12-14 19:32:10 -08:00
Antoine Gersant
e25af0e9b5 Fixed issue where releases may not get their git tag 2020-12-13 20:05:42 -08:00
Antoine Gersant
2c21609699 Fetch URL for uploading release assets 2020-12-13 19:44:41 -08:00
Antoine Gersant
847d61f62b
One click release (#113)
* Make release from Github UI
2020-12-13 19:24:06 -08:00
Antoine Gersant
9c45ad5238
Replace reqwest with ureq (#112)
* Replace reqwest with ureq

* Reqwest-free rustfm-scrobble
2020-12-13 15:53:31 -08:00
Antoine Gersant
dd92d3e6eb
Added license badge 2020-12-12 15:31:41 -08:00
Antoine Gersant
7e4c0fa610 Support for Github dark theme 2020-12-11 02:54:18 -08:00
Antoine Gersant
34e0538562
App features re-organization (#111) 2020-12-10 03:23:00 -08:00
Antoine Gersant
866d82a16c
Make sqlite bundling optional (#110)
* Manually specify libsqlite version

* Make sqlite bundling optional

* Skip tests on windows without bundled sqlite
2020-12-08 01:22:17 -08:00
Antoine Gersant
454d73c754 cargo update 2020-12-08 00:22:16 -08:00
Antoine Gersant
7477158891 Merge branch 'master' of https://github.com/agersant/polaris 2020-12-08 00:16:21 -08:00
Antoine Gersant
55a4f64b3a
Bundle SQLite (#109) 2020-12-08 00:14:16 -08:00
Antoine Gersant
eb917bb9d6 Bumped pbkdf2 2020-12-07 23:35:33 -08:00
Antoine Gersant
e40121c4d0 Bumped crossbeam channel version 2020-12-07 23:33:37 -08:00
Antoine Gersant
0e52047417 Fixed typo 2020-12-07 23:31:05 -08:00
Antoine Gersant
1ebc0d9f44 Bump base64 version 2020-12-07 23:30:51 -08:00
Antoine Gersant
b709a8cd64 Bump anyhow version 2020-12-07 23:30:00 -08:00
Antoine Gersant
5b412718dc Trim diesel features 2020-12-07 23:24:57 -08:00
Antoine Gersant
b678973ef0 Hand-picked subset of image features 2020-12-07 23:06:50 -08:00
Antoine Gersant
351f1b0768 Removed unused dependency 2020-12-07 22:51:36 -08:00
Antoine Gersant
eef75163ce Include toolchain file in release tarball 2020-12-07 22:29:34 -08:00
Antoine Gersant
33121bc0a3
Pin rust toolchain version (#108) 2020-12-07 22:08:37 -08:00
Antoine Gersant
2f67d280fa Removed now standard build-override (https://github.com/rust-lang/cargo/pull/8500) 2020-12-07 21:15:33 -08:00
Antoine Gersant
f03d12de3e Removed unused dependency 2020-12-07 20:10:10 -08:00
Antoine Gersant
b6c446fa02
Rewrote indexer (#107)
* Update index without rayon

* Use crossbeam channels

* Use a single thread for DB insertions

* Better use of rayon in clean()

* Index rewrite

* Parallelize traverser

* Don't swallow send error

* Use Drop trait to flush Inserter work

* Configurable number of traverser threads

* Use channels to manage the work queue instead of Mutex

* Removed unusable profiling feature
2020-12-07 20:07:10 -08:00
Antoine Gersant
8524c7d5fe More accurate teste for web client serving 2020-12-06 02:48:42 -08:00
Antoine Gersant
a3f7a306e5 Added todo 2020-12-05 21:19:12 -08:00
Antoine Gersant
7ea97b0abf More conservative workflow config 2020-12-05 20:38:01 -08:00
Antoine Gersant
8d2ed31fef Validate that session cookie looks somewhat encrypted 2020-12-05 16:53:46 -08:00
Antoine Gersant
0930ef45bb test_swagger_can_get_index_with_trailing_slash 2020-12-03 23:00:16 -08:00
Antoine Gersant
f80a42e666
Trailing slash tests (#105)
* Better test names

* Add tests for recent/random endpoints with trailing slash
2020-12-03 21:31:14 -08:00
Antoine Gersant
2eed57cc47 Added tests that auth cookie headers are not emitted in all requests 2020-12-03 01:33:32 -08:00
Antoine Gersant
e1934a8e92
Cleaned up startup code (#104) 2020-11-30 20:27:39 -08:00
Antoine Gersant
847c26ddfe
Service unit tests improvements (#103)
- Simpler API for TestService
- More granular tests
- Tests for authentication requirements
- Better error handling (and HTTP response codes) for various bad inputs
2020-11-30 01:26:55 -08:00
Antoine Gersant
1ffea255df Avoid unecessary copies 2020-11-26 19:30:42 -08:00
Antoine Gersant
875a52f1b2
Clarified uninstall instructions 2020-11-26 16:04:24 -08:00
Antoine Gersant
538b41a2b4
Use standard directories when running on Linux (#91)
* Use standard Linux directories for application data (https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)

* Use standard system directories

* Cleanup all Polaris files during uninstall

* Expose get_pid_directory to rest of the crate

* Add separate targets for install binary and data files, clean up makefile

* Use environment variables for directory locations during install process

* On Linux, read locations from environment variables at compile time

* Split static_directory in two (web and swagger directories)

* Follow recommendations from the Make manual

* Avoid redundant directories

* Added workflow to validate installer setup

* Added CLI options to locate log file, pid file and cache directory

* Fixed an issue where build command did not support the xdg/system switch

* Renamed log option to log-level

* Fixed an issue where xdg install would do a system build

* Use re-usable action to make linux release

* Avoid nested actions (see https://github.com/actions/runner/issues/646)

* Updated installation instructions

* Replaced deprecated use of set-env
2020-11-26 15:57:08 -08:00
Antoine Gersant
0927f3815e Autoformat 2020-11-25 18:03:02 -08:00
Antoine Gersant
bcebaf499e Test cleanup 2020-11-25 18:02:57 -08:00
Antoine Gersant
e0d1f396a8 Removed support for prefix_url 2020-11-25 17:49:18 -08:00
Antoine Gersant
1c5a536277 Merge branch 'master' of https://github.com/agersant/polaris 2020-11-25 16:54:51 -08:00