commits
feat(musicbrainz): add MusicBrainz service with search and hydrate endpoints
- Implemented main server logic in musicbrainz/main.go
- Added searchHandler and hydrateHandler for handling requests
- Integrated database initialization and context-based shutdown
- Updated package.json to include a script for running the MusicBrainz service
remove xata client, replace with drizzle orm
- Added default value for primary key `id` in the following tables: albums, album_tracks, api_keys, artist_albums, artist_tracks, artists, dropbox_accounts, dropbox_directories, dropbox_paths, dropbox_tokens, dropbox, google_drive_accounts, google_drive_directories, google_drive_paths, google_drive_tokens, googledrive, loved_tracks, playlist_tracks, playlists, profile_shouts, queue_tracks, scrobbles, shout_likes, shout_reports, shouts, spotify_accounts, spotify_tokens, tracks, user_albums, user_artists, user_playlists, user_tracks, users, webscrobblers.
- Refactored queries in dropbox and join endpoints to use drizzle-orm for database interactions.
- Updated OAuth callback logic to handle dropbox tokens and user associations more efficiently.
feat: update workspace configuration and remove deprecated scripts
Add `pgpull` command to sync Rocksky Postgres database to local instance
- Added new entries to the journal for tracking purposes.
- Changed the import from tracks to playlists in user-playlists schema.
- Updated the playlistId reference in user-playlists to point to playlists instead of tracks.
- Modified the insert_album_track function to remove xata_createdat from the insert statement.
- Updated the insert_playlist_track function to remove added_by from the insert statement.
- Removed added_by field from the PlaylistTrack struct in xata.
- Changed xata_version fields in various schemas (album-tracks, artist-albums, artist-tracks, dropbox-accounts, dropbox-directories, dropbox-paths, dropbox, google-drive-accounts, google-drive-directories, google-drive-paths, googledrive, spotify-accounts, spotify-tokens, user-albums, user-artists, user-tracks) to allow null values.
- Updated snapshot and journal files to reflect changes in database schema.
- Implemented batch processing for syncing album tracks, artist albums, artist tracks, playlist tracks, user albums, user artists, user tracks, and user playlists in the data pull process.
- Added new repository functions for handling album tracks, user albums, artist albums, artist tracks, user artists, playlist tracks, user playlists, user tracks, and their respective insert operations.
- Enhanced user album, user artist, user playlist, and user track structs to include optional URI fields.
- Updated the album, artist, track, user, playlist, loved track, and scrobble repositories to include asynchronous data fetching and insertion methods.
- Implemented batch processing for syncing albums, artists, tracks, users, playlists, loved tracks, and scrobbles from a source PostgreSQL database to a destination PostgreSQL database.
- Enhanced error handling during data insertion to log failures without interrupting the sync process.
- Removed unique constraints on albumUri and artistUri fields in the tracks schema to allow for non-unique entries.
- Modified user schema to make displayName optional.
- Updated journal metadata for versioning.
- Introduced a new crate `pgpull` with functionality to pull data from a remote PostgreSQL database.
- Added `Cargo.toml` for `pgpull` with necessary dependencies.
- Implemented `pull_data` function in `pgpull` to handle data pulling logic.
- Updated `rockskyd` crate to include `pgpull` as a dependency.
- Created a new command module `pull` in `rockskyd` to facilitate data pulling.
- Enhanced the main application to support a new subcommand `pull` for executing the data pull operation.
- Updated the journal with a new entry for the `woozy_saracen` version.
fix: postgres env var and packages in workspaces config
- Added default value for primary key `id` in the following tables: albums, album_tracks, api_keys, artist_albums, artist_tracks, artists, dropbox_accounts, dropbox_directories, dropbox_paths, dropbox_tokens, dropbox, google_drive_accounts, google_drive_directories, google_drive_paths, google_drive_tokens, googledrive, loved_tracks, playlist_tracks, playlists, profile_shouts, queue_tracks, scrobbles, shout_likes, shout_reports, shouts, spotify_accounts, spotify_tokens, tracks, user_albums, user_artists, user_playlists, user_tracks, users, webscrobblers.
- Refactored queries in dropbox and join endpoints to use drizzle-orm for database interactions.
- Updated OAuth callback logic to handle dropbox tokens and user associations more efficiently.
- Added new entries to the journal for tracking purposes.
- Changed the import from tracks to playlists in user-playlists schema.
- Updated the playlistId reference in user-playlists to point to playlists instead of tracks.
- Modified the insert_album_track function to remove xata_createdat from the insert statement.
- Updated the insert_playlist_track function to remove added_by from the insert statement.
- Removed added_by field from the PlaylistTrack struct in xata.
- Changed xata_version fields in various schemas (album-tracks, artist-albums, artist-tracks, dropbox-accounts, dropbox-directories, dropbox-paths, dropbox, google-drive-accounts, google-drive-directories, google-drive-paths, googledrive, spotify-accounts, spotify-tokens, user-albums, user-artists, user-tracks) to allow null values.
- Updated snapshot and journal files to reflect changes in database schema.
- Implemented batch processing for syncing album tracks, artist albums, artist tracks, playlist tracks, user albums, user artists, user tracks, and user playlists in the data pull process.
- Added new repository functions for handling album tracks, user albums, artist albums, artist tracks, user artists, playlist tracks, user playlists, user tracks, and their respective insert operations.
- Enhanced user album, user artist, user playlist, and user track structs to include optional URI fields.
- Updated the album, artist, track, user, playlist, loved track, and scrobble repositories to include asynchronous data fetching and insertion methods.
- Implemented batch processing for syncing albums, artists, tracks, users, playlists, loved tracks, and scrobbles from a source PostgreSQL database to a destination PostgreSQL database.
- Enhanced error handling during data insertion to log failures without interrupting the sync process.
- Removed unique constraints on albumUri and artistUri fields in the tracks schema to allow for non-unique entries.
- Modified user schema to make displayName optional.
- Updated journal metadata for versioning.
- Introduced a new crate `pgpull` with functionality to pull data from a remote PostgreSQL database.
- Added `Cargo.toml` for `pgpull` with necessary dependencies.
- Implemented `pull_data` function in `pgpull` to handle data pulling logic.
- Updated `rockskyd` crate to include `pgpull` as a dependency.
- Created a new command module `pull` in `rockskyd` to facilitate data pulling.
- Enhanced the main application to support a new subcommand `pull` for executing the data pull operation.
- Updated the journal with a new entry for the `woozy_saracen` version.