Skip to content

Release Notes

Release 1.0.0

New Features

Registration Flow improved

  • Eliminated access from CAPIF to the Register user database when onboarding is performed.
  • Isolation between CCF and Register services, interaction now is only by HTTPS requested between Register, CCF and Vault.
  • Eliminated the "role" in user creation.
    • Now a user can be an invoker or a provider at the same time
  • Administrator User:
    • New entity in charge of registering and managing users of the register service.
  • UUID to identify users.
    • When you create a user, a uuid is associated with it
    • The uuid will be contained in the token requested by the user and will be used to relate invokers and providers with users.
  • Endpoints changed and created:
    • Administrator endpoints:
      • /createUser: /register endpoint changed to createUser. Used to register new users.
      • /deleteUser: /remove endpoint changed to this. Used to delete users and all the entities they had created.
      • /login: Allows administrator to log in to obtain the necessary tokens for their requests.
      • /refresh: Retrieve new access token token.
      • /getUsers: Returns the list with all registered users.
    • Customer User:
      • /getauth now also returns the urls needed to use CAPIF, used by customer.
  • Security improvements:

    • /login uses basic auth with administrator credentials.
    • /getauth uses basic auth with customer user credentials.
    • Other requests use the administrator access token obtained from login.
  • Current fields on user creation by administrator:

required_fields = {
    "username": str,
    "password": str,
    "enterprise": str,
    "country": str,
    "email": str,
    "purpose": str
}

optional_fields = {
    "phone_number": str,
    "company_web": str,
    "description": str
}

New OpenCAPIF architecture

  • New arquitecture with separated namespaces for Vault, CCF and Register components. Communication between them now are only allowed by using REST APIs.
  • New helper service inside CCF, it will simplify integration with third parties like external management portals.

  • Helper endpoints:

    • /getInvokers : Get the list of invokers from CAPIF
    • /getProviders: Get the list of providers from CAPIF
    • /getServices : Get the list of services published in CAPIF
    • /getSecurityContext : Get the list of security contexts from CAPIF
    • /getEvents : Get the list of events subscriptions from CAPIF
    • /deleteEntities: Removes all entities registered by a user from the register
  • Security in the helper

    • To make requests to the helper you will need a superadmin certificate and password.

Events API Upgrade

  • The event management at CCF is improved, EventNotification include Event Details with required information.
  • Events updated:
    • SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE with apiIds
    • SERVICE_API_UPDATE with serviceAPIDescriptions
    • API_INVOKER_ONBOARDED, API_INVOKER_UPDATED, API_INVOKER_OFFBOARDED with apiInvokerIds.
  • Events Included:
    • SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE with invocationLogs
  • Test plan include 7 new tests in order to check new events implemented and scenarios of each notification implemented, with a complete check of Event Notification.
  • Test plan documentation includes the new event tests OCF Event test plan documentation.

Inital implementation of CI/CD

  • The inital implementation of CI/CD on gitlab was performed.
  • Detailed information in the CICD Wiki.
  • Implement initial CI/CD:
    • Description of the CI process.
      • In CI phase, created design, jobs and security checks when a branch is pushed.
      • The CI has jobs as:
        • Linting code, unit test (if needed),
        • Build and push artifacts (images) in Git OCI register
        • Security checks,
        • SCA, CVS, SAST
        • The vulnerabilities are exposed in Merge Request panel to be solved.
    • Description of the CD process:
      • Defined the environments to OCF.
        • Production env.
        • Pre-production env.
        • Validation env.
        • Dev-1, dev-2… envs (ephemeral)
      • Defined the naming convention to OCF releases
        • Tag in prod: v0.0.1-release
        • Tag non-prod: v0.0.1-rc
        • Other tags: v0.0.1-test, v0.0.1-smt
      • Defined the jobs of CD
        • CD ensures the deployment in multiple envs. Therefore, the CD pipeline has deploy-ocf, delete-ocf (if needed) jobs
    • ETSI HIVE Labs:
      • Designed, created and the Kuberntes OCF cluster is running to support OCFs deployments.
      • Iterating with ETSI HIVE’s support to solve computing issues.
        • CPU compatibilities with OCF services (MongoDB): Fixed

Documentation

Improvements on documentation

  • Documentation stored in OCF Documentation Repository
  • Continuous Integration included at repository for web documentation:
    • Develop version of documentation is automatically generated on each merge to develop branch.
    • Tagged version from main create documentation with related tag as version.

Technical Debt Solved

Improved Testing with Robot in order to cover

  • Support of new Register flows.
  • Allow different URLs for register, ccf and vault services.
  • New Variables included to manage new architecture under test.
  • Mock server developed to add the functionality of write tests involving notification from Service Under Test.
  • Docker image improved generation and libraries upgraded to Robot Framework 7.

Improved security on DB

  • Credentials requested to access mongo databases.
  • Credentials requested also by mongo-express.

Scripts upgraded

  • Docker compose version 2 used on them.
  • New cleaning script developed.
  • Scripts upgraded:
    • check_services_are_running.sh: Checks if all essential services (Vault, CCF and Register) are running.
    • clean_capif_docker_services.sh: Shutdowns and removes all services essential services.
    • clean_capif_temporary_files.sh: Removes temporaly files from local repository.
    • run.sh: Launch Essential services locally using docker compose, also monitoring can be launched.
    • run_capif_tests.sh: Launch Robot Framwork Tests.
    • show_logs.sh: Show locally logs of Services running.
    • run_mock_server.sh: Launch mock server locally on all interfaces. This axiliary server is only used by tagged mockserver tests on Robot Framework.
    • clean_mock_server.sh: Remove mock server local deployment.
    • deploy.sh: This script simplify the way to download capif repository.

Codebase Improvements

  • Documentation is now on splitted repository OCF Documentation Repository
  • Test plan was moved to OCF Documentation Repository
  • Obsolote data is removed.
  • Repository Reorganization: Enhanced structure and maintainability with a better directory layout and clearer module separation.
  • Code Quality Enhancements: Refactored code and fixed known issues

Migration to GUNICORN

  • Include production server on each microservice: Release 0 use Flask developer server, now we use GUNICORN.

Release 0.0

The APIs included in Release 0.0 are:

  • JWT Authentication APIs
  • CAPIF Invoker Management API
  • CAPIF Publish API
  • CAPIF Discover API
  • CAPIF Security API
  • CAPIF Events API
  • CAPIF Provider Management API

This Release also includes a Robot Test Suite for all those services and a Postman Test Suite for simple testing.