- Status request providing meta-level data to a combination.
- Tracking of search runtimes in seconds instead of intended milliseconds.
- Tracking for the search requests.
- Invalid routes returning wrong status code of 500 instead of the intended 400.
- Missing tracking values on errors.
- Tracking of request-related data as a first test.
- Command for auto-updating combinations under certain conditions.
- Updating the
lastUsageTimecolumn in the Combination table with each request. - Verification of the combination id in the paths, returning status code 404 if the combination does not exist.
- PHP version from 7.4 to 8.0.
- Fixed translations not always using the English as fallback.
- Reduced responses in
item/list,item/randomandsearch/query: IfnumberOfRecipesPerResultis set to 0 in the request, the response will no longer contain the keysrecipesandtotalNumberOfRecipesfor the entries, for a performance increase.
- Updated dependency
factorio-item-browser/api-databaseto version 3.5.0.
- [BC Break] All requests require the full combination id in the URL. E.g. vanilla electronic circle becomes
/2f4a45fa-a509-a9d1-aae6-ffcf984a7a76/item/electronic-circuit. Use the new Combination API to get the id of a combination. - [BC Break] Replaced
/authrequest and its JWT token with an API key for all requests. - Search cache is now stored in a binary format instead of a readable string.
- Requests
/combination/status,/combination/validateand/combination/trigger. Those are now handled by the Combination API itself.
- New endpoint
/combination/validateto validate a combination against the Factorio Mod Portal. - Parameters
last-usageandmax-updatesto theupdate-combinationscommand to overwrite default values from the config.
- Command
update-combinationsto look for combinations needing an update.
- Charset of all tables to utf8mb4 to actually be UTF-8.
- All identifying columns' collation to utf8mb4_bin to make them case-sensitive, as they are in the game.
- Support for PHP 7.3. The project must now run with at least PHP 7.4.
- Demo agent is no longer allowed to create exports.
- Missing CORS headers.
- CORS headers.
- New endpoints
/item/listand/recipe/listto get a full list of items or recipes respectively.
- Allow "base" mod to be absent in
/authrequest as of FFF #343. - Indirect dependency
dasprid/container-interop-doctrinetoroave/psr-container-doctrine.
- Attribute
sizeto the generic icon response. - Command for clearing the caches from out-dated entries.
- Doctrine Migrations for managing the database structure.
- New endpoints
/combination/statusand/combination/exportto trigger new exports and check their status.
- Full refactoring of the API server.
- Extracted files for the database access to separate library
factorio-item-browser/api-database. - Extracted search logic to separate library
factorio-item-browser/api-search. - Extracted import logic to separate project
factorio-item-browser/api-import. The API server now only reads from the database (with the exception of the CachedSearchResult table). - Changed library
factorio-item-browser/clientto latest version. - Use client request and response entities and its serializer to parse requests and build responses.
- Machine preferred in sorting from "player" to "character" as of in-game change.
- Dependencies from Zend to Laminas.
- API: Removed
parametersfield from the error response when request validation fails. Error responses now always have only the message. - Agent name from the
authrequest. The access key is now enough. - No longer supported endpoint
mod/meta.
- Request
recipe/machinesproviding all machines able to craft the specified recipe. X-VersionandX-Runtimeto all response headers.
- Conflicting icons between mods.
- Inconsistent numbers of recipes.
- Expensive recipes are now returned attached to their normal version instead of a separate recipe.
This changes the responses of
/item/ingredient,/item/product,/item/random,/recipe/detailsand/search/queryrequests. - Changed format of error responses.
- Removed
metanode from all responses.
- Empty search actually returned a result without any data.
- Wrong number of enabled mods.
- Generic details partially ignored enabled mods for items.
- Mods matching the search query generating a search result without data.
- Initial release of the API server.