CIRC4Life ICT Platform REST Web Services Change Log

The OpenAPI specification version is usually ahead of the REST services version, because the API design is made prior to any implementation. The goal is to iterate the OpenAPI version until we have a final API design of methods and data models and then implement the REST services to reach the same version as the API. The last columns in the table below shows the status for each module. The module is complete when its status is DONE.

Change log

OpenAPI spec REST Services Description EcoCreditCalculator EndUserModule RecycleModule RetailerModule
0.0.1 0.0.1-dev First version of OpenAPI spec files Dummy data Not available Skeleton* Not available
0.0.2 0.0.1-dev RecycleModule updates based on the discussion in Cologne Technical Meeting Working with hardcoded constants* Not available Skeleton* Not available
0.0.3 0.0.1-dev GTIN is an 64-bit integer in the OpenAPI spec Working with hardcoded constants* Not available Skeleton* Not available
0.0.4 0.0.1-dev Gather common OpenAPI definitions to a single spec file Working with hardcoded constants* Not available Skeleton* Skeleton*
0.0.5 0.0.2-dev All REST service module APIs shared with partners for feedback Working with hardcoded constants* Skeleton* Skeleton* Skeleton*
0.0.6 0.0.3-dev EcoCreditCalculator and Recycle module revisions in collaboration with EECC Working with hardcoded constants* Skeleton* Dummy Data* Skeleton*
0.0.7 0.0.4-dev OpenAPI and Data Model module revisions in collaboration with NTU Working with hardcoded constants* Dummy Data* Dummy Data* Dummy Data*
0.0.8 0.0.5-dev Full integration of Access Control Manager and Persistent Database API 0.0.8 Ready Disabled user registration for testing API 0.0.8 Ready API 0.0.8 Ready
0.0.9 0.0.6-dev Fixes/improvements defined in Cologne Technical Meeting, Oct.2019 API 0.0.9 Ready Disabled user registration for testing API 0.0.9 Ready API 0.0.9 Ready
1.0.0 0.0.7-dev New features and Eco-account registration enable API 1.0.0 Ready API 1.0.0 Ready API 1.0.0 Ready API 1.0.0 Ready
1.0.0 0.0.8-dev Recycle Bin User ID generated by ICT Platform and various bug fixes API 1.0.0 Ready API 1.0.0 Ready API 1.0.0 Ready API 1.0.0 Ready
1.0.1 0.0.9-dev API and implementation changes according to 1st Living Lab API 1.0.1 Ready API 1.0.1 Ready API 1.0.1 Ready API 1.0.1 Ready
1.0.2 1.0.0-dev API and implementation changes according to Application Testing v2 API 1.0.2 Ready API 1.0.2 Ready API 1.0.2 Ready API 1.0.2 Ready
1.0.2 1.0.1-dev Bug fixes API 1.0.2 Ready API 1.0.2 Ready API 1.0.2 Ready API 1.0.2 Ready
1.0.2 1.0.2-dev Change requested by NTU for category of unknown products API 1.0.2 Ready API 1.0.2 Ready API 1.0.2 Ready API 1.0.2 Ready

* Skeleton: Skeleton handler of the endpoint, returns only a placeholder string.

* Hardcoded constants: Several constants and calculation parameters are hardcoded in the logic because there are no data provided in order to build a proper database.

* Ping/Pong: The service returns the input parameters as a response.

* Dummy Data: The service returns a proper response but the data are examples and not fully processed by the back-end persistence layer.

Details

OpenAPI

  • Version 1.0.2: Eco-account registration endpoint allows the registration of forms that have less strict requirements for fields firstname, lastname. The client can now use any name that is at least 2 and not more than 256 characters of length, with all characters allowed, except the following: numbers(0-9) and <>, {}, [], !, @, #, $, %, ^, &, *, +, \, |, /, ?, `, ~. User locale can also be defined with a new registration form field locale. Eco-account resignation form now requires the logged-in user to provide only the email address used for registration. Eco-account update supports all field changes done to registration. Eco-account login API documents the HTTP error codes returned in case of login failure. Recycle Module now allows the Bio-waste item recycle scenario in the endpoint /recycle_evaluation by removing the requirement of fields lifetime and state from the report and adding the field weight which represents the mass of Bio-waste recycled in grams.

  • Version 1.0.1: Eco-account registration endpoint documents the HTTP error code responses for clients feedback in case of error. EndUserModule has a new endpoint to allow “Forgot Password?” functionality for Eco-accounts (/ecoaccount/forgot_password) and a new endpoint for updating the user profile details after registration (/ecoaccount/update). The latter allows the change of email, password, etc.

  • Version 1.0.0: Eco-account registration form does not require birthday and address fields and adds a new optional recyclebinuserid for registering a user that owns a Recycle Bin System user ID. EndUserModule has a new endpoint to allow resignation of registered users from the service (/ecoaccount/resignation). RetailerModule has new endpoints for accessing basic user information (/ecoaccount/ecobalance/{consumerid}) and for updating the Eco-balance without adding new purchase list (/ecoaccount/ecobalance/update).

  • Version 0.0.9: Product data model has these new optional properties: price, recycledate, ecocredits. These should be set on corresponding scenarios, e.g. the price should be set by retailer application when posting Eco-account purchase list to ICT Platform. Eco-credits are now returned per product item when the recycle history of user is requested. EndUserModule has these new endpoints: /ecoaccount/recyclebinid and /ecoaccount/recyclebinid/qrcode that return the textual and QR code respectively of the Recycle Bin User ID mapped to the user’s Eco-account.

  • Version 0.0.8: Barcode adopted for RetailerModule is GS1-128 with supported Application Identifiers (AI) 01 (GTIN) and 21 (Serial Number). Format: (01)GTIN14(21)SerialNumber, example: “(01)80614141123458(21)6789”. The object representing the Organization is simplified. ClientID is removed as the Login form of EndUserModule does not required it anymore. All POST data form fields are documented.

REST services

  • Version 1.0.2-dev: Change requested by NTU: the recycled items that are not known by GTIN/SGTIN are added in the Eco-account history with a category derived by the known product type HS key.

  • Version 1.0.1-dev: Bug fix for supported product types that did not get mapped to waste type and Eco-credit parameters properly.

  • Version 1.0.0-dev: Web services source code changes to implement API 1.0.2. Access Control Manager no longer allows login if the user has not verified his email address after registration. Email messages from ICT Platform revised in English and Greek. Recycle Module now supports the scenario of Bio-waste item recycling, with Eco-credits calculated with the incentives table 6 method of Deliverable 2.5. The values are approximate since the Deliverable does not contain analytic formulas but only mass (Kg) to Eco-credits values mapping. With these values, a triplet of formulas was created for cases 0 up to 4 Kg, 5 up to 8 Kg and 9 Kg or more. The method was based on the Polynomial Regression method.

  • Version 0.0.9-dev: User registration now accepts passwords that are 8 characters long, without any requirement for digits and being the same as username. This change was requested by users who found the registration difficult with the original password requirements. This solution decreases Eco-account security, but it is an accepted disadvantage. Registration endpoint now returns a specific HTTP error code per error case to help clients present an error dialog according to the error. Authentication Access Tokens have an increased expiration time period: from 5 minutes lifetime, now they have 1 hour. EndUserModule now has a new endpoint that will send an email to the user with password reset instructions and also an endpoint for updating account details after the registration. Finally the Eco-account registered email can be used instead of username for login.

  • Version 0.0.8-dev: User registration now generates the recyclebinuserid if it is not provided in the registration form or if provided but already taken by other user. Fixed bugs in recycle evaluation handling of RecycleModule, now the known products are filled with properties in the Eco-balance recycled item list and the recycle date is set properly.

  • Version 0.0.7-dev: User registration API is opened for EndUserModule client applications via a pre-defined set of credentials. Additionally a user can delete his Eco-account via a new resignation API. RetailerModule now allows the update of Eco-balance with or without a purchase list and the retrieval of basic user information (name, balance) for display in Retailer kiosk applications.

  • Version 0.0.6-dev: All action items for ICCS defined in the Technical Meeting at Cologne on 22/23 October are implemented and deployed. These are: a) Endpoint in EndUserModule to produce QR Code for RecycleBinUserID, b) product price in IndividualProduct data model, c) Eco-account recycled item lists include Eco-credits per item, d) purchase/recycle history return items with all known fields set, not only required properties, e) server side logging is more verbose to help administrators find problems easier, f) a placeholder image URL is returned even if the record has not set this property in the database, g) populate the product types collection of HS/UNU keys with more records.

  • Version 0.0.5-dev: Integration of Access Control Manager with protected REST endpoints, a proper logged in session Bearer HTTP Header is required to access. All OpenAPI endpoints are implemented, except from the public user registration endpoint which is disabled in this release. Once integration tests are complete between partners and problems resolved, it will be enabled for the public. All other endpoints of all modules are ready, including input data validation and persistent database support.

Roadmap

These are the goals of the ICT Platform and their corresponding status:

OpenAPI spec REST Services Description Status
0.0.1 to 0.0.9 0.0.1 to 0.0.9-dev Continuous development and testing to meet system and user requirements Continuous deployments for debugging and testing
1.0.0 1.0.0-dev OpenAPI complete, all features implemented, full stack functionality from persistence up to service level 1st working version for debugging and testing
1.0.X 1.0.X-dev Iteration over 1.0.0-dev for fixing issues Working versions for testing/issue fixing
1.X.X 1.X.X-dev New features over 1.0.X-dev Working versions for testing/issue fixing
1.0.0 1.0.0 Same feature set as latest 1.X.X-dev 1st working version with all known issues resolved
1.X.X 1.X.X New features over 1.0.0 Known issues fixed
2.X.X 2.X.X Next EU project :) Wish list