API – [v2.17.1]

In this release, we add the X-Last-Updated header to many more routes. We are going to conditionally cache responses in the Costs to Expect App and need to know the last time the content changed, one day we will use the etag.

Changed

  • We have added the X-Last-Updated header to the resource-types, resources, categories, subcategories, items and resource items collection routes.
  • We have added the X-Last-Updated header to additional summary routes; the header was missing, and we are going to use it.
  • We have increased the coverage of our request test suite.
  • We have relocated our Transformer classes; we have moved them out of the Models namespace.

Fixed

  • We have updated the way we calculated the value for X-Last-Updated. We are using the max of the created at and updated at, not just looking at the created at time.

API – [v2.17.0]

In this release, we rework our item controllers, add a `complete` filter for the `game` item-type and reorganise all item-type classes.

Added 

  • We have added a `complete` parameter for the `game` item-type; when the parameter is included and set to true, only complete games will be returned in collections and summaries.

Changed

  • We have added item-type based response classes for all item collections and summaries. Item and resource type items are unique; there are no shared dependencies. The shared dependencies were a result of the first two item-types being similar, with the addition of the game item-type, we have learnt our lesson.
  • We have tweaked the TTL for permitted, and viewable resource types. The TTL for public viewable resource types is higher than for private users.
  • With the addition of more item-type classes, we have tweaked our collection TTLs for public and private users.
  • We have moved our ‘Method’ classes; it doesn’t make sense for them to sit inside the ‘Option’ namespace.
  • We have moved our ‘AllowedValue’ classes; it doesn’t make sense for them to sit inside the ‘Option’ namespace.
  • We have reorganised all the item-type classes; we are keeping all the classes for each item-type together.
  • We have tweaked our response classes; we will do slightly less work when reading from the cache.

Removed

  • We have removed all our interfaces; the interfaces were not useful, and we are going a slightly different way with the item-type classes, interfaces will return.

API – [v2.06.2]

In this release, we continue our long-term task of ensuring the API can handle all the different item-types we have planned. The initial version of the API focused on expenses; slowly, we are adjusting the API to a more modular system.

Added

  • We are now locally caching the permitted and viewable resource types; this change means we can skip a more expensive query per API request whilst the response is cached, we are experimenting with the TTL.

Changed

  • We have added item name and description fields to the partial-transfers collection.
  • We have updated the schema for partial-transfers.
  • We have updated the game item-type; the winner field will now be null or an object, the object will have an id and a name.
  • We have updated the OPTIONS request for the game item-type; the allowed values for the winner field will display if necessary.
  • We have tweaked our middleware; we use our Hash class rather than duplicating the effort.
  • We have created several new classes to generate the allowed values data; these new classes are specific to each of our supported item-type. This change will speed up the OPTIONS requests for the non allocated-expense item type as we will no longer query the database when we know there will be no results.
  • We have added a check to limit access to the partial-transfers route. The ‘allocated-expense’ item-type supports the partial-transfers feature, partial-transfers don’t make sense for the other item-types.
  • We have drastically simplified route validation. The API controls access to resources at the resource type level; we have updated all route checks to validate the requested resource type rather than validate specific access to the request entity.

Fixed

  • We have corrected several configuration file calls; our calls were looking at transfers, not partial transfers.
  • We have added localisation files for the simple-item and game item-type, several were missing.

App – [v1.20.0]

In this release, we add the dashboards for our new board, card and dice game tracking feature. The feature isn’t quite complete; we introduced a couple of issues in the last release so needed to ship early.

Added

  • We have updated the main dashboard; our main dashboard supports the game item-type.
  • We have added the resource level game item-type dashboard.
  • We have added the resource-type level game item-type dashboard.
  • We have added a toggle to allocated-expense item-type tables; you an optionally include unpublished expenses in the tables.
  • We have added the effective date for an allocated-expense to the item detail page.

Changed

  • We have updated our error messages; our messages will provide a little more detail.
  • We have updated our no-resource view helpers; the help message we display will be specific to the item-type selected when creating the resource type.
  • We have updated our create, delete and edit resource forms; at the resource level, we know the selected item type, we have customised the language to match the item type.
  • We have updated our delete and edit resource type forms; we know the selected item type so have customised the language to match the item type.
  • We have added item subtype support for all our item forms; the App is aware of the resource subtype and loads the form based on the selected item subtype.

Fixed

  • We have fixed the URIs to fetch resource types and resources, there was a rogue question mark for the limit parameter.
  • We have fixed an issue with our copy and edit item forms; the App was unable to preselect the category and subcategory.

API – [v2.16.1]

In this release, we correct a minor cache issue and add extra information to resource type objects.

Changed

  • We have updated the friendly_name for item types; the updated names provide more information and make customising the App simpler.
  • We have updated the item-type object included within the resource type object; the item-type object will include the friendly_name field.
  • We have updated the description for our game item type; we are going to support dice games.
  • We have removed the duplicated includeUnpublished functions and added a reusable method to our Clause class.
  • We have disabled sessions for our web routes.

Fixed

  • We have corrected an issue with our cache; we were incorrectly creating public cache entries rather than private cache entries. No data is leaking because the cache for resource types controls access and the resource type cache is correct.
  • We have renamed the method which adds the clause to include unpublished costs. By default, the method excludes unpublished expenses, so we renamed the method to make the intention clear.

API – [v2.16.0]

In this release, we add initial support for our new feature, Board and Card game scoring. We expect there will be a couple of point updates as we develop the rest of the new feature in the Costs to Expect App.

Added

  • We have added a migration to create the `game` item-type table.
  • We have added the configuration for the `game` item-types.
  • We have added a schema for the `game` item-type.
  • We have added a schema for the `game` resource type item-type.
  • We have updated the item and resource type item collections; the collections are aware of the new `game` item-type.
  • We have updated the summary routes; the item and resource type item summaries are aware of the new `game` item-type.

Changed

  • We are upgrading summaries; the new `game` summaries include much more information than other summaries. We will upgrade all the summaries a little bit at a time.

Fixed

  • We have removed a rogue validation rule present in the POST request for the `allocated-expense` item type.
  • We have updated the item category and subcategory assignment routes. Category and subcategory assignment routes can show more than one item in the collection if the item-type configuration allows.

API – [v2.15.0]

In this release, we fix a long-standing issue with the API. The item categories route is plural; however, nothing else in the API supports multiple category assignments existing. We have added a category and subcategory limit, which is definable per item-type.

Added

  • We have added an item-subtype table; the subtypes will allow us to customise individual item-types within the Costs to Expect App.
  • We have added a migration for the new item-type and the subtypes supported by the item-type.
  • We have updated all resource collection and item response, we will include the selected item-subtype in the response.
  • We have added an item-subtype schema.
  • We have added an assigned-category schema for category assignments.
  • We have added an assigned-subcategory schema for subcategory assignments.

Changed

  • We have modified the unique indexes on the item_category and item_sub_category table; we need to remove the unique index to allow multiple category assignments per item.
  • We have updated create resource; we need you to define the item-subtype when creating a resource.
  • We have added comments to the allocated-expense and simple-expense models. We left join to the category and subcategory tables knowing there will only ever be at most one category. For later item-types multiple categories will get assigned to an item, we will need to come up with an alternative solution.
  • We have updated the clear cache calls for delete requests; we no longer add a job to the queue, we clear the cache synchronously.

Fixed

  • We have updated create resource type; we didn’t start a transaction.
  • We have updated the returned response after creating a resource type; the chosen item type will now show in the response.

App – [v1.19.0]

In this release, we update the App to support the recent change to the Costs to Expect API to allow multiple categories.

Added

  • We have added a help section which details the behaviour of each item subtype; the helper will show below the create resource form to allow a more informed choice.
  • We have added total counts to all the summary pages, the total item count will display alongside the total.

Changed

  • We have updated the create resource type form; the supported item types come from the Costs to Expect API rather than being defined in the view.
  • We have updated the create resource form; the supported item subtypes display, and an option needs to be selected.
  • We have updated the help section that details the supported tracking methods (item types).
  • We have moved the tracking method selector on the resource type form; the tracking method is the first field on the form.
  • We have updated any tables that can include categories and subcategories; we have updated the App to handle the new format of categories from the Costs to Expect API.
  • We have updated the item detail pages; we have updated the pages to handle the new format of categories from the Costs to Expect API.

Fixed

  • We have tweaked the expense tables for mobiles screen sizes; we removed an unnecessary header.
  • We have fixed the category and annual summaries; we didn’t update the summary pages for the last release.

Website – [v1.13.1]

In this release, we update the website to support the latest changes to the Costs to Expect API.

Changed

  • We have updated all our dependencies, front-end and back-end.
  • We have updated the website to handle the new format of categories from the Costs to Expect API.
  • We have slightly tweaked the look of categories in the expense tables.

App – [v1.18.1]

In this release, we tweak our cache, stop invalid requests and improve the UX.

Changed

  • We have updated the size and spacing between the control buttons for all layout sizes.
  • We have updated our back-end dependencies.
  • We continue to tweak the default cache TTL whilst we try to find the ‘right’ value
  • We have set request limits, five resource types, each with up to ten resources; we expect these limits to be the limits for free accounts.
  • We have updated the resource and resource type level dashboards; the recent expenses/items requests are sent independently to the summary requests, pagination of the list meant all summary counts were being re-requested when unnecessary.