Commit Graph

1300 Commits

Author SHA1 Message Date
Flori 85e494dd4a
merge main into dev (#464) 2024-01-19 21:55:29 +01:00
Flori d3853700c0
Update README.md 2024-01-19 21:55:05 +01:00
bitfl0wer 59b6907481
Merge branch 'main' of https://github.com/polyphony-chat/chorus 2024-01-19 21:50:44 +01:00
bitfl0wer f7d31fe57b
bump version to 0.14.0 2024-01-19 21:50:42 +01:00
Flori dcc626ef10
Version 0.14.0 (#463)
## Fixes

- Fix gateway heartbeat on WASM: #460

## Changes

- Update `GuildDefaults` to use new enums
- Make new enums derive `sqlx::Type`
- Feature lock UpdateMessage implementations

## Package changes

- Bump package version, especially reqwest from 0.11.22->0.11.23 -
removes need for custom git branch in Cargo.toml
2024-01-19 21:50:26 +01:00
Flori 011b214ea1
Fix gateway heartbeat on WASM (#460)
It turns out `std::time::Instant::now()` panics WASM (see #459) and
breaks the heartbeat handler.

This pr attempts to fix that by replacing `std::time::Instant` with
`wasmtimer::std::Instant` and `safina_timer::sleep_until` with
`wasmtimer::tokio::sleep_until`.
2024-01-19 17:24:48 +01:00
kozabrada123 8a2bc8287e Revert "Mess w/ the tests to see if it really works"
This reverts commit 8243f103f9.
2024-01-19 16:05:34 +01:00
kozabrada123 8243f103f9 Mess w/ the tests to see if it really works 2024-01-19 15:53:24 +01:00
kozabrada123 34cc344c8d feat: switch safina_timer for tokio, fix sleep duration overflow in examples 2024-01-19 15:48:59 +01:00
kozabrada123 72936d4f21 right 2024-01-19 15:31:40 +01:00
kozabrada123 921a3ef9c0 fix: gateway simple example 2024-01-19 15:21:53 +01:00
kozabrada123 c3017df1c2 fix tests 2024-01-19 15:14:50 +01:00
kozabrada123 e2b69487aa fix error 2024-01-19 15:06:27 +01:00
kozabrada123 d37415fc13 feat: fix heartbeat time on WASM 2024-01-19 14:55:23 +01:00
Flori 82a3f98db7
bump package versions (#458) 2024-01-11 19:51:27 +01:00
bitfl0wer 7fdb4bae49
bump package versions 2024-01-11 19:36:36 +01:00
bitfl0wer de42299fd0
bump reqwest to 0.11.23 2024-01-11 19:30:40 +01:00
bitfl0wer b87af21c31
Revert last commit 2023-12-17 22:16:53 +01:00
bitfl0wer e0492bb2f6
Add MANAGE_ENCRYPTION permission 2023-12-17 20:47:52 +01:00
Flori abd25b2040
merge backend branch into dev (#454) 2023-12-15 00:22:46 +01:00
Flori 7a517b3663
Well known required (#456)
Title: Add User Authentication Feature

Description:

This pull request introduces user authentication functionality to our
web application. The main goal of this feature is to ensure that each
action performed on the platform is tied to a valid, logged-in user,
thus providing accountability and maintaining data security.

Changes:

New models: Added the User model to represent users in our system. This
model includes fields: username, password_hash, email etc.

User seriliazer and views: Implemented serializers and API views for
user registration, login, and logout.

Authentication Middlewares: Added middlewares to check for a valid
session or token before allowing access to certain views.

Tests: Included comprehensive test coverage for the new feature. Tests
were implemented to verify user registration, login, and logout
functionality, as well as checking authentication enforcement on
applicable views.

    Documentation: Updated API documentation related to User endpoints.

This feature is expected to improve the overall security of our
application by properly managing user sessions and actions.

Note: You will see references to some helper tools like make_password
and check_password methods, these are security measures to ensure we are
not storing plain text passwords in the database.

This PR follows our Python coding standards and is fully linted and
tested.

Requesting review and feedback. If all points are clear and no issues
are detected during the review, we would appreciate it if this PR could
be merged at the earliest convenience.

Related Issue: #123
2023-12-15 00:22:36 +01:00
bitfl0wer fd3aad03e3
Refactor instance creation 2023-12-15 00:10:33 +01:00
Flori b319f3f720
Update docs (#453) 2023-12-10 18:51:32 +01:00
bitfl0wer ce6f09b657
Update documentation and examples 2023-12-10 18:40:03 +01:00
bitfl0wer 6b0fd238c8
Update cargo lock 2023-12-10 18:37:38 +01:00
bitfl0wer 1cbeba45c4
Merge branch 'dev' 2023-12-03 22:37:28 +01:00
bitfl0wer bbdcd35b60
Bump version 2023-12-03 22:35:45 +01:00
Flori 5ff206db8a
QoL Updates (#452)
- Make register and login not take an instance by ownership
- Add README information to `lib.rs`
- Add more derives to ChorusUser and Instance
- Impl From reqwest::Error for ChorusError
- Add support for .well-known #449 
- Remove "limited: bool" as an argument for `Instance::new` in favour of
dynamic instance limit checking #450
2023-12-03 22:31:21 +01:00
bitfl0wer 565670c5b7
Remove limited argument from Instance 2023-12-03 21:44:08 +01:00
bitfl0wer dc1991a9cc
Make get_limits_config part of public api 2023-12-03 21:42:41 +01:00
bitfl0wer 37125e7973
Remove "limited" parameter 2023-12-03 21:34:44 +01:00
Flori 081a938749
Get URLs from .well-known (#451)
Closes #449.

+ `Instance::from_root_url(root_url: &str, limited: bool)`: Creates a
new Instance by trying to get the relevant instance urls (UrlBundle)
from a root url. Shorthand for
`Instance::new(UrlBundle::from_root_domain(root_domain).await?)`
+ `UrlBundle::from_root_url(url: &str)`: Performs a few HTTP requests to
try and retrieve a UrlBundle from an instance's root URL. The method
tries to retrieve the UrlBundle via these three strategies, in order:
- GET: $url/.well-known/spacebar -> Retrieve UrlBundle via
$wellknownurl/api/policies/instance/domains
    - GET: $url/api/policies/instance/domains
    - GET: $url/policies/instance/domains
    
The URL stored at .well-known/spacebar is the instance's API endpoint.
The API stores the CDN and WSS URLs under the
$api/policies/instance/domains endpoint. If all three of the above
approaches fail, it is very likely that the instance is misconfigured,
unreachable, or that a wrong URL was provided.
+ Add clippy warnings for: `clippy::todo,
    clippy::unimplemented,
    clippy::dbg_macro,
    clippy::print_stdout,
    clippy::print_stderr`
2023-12-03 16:05:58 +01:00
bitfl0wer 0553ecb753
wasm-safari CI seems to be bugged - disabling for now 2023-12-03 15:57:03 +01:00
bitfl0wer 0c92ffb64d
Try giving macos-safari its own cache key to fix CI 2023-12-03 15:06:09 +01:00
bitfl0wer df7ee4d2fc
Change macOS Safari test strategy to no-fail-fast 2023-12-03 14:18:14 +01:00
bitfl0wer 4ad1201032
Rename from_root_domain to from_root_url 2023-12-03 13:39:23 +01:00
bitfl0wer 7c5d7f731c
Add Instance::from_root_domain(), change documentation wording 2023-12-03 13:37:32 +01:00
bitfl0wer 906f2234f7
Add test if an example well-known response gets parsed correctly. 2023-12-03 13:33:24 +01:00
bitfl0wer bae3bc3aef
Write test to check basic functionality of UrlBundle::from_root_domain() 2023-12-03 13:29:38 +01:00
bitfl0wer d28ccf209a
check for dbg! println! eprintln! in production code 2023-12-03 13:28:50 +01:00
bitfl0wer dc263dbd5a
impl from_api_url 2023-12-03 13:16:34 +01:00
bitfl0wer 0e1f52edba
add warning lint for usage of todo!() 2023-12-03 13:13:57 +01:00
bitfl0wer 5792c61d09
move WellKnownResponse to src/types/ 2023-12-03 13:04:17 +01:00
bitfl0wer 8224acf897
Create domains_config, create Domains struct 2023-12-03 13:04:02 +01:00
bitfl0wer b6324173b5
clean up imports 2023-12-03 12:51:34 +01:00
bitfl0wer a27a3626f4
impl from_root_domain for UrlBundle 2023-12-03 12:49:22 +01:00
bitfl0wer 4aa45b3841
impl From reqwest::Error for ChorusError 2023-12-03 12:49:07 +01:00
bitfl0wer 367c0a8ca5
impl PartialEq for ChorusUser 2023-12-02 20:30:04 +01:00
Flori 81eda95ac0
More derives and impls (#448)
Add some sensible implementations for PartialEq, Eq, etc. where I found
them to be necessary
2023-12-02 17:52:31 +01:00
bitfl0wer 734cbf8d30
Mark code blocks as no-run 2023-12-02 17:44:24 +01:00