Merged
Conversation
add: Dockerfile
…g migration script
…ng username through Users;
Changed handling of returning no result queries from returning some wild null values unsupported by F# to try catching not OrDefault query and returning Option. Added webpush implemented with C# webpush lib. Its super annoying rn though, theres no limitng on notifications so it will spam users even on their own messages. Added table for storing subscription instances which probably can use some work- maybe put it for each user no reason to hold old ones. Added commented out admin endpoint for testing webpush sending message to everyone. Added ignore rule to gitignore for appsettings for specific env.
Webpush notifications
Now all users of sigma chat will be notified, before it selected only the most recent subscription since I have setup it this way for debugging. In the future it should only notify users who are participating in chat and should have throttling so that it doesn't spam.
Option type is now mapped from dapper nullable columns. Because Dapper is not really design to work with F# it was mapping null values to strings etc. Now if value is optioned in Model null will be mapped to none. Also added Json FSharp lib which maps Options back to null/value in json so that frontend doesn't get option objects. The sql timeout bug If chat was longer than 100 messages JOIN on message with Users caused some requests to timeout. I initially thought it was caused by bug in dapper regarding mapping null to string. Turns out it was actually caused by bug mentioned in npgsql/efcore.pg#1599 and related issues. It seems timeouts stopped happening after bumping npgql and Dapper versions.
Added profile image upload based on azurite. Azurite has setup in docker compose and takes account and key from azurite.env. Profile pictures store is public, user model provides blob name which can be constructed into link on frontend provided front has azurite public facing url. Users profile pictures are stored in new table, I dunno why yet but it can be helpful in the future (also we would loose original file name). Renamed all Db modules into Queries for obvious reasons.
Blob storage feature and sql timeout fix
Added pagination for chat messages. Client includes last fetched message creation date in query params of messages get to paginate.
Add: build + deployment pipeline
migrated form azurite because it was pain in the ass to use in production with no tooling for storage explore. Added minio client and compose setup, on 9000 admin ui is available to explore buckets and objects. Added mapping of public facing url for profile pictures to user DTO model, minio should be publicly accessible for this to work since this is just url straight to that. Added setup of buckets with public access policies on database schema setup.
fix: Update PostgreSQL data volume path
get rid off azurite stuff, remove appsettings from git index, cleanup compose for minio since older image is no longer working
… into development
Development
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.