Releases: trackedout/dunga-dunga-backend
Releases · trackedout/dunga-dunga-backend
1.0.7
[1.0.7] - 2024-12-28
Changed
- Automatically publish changelog to Github release
latest
[latest] - 2024-12-28
Changed
- Generate full changelog and store as latest release
[1.0.7] - 2024-12-28
Changed
- Automatically publish changelog to Github release
[1.0.6] - 2024-12-27
Added
- Add all APIs and supported events to README.md
Changed
- Broadcast player death messages when a player dies in the dungeon
- Do not show cards bought for comp runs
- Do not send claim-invalidated notification if game was already ended
- Bump the npm_and_yarn group across 1 directory with 8 updates
- Send discord notification when a claim is invalidated
- Process queued players synchronously to ensure ordering is retained
- Run worker and web app as separate processes, and scale web app to 2 processes
- Improve discord and in-game notifications, adding run type to in-game messages
[1.0.5] - 2024-12-22
Added
- Support building both dev and prod container images
Changed
- Fix model generation for scores batch API
- Set MongoDB connection pool size to 50 (default was 5)
- Improve logging and ops messaging around dungeon claim events
- Sync to burn node by default, and delete remote files that are missing at source
- Log an event showing the score diff when scores are synced
Removed
- Remove unused handler for 'ready-for-dungeon' event
[1.0.4] - 2024-12-12
Changed
- Give new players 12 competitive shards
- Delete conflicting dungeons (based on name or IP) when registering a new dungeon
- Edit Discord messages, enriching with more data as the run continues
- Ignore allow-listing errors on join
[1.0.3] - 2024-12-03
Changed
- Automatically allow-list all players
- Use oldest healthy dungeon first
- Replace nodemon with tsc-watch, and add scripts for hot-deploying to k3s cluster
- Release dungeon as part of releasing invalid claims
- Broadcast player events to the lobby
Removed
- Remove defunct dev scripts
[1.0.2] - 2024-09-15
Added
- Add 'card-visibility-updated' event which toggles the visibility of a card in a given deck
Changed
- Reuse Card API model for Item API
- Allow source scoreboard to be empty for admin trades + cleanup swagger docs
[1.0.1] - 2024-08-10
Changed
- Ensure player decks and inventory values are seeded on join
[1.0.0] - 2024-08-10
Changed
- Rewrite Card storage logic so that cards are not deck specific
[0.7.1] - 2024-08-10
Changed
- Prevent player from trading in a shard if they are already in queue
[0.7.0] - 2024-08-10
Added
- Add 'trade-requested' event that mutates scoreboard values (with safety checks)
Changed
- Send player joined events when player record was just created
- Only TP players out of the dungeon entrance if they're not meant to be there
[0.6.1] - 2024-07-27
Changed
- Embed cards played, bought, etc as part of game notifications to Discord
- Rework dungeon scheduling, switch to Claim based acquisition
- Ignore TangoCam events
- Use 'player-seen' event to log joined-network message
[0.6.0] - 2024-07-19
Changed
- Reduce the rate at which the close-door commands are sent to the lobby
- Use batch score internal call when creating individual score records
- Default to 10,000 results when pagination limit is not set
- Restrict door actions to players seen in the past minute
- Don't open door if player is already in the dungeon
- Teleport player into dungeon once they walk through the door
- Schedule commands to open / close dungeon door based on queue state
- Store run ID as part of each event
- Prevent players that are not in the IN_LOBBY state from queueing again
- Do not double-teleport players when they first get assigned to the dungeon
- Reference Ravager emoji by ID
- Send Discord notifications on key dungeon events
[0.5.1] - 2024-06-22
Changed
- Delete or upgrade a bunch of dependencies, and remove unwanted cruft
- TP players to dungeon ever 15 seconds until they connect (or the dungeon is released)
- Regularly delete stale events, locks, and tasks from MongoDB
- Allow players to play with a different deck by storing the active deck ID
Removed
- Remove unused dependencies
[0.5.0] - 2024-06-09
Changed
- Create API for storing player stats
[0.4.1] - 2024-06-09
Added
- Support shutting down all empty dungeons on 'shutdown-all-empty-dungeons' event
Changed
- Revert moving BUILDING instances to AVAILABLE, and instead mark new instances as UNREACHABLE
- Limit task API so that only tasks created in the last minute are returned
[0.4.0] - 2024-06-08
Changed
- Allow dungeons in BUILDING to be marked as healthy
- Mark instances as BUILDING when they are first registered
- Wait for a dungeon to be healthy for more than 15 seconds before moving players into it
- Give players a basic starter deck when they first join the network
- Schedule a shutdown task for empty dungeons that are marked as 'in-use'
- Use the oldest dungeon first when assigning dungeons to players
- Do not queue a player if their deck is empty
- Rename item route to prevent clashing with existing card inventory APIs
- Allow delete-card API to contain ID and server of card
- Switch to modern formatting style
- Don't remove an instance from the DB until it has been stale for 5 minutes
- Include stale players in total player count
[0.3.0] - 2024-04-21
Changed
- Rewrite dungeon queue logic, adding support for assigning instances to a specific player
- Notify operators on lobby server when moving a player to a dungeon
- Limit active instances to those without players and match 'd001' format
- Mark instance as in-use if there are active players, and stale when shutting down
- Update README with latest OpenAPI model generator script
- Only select dungeons that match the format of d001
- Create an API which returns the network state as a list of key-value pairs
- Reduce logging verbosity for background worker, and run less frequently (now every 5 seconds)
- Create skeleton of Item API
- Set up a container stack for local dev including Agronet and DBs
Fixed
- Reject the health-check Promise if connection fails
[0.2.2] - 2024-02-16
Added
- Support setting the sourceIP as part of call body in dev mode
- Added events for managing dungeons
Changed
- Periodically check network connection to instances
- Replace console logs with logger abstraction
- Schedule a kick task for each player when clearing a dungeon
- Create background thread that assigns players to available dungeons
- Expect /delete-card body to contain the card data
Fixed
- Fixed it hopefully
- Always re-create dungeon instance records when instances come online
- Deregister unreachable instances before players connect
[0.2.1] - 2024-02-15
Changed
- Require player and deck ID fields for get / delete card(s) APIs
- Update event.service.ts
- Updated .gitignore
Fixed
- Set player state to in_lobby when they reconnect to the lobby server (#13)
[0.2.0] - 2024-01-05
Added
- Add index to Card schema
- Support deleting a card using a filter
Changed
- Overwrites the existing deck with the new cards (#12)
- Merge pull request #11 from trackedout/9-fix-card-deletion-filter-logic
- Merge pull request #10 from trackedout/9-fix-card-deletion-filter-logic
- Schedule task to move player to dungeon instance instead of using rcon
- Create Tasks API, used to schedule commands on remote Minecraft instances
- Handle allowed-to-play event by allowing the player to queue for DO2
- Expose create and update timestamps for all describe APIs
Fixed
- Use the request body
- Update interface to use exclude instead of pick
[0.1.3] - 2023-12-28
Changed
- Validate that Player exists when adding cards to a deck
- Disable use of @/modules imports
- Enable buildx driver
- Multiplatform
- Run 'yarn lint --fix'
- Use 'latest' tag for docker image when building 'main' branch
- Create GitHub action to automatically build and push to GitHub Container Registry
- Switch to Github container registry
- Use node 18 and add docker build commands
Removed
- Removed unused environment variables, clean up development configs
[0.1.2] - 2023-12-21
Added
- Add card API, used to list and add cards to a player's deck
Changed
- Update server when player joins the queue, ignore rcon timeouts
- Use Rcon to move player to D.O.2 instance, if one is available
- Set Player state to 'in-queue' when player joins the queue
- Validate that player is in queue and a dungeon instance is available
- Create server record (if missing) when server posts a health update event
- Create player record (if missing) when player joins the network
- Include location, source IP, and processing metadata as part of Event document
Removed
- Delete unused routes
- Delete unused files
[0.1.1] - 2023-12-13
Changed
- Create /events API which will be used by AgroNet to log Decked Out dungeon events
- Delete unused email integration
- Expose swagger in json format, and add documentation on how to generate Kotlin client classes
- Improve getting started documentation
- Create docker-compose file for just running MongoDB
[0.1.0] - 2023-12-12
Changed
- Initial commit: created using 'npx create-nodejs-ts-app'