Skip to content

Releases: hellhub-collective/api

v3.0.0

25 Apr 12:32
01c02bd
Compare
Choose a tag to compare

What's Changed

Support incoming Helldivers! This major release will hold up against the toughest of enemies. Our v3.0.0 comes with a barrage of improvements and fixes.

Overhauled docker build process 🐳

We modified the dockerfile to not only be much more readable but also to speed up build times by almost 50%. We moved the database location to the project root so we can create database files as needed.

Fortified data refreshing ⏬

In an effort to make the data refreshing mechanism more reliable we refractored it to be a single transaction instead of many independent queries, this not only speeds up the process by about 200ms but also ensures that all data is available and intact when saved to the database.

SQLite based middleware 🐦

The rate limiting and request caching mechanisms now use SQLite as their storage strategy. This change was made in an effort to reduce the memory consumption. The main database as well as the new cache.db database files are located in the new database folder inside the project' root.

Reliable dates are a thing 📅

About time! With the help of the amazing Helldivers 2 Community we have figured out how to parse dates produced by the Arrowhead Game API and now provide accurate dates for Reports, Orders and every other content-type that has an in-game date.


Full Changelog: v2.8.0...v3.0.0

v2.8.0

22 Apr 11:01
919397f
Compare
Choose a tag to compare

What's Changed

This release introduces the imageUrl field on the Planet model that contains the texture for the planet surface.


Full Changelog: v2.7.0...v2.8.0

v2.7.0

18 Apr 08:03
2d74067
Compare
Choose a tag to compare

What's Changed

This release introduces endpoints that alllow you to track the internal cron jobs, like the one that fetches the source data from Arrowhead's API. We have added two new routes for your convinience:

  • /api/crons: List all cron jobs
  • /api/crons/:name: Get a cron by name

This allows you to better fine tune your periodic requests to the API and prevent hitting request limits by eliminating the need for aimless overfetching.

Object structure

{
  "name": "refresh_from_source",
  "pattern": "0 */1 * * * *",
  "status": "ok",
  "busy": false,
  "runs": {
    "current": 1713426181556,
    "previous": 1713426180002,
    "next": 1713426240000
  }
}

Object mapping

As you can see, we added properties for the next, current and previous runs. You can use the name property to access a single cron job via the designated endpoint. Here is a overview of what each property means:

Property Type Description
name string Name of the cron job
pattern string Pattern of the cron job
status string Determines if the cron job is healthy
busy boolean Determines if the cron job is currently executing
runs.current number Current run date in ms
runs.previous number Previous run date in ms
runs.next number Next run date in ms

Full Changelog: v2.6.0...v2.7.0

v2.6.0

17 Apr 09:44
367bf77
Compare
Choose a tag to compare

What's Changed

In this release we have addad error monitoring and performance tracing, powered by Sentry.

Enable Sentry for self hosted API's 👁️

By default none of the sentry features are enabled and the API should work the same as before for anyone who doesn't want sentry to collect error data.

  • Error monitoring: To enable error monitoring you need to provide a SENTRY_DSN environment variable, by default senty will only run in production environments.

  • Performance tracing: To enable performance tracing you will need to pass a build argument to your docker container by the name of SOURCE_MAP_TOKEN, this will be your sentry auth token. Preferably you only ever pass this build argument to the deployment container using: docker build --build-arg="SOURCE_MAP_TOKEN=xxxxxx"


Full Changelog: v2.5.0...v2.6.0

v2.5.0

16 Apr 08:09
d20d7c8
Compare
Choose a tag to compare

What's Changed

We are proud to announce our biggest release yet! Much has changed, been optimized and added to the API for your convenience, check out what we have been working on:

Memory issues 📈

Addressed some memory issues by poorly written new PrismaClient() usage. Deployments should now stop leaking memory after left running for a week or more.

Liberation fields 🦅

The Planet model now contains information about the current liberation progress. Following fields were added in particular:

  • liberation: The percentage of the planet currently liberated.
  • liberationRate: The liberation rate in percent per hour.
  • liberationState: One of the following: WINNING, DRAW, LOSING, N/A

New endpoints 🚀

Two new models have been added to the API, both come with their respective fields on the Planet model as well as their own endpoints:

Biomes

  • /api/effects: Get a list of all environmental effects.
  • /api/effects/:id: Get a environmental effect by id.
  • /api/effects/:id/planets: Get the planets matching a specific environmental effect.

Environmental Effects

  • /api/biomes: Get a list of all biomes.
  • /api/biomes/:id: Get a biome by id.
  • /api/biomes/:id/planets: Get the planets matching a specific biome.

The interactive postman collection has already been updated.


Full Changelog: v2.4.0...v2.5.0

v2.4.0

03 Apr 13:55
33ee250
Compare
Choose a tag to compare

What's Changed

This release adds request logging to the the API! Following format is used for incoming requests:

screenshot_logging

We also optimized the way that the cron polling message is displayed, so you can better spot the polling mechanism in your console logs.


Full Changelog: v2.3.1...v2.4.0

v2.3.1

03 Apr 08:13
a737627
Compare
Choose a tag to compare

What's Changed

In an effort to reduce the memory usage of the API we made some changes to the way we handle rate limiting and request caching. We switched out memory-cache for node-cache and did some refractoring.


New Contributors

Full Changelog: v2.3.0...v2.3.1

v2.3.0

31 Mar 01:12
f5f4273
Compare
Choose a tag to compare

What's Changed

We experienced major outages yesterday night due to a database type mismatch caused by the source API. The problem has been resolved and a fix has been implemented to prevent future occurences of the sorts.

Decreased synchronization time 🕐

We've reduced the data synchronization interval from 30 minutes to just 1 minute! Now your data is always up to speed!

New stratagem data 🆕

We've updated our source data to include two brand new stratagems that have been added to the game recently:

Codename Name Call-in Uses Cooldown
LAS-99 Quasar Cannon 3 seconds Unlimited 480 seconds
MG-206 Heavy Machine Gun 3 seconds Unlimited 480 seconds

Full Changelog: v2.2.0...v2.3.0

v2.2.0

27 Mar 11:05
b38e547
Compare
Choose a tag to compare

What's Changed

Some very exciting changes await! Shout out to all developers over at Helldivers 2 Community that have reverse engineered the required endpoints for this addition to our API. Here is what is newly available for you:

Statistics

Statistics for the entire galaxy or a specific planet, this includes number of kills, friendly fire kills etc. Please Note that not every planet has statistics, this is because there may not have been fought a battle on it yet.

  • /api/statistics: List all available statistics.
  • /api/statistics/:id: Get a specific statistic by id.
  • /api/statistics/galaxy: Get the galaxy wide statistics.
  • /api/planets/:id/statistics: Get statistics for a planet.

Reports

You can find reports by pressing R2 or the PC equivalent while in your ship. Contain bits of story and lore based on the players actions and performance in the war.

  • /api/reports: List all available reports.
  • /api/reports/:id: Get a specific report by id.

Assignments

Assignments are Major Orders that are very important to the war progress. It is possible that a given time there is no Major Order and the endpoint will return an empty array.

  • /api/assignments: List all available assignments.
  • /api/assignments/:id: Get a specific assignment by id.
  • /api/assignments/:id/rewards: Get the rewards for a specific assignment.

Full Changelog: v2.1.0...v2.2.0

v2.1.0

25 Mar 11:17
07984eb
Compare
Choose a tag to compare

What's Changed

This release contains some quality of life improvements for the repository. Following changes were made:

Test Suites ➿

We added test suites for all existing routes inside the __tests__ folder. With each pull requests these tests are run and the project is built to ensure everything still works as intended.

Documentation 📖

We removed the postman.json file inside the repository root and published a interactive and browsable postman collection that can be found here. We will update the documentation as we implement new features and endpoints.


Full Changelog: v2.0.0...v2.1.0