Bar Assistant
All-in-one solution for managing your home bar
Alternative to: barsys
About
Versions (103)
v4.0.0
2024-09-20This is a new major release. Here’s a quick summary of the more interesting changes:
- Docker image is now run as an unprivileged user by default. This has various implications, so please check the migration guide for more info
- Improved API endpoint naming and structure
- Added public Bar Assistant JSON schema specification for cocktail recipes
- Data exporting is now available in multiple formats
Breaking changes
- Minimal PHP version is now 8.3
- Removed
imagickPHP extension - New extensions required:
ffi - Removed importing cocktails from collections
- Removed importing data from Bar Assistant v2
- List all cocktails and ingredients endpoints don’t have default includes anymore
- Refer to OpenAPI documentation for a list of available includes
- Shelf
- Moved
/shelf/ingredientsto/users/{id}/ingredients- Changed response schema, now returns
IngredientBasic - Supports pagination
- Changed response schema, now returns
- Moved
/shelf/cocktailsto/users/{id}/cocktails- Changed response schema, now returns
CocktailBasic - Supports pagination
- Changed response schema, now returns
- Moved
/shelf/cocktails/favoritesto/users/{id}/cocktails/favorites- Changed response schema, now returns
CocktailBasic - Supports pagination
- Changed response schema, now returns
- Moved
- Removed
cocktailsproperty fromIngredientschema- Use
/ingredients/{id}/cocktailsendpoint instead - Supports pagination
- Use
- Moved
/ingredients/recommendto/users/{id}/ingredients/recommend - Grouped
/login,/logout,/register,/forgot-password,/reset-passwordand/verify/{id}/{hash}endpoints into/auth - Shopping list
- Moved
/shopping-listto/users/{id}/shopping-list- Updated
ShoppingListschema
- Updated
- Moved
- Collections
- Removed PUT
/collections/{id}/cocktails/{cocktailId}endpoint - Removed
/collections/{id}/shareendpoint - Removed DELETE
/collections/{id}/cocktails/{cocktailId}endpoint - Removed PUT
/collections/{id}/cocktails/{cocktailId}endpoint - Changed POST
/collections/{id}/cocktailsendpoint to PUT/collections/{id}/cocktails - Moved GET
/collections/sharedto GET/bars/{id}/collections
- Removed PUT
- Ratings
- Moved
/ratings/cocktails/{id}to/cocktails/{id}/ratings - Changed POST ratings response status code to 201
- Moved
- Menu
- Changed
priceattribute in menu request fromstringtointeger
- Changed
- Exports
- Added POST
/exports/{id}/downloadendpoint- Used to generate a download link for an export
- Added GET
/exports/{id}/downloadendpoint- Now requires a token and an expiration date
- Authorization is not required anymore
- Used to download an export
- Added POST
- Import
- Importing now requires a valid JSON schema
- Removed
saveparameter from/import/cocktailendpoint
- Removed
main_image_idfrom cocktail model- Use
images.sortinstead
- Use
- Removed
main_image_idfrom ingredient model- Use
images.sortinstead
- Use
- Stats
- Moved
/statsto/bars/{id}/stats
- Moved
New
- Introduced
Bar-Assistant-Bar-Idheader to specify bar id- Used for all endpoints that require bar id
- You can still send
bar_idquery parameter when needed, but it is considered deprecated
- Added
/ingredients/{id}/cocktailsendpoint, lists all cocktails that use this ingredient- Includes cocktails that use this ingredient as a substitute
- Added
/ingredients/{id}/substitutesendpoint, lists all ingredients that are used as a substitute for this ingredient in cocktail recipes - Introduced new export recipe schema
- Added
quantityto shopping list ingredients - Images are now converted to WebP format before saving to disk
- Added
/imagesendpoint, this endpoint is used to list all user uploaded images - Bar search tokens are now saved in database
- Added
/import/scrapeendpoint- This endpoint is used to extract recipe data from a website
- Result is a JSON schema that can be imported via
/import/cocktailendpoint - Images in response are now base64 encoded. This allows more flexibility in image handling for the clients
- Added
used_as_substitute_forandcan_be_substituted_withto ingredient response
Changes
- Recommended ingredients now take complex ingredients into consideration
- Image processing moved from Imagick to Vips
- This now requires
libvipsto be installed on the server- You can install it via
apt-get install -y --no-install-recommends libvips42
- You can install it via
- This now requires
ffiPHP extension to be installed, and some .ini tweaks
- This now requires
- Meilisearch client API keys are now generated via artisan command
- All dates in responses are now in ISO 8601 format
- You can now update slug of existing bar