API – [v2.12.2]

In this release we fix a few small bugs and make another tiny change to out cache management system. For the next release we are going to move all cache clear requests to queues.

Added

  • We have added additional tests to our POSTMAN test collection to ensure allowed values exist where expected.
  • We have updated our OPTIONS responses for summary controllers; where relevant, and we show the allowed values for a parameter or field.

Changed

  • We have updated our back-end dependencies.
  • We have updated our OPTIONS requests; in some cases, we were not showing allowed values for POST fields and GET parameters.

Fixed

  • We have tweaked our cache query; we use UNIX_TIMESTAMP() for comparison.
  • We have removed a unique index from the resource_type table.
  • We have updated the OPTIONS response for the resource-types collection; we show the allowed values for the item_type_id.

API – [v2.12.1]

In this release, we have reworked the majority of the code responsible for handling the different item type. As we added additional item types, it became clear we had a problem. We have reworked the system to be more configuration driven ready for version 3 of the API.

Added

  • We have reworked our item configuration; we are moving away from multiple item type classes and moving towards a configuration based setup.

Changed

  • We have updated web.config; our server will not serve static JSON files.
  • We have updated our back-end dependencies.
  • We will no longer send request error mails for 404s; the number of emails is getting out of hand.
  • We have updated our cache manager; some endpoints will only ever have a public cache, never a private cache.

Fixed

  • We have fixed a small bug when creating items of type ‘simple-item’ and ‘simple-expense’; we are not setting a date for ‘created_at`.
  • We have tweaked our cache management system; our system will not create a private cache for authenticated users when they are looking at public endpoints for which they have no permissions.
  • We have updated the allowed values for some OPTIONS requests; the allowed values are sometimes not displaying.
  • We have made a minor tweak to the query for selecting cache keys.

API – [v2.12.0]

For this release, we are continuing to pick up all the small issues from the backlog. The next couple of releases are going to add some pretty significant features, so we are continuing to ensure our API is stable.

Added

  • We have added the ability to exclude public resource types; to exclude public resource types include `exclude-public=1` in your request URIs.
  • We have added support for database transactions; if we are modifying more than one table, we use database transactions.
  • We have added a route to show the number of cached keys for the authenticated user and then optionally delete.
  • We have included the schema files for the API. The schema files are accessible at `/api/schema/[type]`.

Changed

  • We have reworked our Option responses; we have moved the code from the controllers ready for the creation of a new package/library.
  • We have removed some duplication in our controllers, fetching dynamic data for Options requests and validation responses is simpler.
  • We have updated all manage controllers; we make use of the existing`user_id` property if we need a `user_id`.
  • We have reworked how we are clearing cache; we clear the cache for all permitted users when any user makes a cache clearing change.

Fixed

  • We have fixed a couple of instances where we are not passing ids through our hashers.
  • We have fixed the include category and subcategory objects in the resource type items collection.
  • We have fixed a couple of transformers; we were not correctly formatting totals.
  • We have corrected not found calls; in some cases, we were showing error messages on our live environment that we don’t want to show.
  • We have fixed the allowed values subcategories array; when we show the allowed values array with a validation error, the collection will have values.
  • We have reworked all our deletes; in some cases, we were possibly creating null references.
  • We have moved a call to fetch a config value; the function call is inside a loop which is a performance issue.
  • We have updated the item type models’: the `updated_at` and `created_at` come from the relevant item type model.

Removed

  • We have removed all API request logging; the request logging isn’t adding any value data that we can’t get via other means.

App – [v1.16.0]

In this release, we add the views that exist on the website but not the app, category and annual views. We also fixed a couple of nasty bugs.

Added

  • We have added a category and subcategory summary at the resource type and resource level if the item type supports assigning categories.
  • We have added an annual and monthly summary at the resource type and resource level if the item type supports an ‘effective date’ or similar.

Changed

  • We have tweaked the generated dates for our summary ranges; we use months and years to create the ranges rather than fixed numbers of days.
  • We have updated the add resource controls; the add resource controls will now only display on the dashboard and at the resource type level.
  • We have tweaked the spacing between ‘dashboards’; the gaps were a little too large.
  • We have tweaked our design; our design was a little too bubbly; there is nothing wrong with corners.
  • We have removed inline styles.
  • We have reworked the code to fetch the items at a resource and resource type level; we have moved some of the logic into the `Requests` class.
  • We have updated our Roadmap.

Fixed

  • The delete action for resource types with item type simple-expense and simple-item no longer 404s; we implemented the resource version of tables.
  • We have updated the related expenses and items which display on an item page; the category and subcategory ids, the category ids are missing from the request URIs.

API – [v2.11.6]

In this release, we add a header to allow local caching to be ignored and we continue refactoring and fixing.

Added

  • We have added support for an `X-Skip-Cache` request header; If you include the header with your request we will skip response caching and fetch live values, please use this with care.

Changed

  • We have added separate links for the documentation and example page and the postman collection.
  • We have simplified our `\Model\Transformer` classes and made it possible to alter the returned data format.
  • We have added `public` as a sorting option for resource types.
  • We have reworked our pagination class; we have moved it to a new workspace and also improved how it works.
  • We have moved our `Hash` class; the `Hash` class now lives in the `Request` namespace.
  • We have moved our `ModelUtility` class: the `ModelUtility` class now lives in the `Models` namespace.
  • We have updated the indexes in our `Hash` request class; the indexes are consistent with the rest of the app.

Fixed

  • We have updated our pagination helper to include any defined filtering parameters.
  • We have corrected pagination calls in all our controllers; we now include all possible request parameters.
  • We have corrected calls to clear public caches; we were comparing different types.

API – [v2.11.5]

In this release, we add a documentation and examples page and start refactoring.

Added

  • We have added a documentation page; the documentation page links to the API documentation and includes a couple of examples.

Changed

  • We have updated the example ENV file.
  • We have renamed a couple of our helper conversion/validation classes and moved them to a new namespace.
  • We have made a minor content tweak on the landing page; the documentation button is in another section.
  • We have updated and relocated our validation classes; the validation classes are now part of the `App\Request\Validate` namespace.
  • We have reworked our summary controllers; we have removed some code duplication and added additional error checking.

Fixed 

  •  Incorrectly assuming the result will be an array with at least one value.

API – [v2.11.3]

For this release, we extend our local caching.

Added

  • We have added an application cache for collections; we include the ETag header however we are not yet returning a 304.

Changed

  • We have updated the caching system to respect the `cache` config setting.

API – [v2.11.2]

In this release, we tweak our local caching system.

Changed

  • We have split calls to clear public and private cache keys.
  • We only clear public cache keys when modifying a public resource type.
  • We have updated the web.config; the web.config file was referring to PHP7.3.
  • Added removed class type hints now that we are running PHP7.4.

API – [v2.11.1]

In this release, we are taking the first steps to add caching to the Costs to Expect API. We are starting with application caching, in a later version, we will add conditional caching, specifically through ETags, we will return a 304 when relevant.

Added

  • We have added an application cache for collections; we include the ETag header however we are not yet returning a 304.

Changed

  • We have moved our route validators; the route validators sit inside the `App\Request` namespace.
  • We have moved our `Header` utility class; the `Header` class sits inside the `App\Response` namespace.
  • We have moved our `RoutePermission` utility class; the `Permission` class sits inside the `App\Request` namespace.
  • We have moved and simplified our `Parameter` classes; the `Parameter` classes sit inside the `App\Request` namespace.
  • We have moved and renamed the `RequestUtility` class; the `BodyValidation` class sits in the `App\Request` namespace.