From 3044bff361c019448bdd378ef5026973113fb8f0 Mon Sep 17 00:00:00 2001
From: Jorge <jorge.moratinossalcines@telefonica.com>
Date: Thu, 30 Jan 2025 11:49:09 +0000
Subject: [PATCH] Deployed cb22ae2 to develop in public with MkDocs 1.6.1 and
 mike 2.1.3

---
 .../develop/images/vendor-ext/aef_profile.png | Bin 0 -> 183218 bytes
 .../images/vendor-ext/aef_profile_2.png       | Bin 0 -> 170692 bytes
 .../vendor-ext/publish_supported_features.png | Bin 0 -> 305532 bytes
 .../publish_supported_features_2.png          | Bin 0 -> 270454 bytes
 .../vendor-ext/service_api_description.png    | Bin 0 -> 152762 bytes
 .../vendor-ext/service_api_description_2.png  | Bin 0 -> 139146 bytes
 public/develop/search/search_index.json       |   2 +-
 public/develop/sitemap.xml                    |  52 ++--
 public/develop/sitemap.xml.gz                 | Bin 461 -> 461 bytes
 .../develop/vendor-ext/vendor-ext/index.html  | 274 +++++++++++++++++-
 10 files changed, 300 insertions(+), 28 deletions(-)
 create mode 100644 public/develop/images/vendor-ext/aef_profile.png
 create mode 100644 public/develop/images/vendor-ext/aef_profile_2.png
 create mode 100644 public/develop/images/vendor-ext/publish_supported_features.png
 create mode 100644 public/develop/images/vendor-ext/publish_supported_features_2.png
 create mode 100644 public/develop/images/vendor-ext/service_api_description.png
 create mode 100644 public/develop/images/vendor-ext/service_api_description_2.png

diff --git a/public/develop/images/vendor-ext/aef_profile.png b/public/develop/images/vendor-ext/aef_profile.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ad4b8484083b875e758fd8ff99706211fb6cbe4
GIT binary patch
literal 183218
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

literal 0
HcmV?d00001

diff --git a/public/develop/images/vendor-ext/aef_profile_2.png b/public/develop/images/vendor-ext/aef_profile_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..272e4df47a61067132b255be02a0bb52a01cc290
GIT binary patch
literal 170692
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
Q1^zQ@`n+jZrkL&eKg{1Q-~a#s

literal 0
HcmV?d00001

diff --git a/public/develop/images/vendor-ext/publish_supported_features.png b/public/develop/images/vendor-ext/publish_supported_features.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f90a1faa35b9588d76fad3f6aaf4f80549a6386
GIT binary patch
literal 305532
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
LV_IYE5&M4tu*ji1

literal 0
HcmV?d00001

diff --git a/public/develop/images/vendor-ext/publish_supported_features_2.png b/public/develop/images/vendor-ext/publish_supported_features_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..30d0b63edab331eab32498f6979c75613e0fdf5a
GIT binary patch
literal 270454
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

literal 0
HcmV?d00001

diff --git a/public/develop/images/vendor-ext/service_api_description.png b/public/develop/images/vendor-ext/service_api_description.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf24a10d99932b5cf93e15261590eee965ddec5d
GIT binary patch
literal 152762
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

literal 0
HcmV?d00001

diff --git a/public/develop/images/vendor-ext/service_api_description_2.png b/public/develop/images/vendor-ext/service_api_description_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ed046494a984198f1b64e97ee56ffe131bd6efd
GIT binary patch
literal 139146
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

literal 0
HcmV?d00001

diff --git a/public/develop/search/search_index.json b/public/develop/search/search_index.json
index 94dd469d..8913699c 100644
--- a/public/develop/search/search_index.json
+++ b/public/develop/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduction","text":""},{"location":"#what-is-opencapif","title":"What is OpenCAPIF?","text":"<p>OpenCAPIF is an open source implementation of the CAPIF Core Function APIs plus the logic and additional services required to fulfill the 3GPP requirements and deliver the expected functionality.</p> <p>CAPIF is the \u201cCommon API Framework\u201d defined by 3GPP to manage the APIs exposed by 3GPP networks in their northbound interfaces.</p> <p>3GPP specifications for CAPIF defines three types of entities:</p> <ul> <li>API Providers, which are the entities exposing APIs (e.g., NEF)</li> <li>API Invokers, which are the entities that consume APIs (e.g., Applications), and</li> <li>the CAPIF Core Function, which manages the relationships between the other two.</li> </ul> <p></p> <p>The CAPIF Core Function is the cornerstone of the Common API Framework and provides the following capabilities:</p> <ul> <li>Authenticating the API Invoker based on its identity and other information;</li> <li>Supporting mutual authentication with the API Invoker;</li> <li>Providing authorization for the API Invoker prior to accessing the exposed APIs;</li> <li>Publishing, storing, and supporting the discovery of service APIs information;</li> <li>Controlling the service API access based on PLMN operator configured policies;</li> <li>Storing the logs for the service API invocations and providing the service API invocation logs to authorized entities;</li> <li>Charging based on the logs of the service API invocations;</li> <li>Monitoring the service API invocations;</li> <li>Onboarding a new API Invoker and offboarding an API Invoker;</li> <li>Storing policy configurations related to CAPIF and service APIs;</li> <li>Support for accessing the logs for auditing (e.g., detecting abuse); and</li> <li>Support for publishing and discovery of service APIs information among CAPIF Core Function (CAPIF interconnection).</li> </ul> <p>The following diagram shows how API Invokers and API Providers interact with the CAPIF Core Function to Register in CAPIF, Publish APIs, Discover APIs and Consume APIs. It is important to highlight that the CAPIF Core Function is not a classical API Gateway. The API consumption takes place directly between the API Invoker and the API Provider. Therefore, CAPIF does not impact API performance in API consumption between API Invokers and API Providers.</p> <p></p> <p>If you want to know more about OpenCAPIF check The story behind openCAPIF</p>"},{"location":"#repository-structure","title":"Repository structure","text":"<p>You can check the code at OpenCAPIF Repository</p> <pre><code>CAPIF_API_Services\n\u2514\u2500\u2500\u2500helm\n\u2514\u2500\u2500\u2500monitoring\n\u2514\u2500\u2500\u2500services\n\u2514\u2500\u2500\u2500tests\n\u2514\u2500\u2500\u2500tools\n    \u2514\u2500\u2500\u2500robot\n    \u2514\u2500\u2500\u2500open_api_script\n</code></pre> <ul> <li>helm: This folder contains helm files to deploy capif under k8s environment.</li> <li>monitoring: This folder contains grafana helm files to deploy capif under k8s environment.</li> <li>services: Services developed following CAPIF API specifications. Also, other complementary services (e.g., NGINX and JWTauth services for the authentication of API consuming entities).</li> <li>tools: Auxiliary tools. Robot Framework related code and OpenAPI scripts.</li> <li>test: Tests developed using Robot Framework.</li> </ul>"},{"location":"#capif_api_services","title":"CAPIF_API_Services","text":"<p>This repository has the python-flask Mockup servers created with openapi-generator related with CAPIF APIS defined here: Open API Descriptions of 3GPP 5G APIs</p>"},{"location":"#how-to-test-capif-apis","title":"How to test CAPIF APIs","text":"<p>The above APIs can be tested either with POSTMAN tool or running the developed tests with Robot Framework.</p>"},{"location":"#test-plan-documentation","title":"Test Plan Documentation","text":"<p>Complete documentation of tests is available here: Test Plan Directory</p>"},{"location":"#robot-framework","title":"Robot Framework","text":"<p>In order to ensure that modifications over CAPIF services still fulfills the required functionality, the Robot Framework Test Suite must be successfully run.</p> <p>The Robot Test Suite covers the requirements described in the test plan at Test Plan Directory folder.</p> <p>Please check the Testing with Robot Framework Section</p>"},{"location":"#using-postman","title":"Using PostMan","text":"<p>You can also test the CAPIF flow using the Postman tool. To do this, we have created a collection with some examples of CAPIF requests with everything necessary to carry them out.</p> <p>For more information on how to test the APIs with POSTMAN, go to this POSTMAN Section.</p>"},{"location":"#important-urls","title":"Important urls:","text":""},{"location":"#mongo-capifs-db-dashboard","title":"Mongo CAPIF's DB Dashboard","text":"<pre><code>http://localhost:8082/ (if accessed from localhost) \n\nor\n\nhttp://&lt;Mongo CAPIF Express Host IP&gt;:8082/ (if accessed from another host)\n</code></pre>"},{"location":"#mongo-registers-db-dashboard","title":"Mongo Register's DB Dashboard","text":"<pre><code>http://localhost:8083/ (if accessed from localhost) \n\nor\n\nhttp://&lt;Mongo Register Express Host IP&gt;:8083/ (if accessed from another host)\n</code></pre>"},{"location":"#faq-documentation","title":"FAQ Documentation","text":"<p>Frequently asked questions can be found here: FAQ Section</p>"},{"location":"FAQ/","title":"Frequently Asked Questions (FAQ)","text":""},{"location":"FAQ/#does-the-user-have-to-develop-the-3-elements-of-the-provider-aef-amf-and-apf","title":"Does the user have to develop the 3 elements of the provider (AEF, AMF and APF)?","text":"<p>No, you only have to make the request to the \"/onboarding\" endpoint. In it you must specify a CSR for the AEF, APF and AMF and you will receive the certificates for each of them in the response.</p>"},{"location":"FAQ/#there-is-one-party-that-publishes-the-api-and-another-that-exposes-it-what-is-the-difference","title":"There is one party that publishes the API and another that exposes it, what is the difference?","text":"<p>There are different services, the APF, intended for publishing the APIs, and the AEF, intended so that the invoker can call it. The APF is what connects to the Capif Core Function to publish the service and when the service is up, you need the AEF service so that invokers can connect to it.</p>"},{"location":"FAQ/#before-publishing-an-api-do-you-have-to-be-registered-in-capif","title":"Before publishing an API, do you have to be registered in CAPIF?","text":"<p>Yes, before publishing an API you must register using the POST /register endpoint.</p>"},{"location":"FAQ/#where-is-the-registration-done","title":"Where is the registration done?","text":"<p>Registration is done in a REST API outside of the CAPIF specification taht we have implemented.</p>"},{"location":"FAQ/#is-the-username-and-password-chosen-by-the-user-when-registering-or-is-it-assigned-when-requesting-registration-to-capif-public-instance","title":"Is the username and password chosen by the user when registering or is it assigned when requesting registration to CAPIF public instance?","text":"<p>When you make the request to the \"/endpoint\" of register, you will be returned a username and a password determined by CAPIF.</p>"},{"location":"FAQ/#what-is-a-csr","title":"What is a CSR?","text":"<p>A CSR is a Certificate Signing Request. It is a generated data block where the certificate is planned to be installed and contains key information such as public key, organization, and location, and is used to request a certificate from a certificate authority (CA). In CAPIF, 3 CSRs are necessary to register a provider, for AEF, APF and AMF.</p>"},{"location":"FAQ/#when-doing-the-register_provider-where-can-i-find-the-csrs-that-are-generated","title":"When doing the register_provider where can I find the CSRs that are generated?","text":"<p>When using the \"register_provider\" command, if you add the \"debug\" option, it shows you a json with the data used to register the provider. There we can find in the body a list of 3 elements corresponding to AEF, APF and AMF. IN each of them, the apiProbPubKey field corresponds to the CSR.</p>"},{"location":"FAQ/#how-to-use-the-example-client-capif_invoker_gui","title":"How to use the example client (CAPIF_INVOKER_GUI)?","text":"<p>First you have to make a \"./run.sh host:port\" indicating the address of the public CAPIF. Once the Docker containers are up, you have to do a \"./terminal_to_py_netapp.sh\" and then a \"python main.py\". At this point we will find ourselves in a console with some predefined commands to use the Client. If we press tab twice it will bring up the list of available commands.</p>"},{"location":"FAQ/#where-is-the-capif-public-instance-located","title":"Where is the CAPIF public instance located?","text":"<p>The CAPIF public instance can be found at the following URLs: - capif.mobilesandbox.cloud:37211 (HTTPS) - capif.mobilesandbox.cloud:37212 (HTTP)</p>"},{"location":"FAQ/#do-you-have-to-publish-3-apis-one-for-each-instance","title":"Do you have to publish 3 APIs? one for each instance?","text":"<p>No, you only have to publish a single API but each component is responsible for a specific service, whether publishing or exposing.</p>"},{"location":"FAQ/#once-the-api-is-published-is-it-always-active-or-do-you-have-to-republish-it-every-time-you-want-to-use-it","title":"Once the API is published, is it always active? Or do you have to republish it every time you want to use it?","text":"<p>It is better to unsubscribe the API every time you exit the application since otherwise it could be republished and it would be double.</p>"},{"location":"FAQ/#would-the-same-username-and-password-be-valid-for-different-invokers","title":"Would the same username and password be valid for different invokers?","text":"<p>Yes, a user can have multiple invokers at the same time, and as such, the username and password would be the same.</p>"},{"location":"FAQ/#what-is-the-notfication-destination-field-in-the-register_invoker-request","title":"What is the notfication destination field in the register_invoker request?","text":"<p>This is the callback URL used to notify events. CAPIF has an Event service to subscribe to that notifies actions such as a subscription to an API, a change in the state of an API...</p>"},{"location":"FAQ/#is-the-notification_destination-a-required-field-in-the-register_invoker","title":"Is the notification_destination a required field in the register_invoker","text":"<p>No, it is not mandatory, but if you do not enter it you will not receive any CAPIF events. For example, the APF may delete the API, you will not be notified that the API is no longer available.</p>"},{"location":"FAQ/#what-is-the-purpose-of-the-discover_service-function-in-the-invoker-client","title":"What is the purpose of the \"discover_service\" function in the invoker client?","text":"<p>The discover_service returns a json with all the services that exist exposed in CAPIF at that moment.</p>"},{"location":"FAQ/#what-is-the-purpose-of-the-get_security_auth-function-in-the-invoker-client","title":"What is the purpose of the \"get_security_auth\" function in the invoker client?","text":"<p>Sirve para pedir el token o para refrescarlo en caso de que haya caducado. You have to use that token to call the API from the invoker.</p>"},{"location":"FAQ/#what-is-the-purpose-of-the-register_security_context-function-in-the-invoker-client","title":"What is the purpose of the \"register_security_context\" function in the invoker client?","text":"<p>To consume the API it is necessary to have a Security Context registered with the data and the authentication method.</p>"},{"location":"FAQ/#is-a-user-the-same-as-an-exposer","title":"Is a user the same as an exposer?","text":"<p>No, a user registers in CAPIF and once done can have the role of invoker, provider or both.</p>"},{"location":"FAQ/#where-can-i-put-my-endpoint","title":"Where can I put my endpoint?","text":"<p>You have to set your endpoint when doing the \"publish_service\" functionality: <code>publish_service capif_ops/config_files/service_api_description_hello.json</code></p> <p>In the file \"service_api_description_hello.json\" you configure the service that is going to be exposed and by developing one to suit you, you expose your API.</p>"},{"location":"architecture/","title":"Architecture","text":""},{"location":"architecture/#architecture","title":"Architecture","text":"<p>The CAPIF architecture has three main components, Register Service, Vault and CCF, which are represented in the following image:</p> <p></p> <p>Each component is separated into different namespaces and all communications between them use Rest APIs.</p> <p>Apart from the communication between components, there are 2 other entities that can use them:</p> <ul> <li>Admin/superadmin: Responsible for managing users with the Register or carrying out special operations in the CCF.</li> <li>Users: They are those who want to use CAPIF, registering as a user in the Register and as Invoker or Provider in the CCF.</li> </ul>"},{"location":"architecture/#register-ns","title":"Register NS","text":"<p>This namespace belongs to the Register service, and we find 2 components:</p> <ul> <li>Register Service: It is responsible for managing all users who use CAPIF, in addition to providing the necessary information for its use.</li> <li>Register MONGO DATABASE: It is the Register database, in it we store all the information about registered users.</li> </ul>"},{"location":"architecture/#vault-ns","title":"Vault NS","text":"<p>This namespace belongs to Vault. </p> <p>This component is responsible for managing all CAPIF certificates, so other components such as the Register or the CCF communicate with it to create new certificates or request keys.</p>"},{"location":"architecture/#mon-ns","title":"Mon NS","text":"<p>This is the main namespace of CAPIF, since it contains all the CCF services in addition to other components:</p> <ul> <li>NGINX: Responsible for acting as a reverse proxy to distribute CAPIF requests to the different services, controlling whether or not they are authorized to access them.</li> <li>REDIS: Used for internal communication of services.</li> <li>CAPIF MONGO DATABASE: CAPIF database, where all information related to CAPIF services such as invokers, registered providers or published services is stored.</li> <li>HELPER: Service that simplifies integration with third parties such as external management portals.</li> </ul>"},{"location":"architecture/#new-architecture","title":"New Architecture","text":"<p>You can check the details of all these changes in the conversation on the OCF wiki.</p>"},{"location":"releasenotes/","title":"Release Notes","text":""},{"location":"releasenotes/#release-200","title":"Release 2.0.0","text":""},{"location":"releasenotes/#new-features","title":"New Features","text":""},{"location":"releasenotes/#upgrade-code-to-3gpp-capif-release-18","title":"Upgrade code to 3GPP CAPIF release 18","text":"<ul> <li>New endpoints included in new release 18 with new logic.</li> <li>Supported Features now are mandatory for all POST and PUT Requests as is described on TS 29.222. To keep in mind:<ul> <li>All POST/PUT request now must include Supported Features attribute, default can me set to <code>0</code> to keep all features inactive.</li> <li>On subscription to Event, if you need eventDetails information on notification you must activate Enhanced Event Report feature by setting properly the Supported Features flag.</li> </ul> </li> <li>Detailed information about models and endpoints upgrade on Upgrade Release 17 to 18 Wiki</li> </ul>"},{"location":"releasenotes/#vendor-extensibility","title":"Vendor Extensibility","text":"<ul> <li>Publish API:<ul> <li>On publishing a service API, SupportedFeatures is read and checked whether VendExt feature is enabled.</li> <li>When VendExt is enabled, vendor-specific fields are searched and stored in the db inside the ServiceAPIDescription object</li> <li>Vendor-specific fields are added according to the specific format:</li> </ul> </li> </ul> <pre><code>\n    \"vendorSpecific-urn:&lt;organization&gt;:&lt;field name&gt;\": {\n        \"key1\": \"value1\",\n        ...\n        \"keyN\": \"valueN\",\n    }\n\n    e.g. \n    \"vendorSpecific-urn:etsi:mec:capifext:transport-info\": {\n        \"name\": \"trasport1\",\n        \"description\": \"Transport Info 1\",\n        \"type\": \"REST_HTTP\",\n        \"protocol\": \"HTTP\",\n        \"version\": \"2\",\n        \"security\": {\n            \"grantTypes\": \"OAUTH2_CLIENT_CREDENTIALS\",\n            \"tokenEndpoint\": \"https://token-endpoint/\"\n        }\n    }\n\n    where organization is \"etsi:mec\" and field name \"capifext:transport-info\"\n\n</code></pre> <ul> <li>Discover API:<ul> <li>On Discover request SupportedFeatures is read and checked whether VendSpecQueryParams feature is enabled.</li> <li>When VendSpecQueryParams is enabled, vendor-specific query parameters are parsed</li> <li>Vendor specific query parameters are added on the GET request according to the following format:</li> </ul> </li> </ul> <pre><code>    https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}?\n           ...\n           vend-spec-&lt;query parameter name&gt;={\n              \"target\": &lt;string that contains the JSON pointer to the attribute in the resource representation&gt;, \n              \"value\": &lt;query parameter value&gt;\n    }\n\n    e.g. \n    https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}?\n           ...\n           vend-spec-type={\n              \"target\": \"/vendorSpecific-urn:etsi:mec:capifext:transport-info\", \n              \"value\": \"REST_HTTP\"\n    }\n</code></pre>"},{"location":"releasenotes/#api-status-feature","title":"Api Status feature","text":"<ul> <li>New logic to support API Status feature on Publish and Events Services.</li> <li>Events API:<ul> <li>Event internal notifications between services improved to accomplish specification.</li> <li>On event subscription SupportedFeatures is read and stored in db to accomplish specification.</li> <li>Also SupportedFeatures is checked before send event notification, in order to accomplish specification, sending eventDetails and related information according to enhanced_event_report and apiStatusMonitoring supported features activated.</li> </ul> </li> </ul>"},{"location":"releasenotes/#remote-scripts","title":"Remote Scripts","text":"<p>New scripts developed to help on remote deployment, configuration and testing. All this script are stored under helm/scripts in capif repository.</p> <p>variables.sh contains all configuration that will be used on remote operation. This file must be filled carefully before run remote scripts.</p> <ul> <li> <p>Deployment Scripts:</p> <ul> <li>install_vault.sh: Deploy Vault component from k8s cluster, only needed if vault is not previously deployed. If it\u2019s deployed you can setup vault token on variables.sh.</li> <li>install_monitoring.sh: Deploy monitoring on k8s cluster.</li> <li>install_capif.sh: Deploy OpenCAPIF on k8s cluster. It will be deployed on configured namespace with domain and hostnames configured under variables.sh.</li> <li>uninstall_vault.sh: Rollback Vault component from k8s cluster.</li> <li>uninstall_monitoring.sh: Rollback monitoring components from k8s cluster.</li> <li>uninstall_capif.sh: Rollback OpenCAPIF from k8s cluster.</li> </ul> </li> <li> <p>Manage remote users:</p> <ul> <li>create_remote_users.sh: This script create users setup by parameters on deployed OpenCAPIF. Those users are created by administrator.</li> <li>remove_remote_users.sh: This script removes user from deployed OpenCAPIF.</li> <li>remove_remote_users_by_prefix.sh:: This script removes users by prefix.</li> </ul> </li> <li> <p>Configuration of bastion machine, this simplify DNS fixed resolution:</p> <ul> <li>get_ingress.sh: This create a configuration for dns fixed resolution for ingress configured in namespace passed by parameters.</li> <li>set_ingress.sh: This scripts adds to /etc/hosts the fixed DNS resolution for ingress setup for  namespace passed by parameters.</li> </ul> </li> <li> <p>Execute robot tests over remote deployment.</p> <ul> <li>run_remote_capif_tests.sh: This scripts launch Robot Test docker image on current machine to reach deployed OpenCAPIF. Is useful to launch with \u201c--include smoke\u201d in order to ensure all is deployed properly.</li> </ul> </li> <li> <p>Just for testing, next scripts upload dummy information to deployed OpenCAPIF:</p> <ul> <li>populate_create_remote_dummy_users.sh: : Create Dummy providers and invokers, publish service APIs and creates security context for invokers.</li> <li>populate_remove_remote_dummy_users.sh: Remove dummy information created.</li> </ul> </li> </ul>"},{"location":"releasenotes/#new-tools-and-components","title":"New Tools and Components","text":""},{"location":"releasenotes/#sdk","title":"SDK","text":"<p>New Python SDK is developed in order to simplify the creation and operation of providers and invokers. Please check the SDK repository for more information, there you can get more information about how to use it and also how to contibute to it.</p>"},{"location":"releasenotes/#provider-and-invoker-example-clients","title":"Provider and Invoker example Clients","text":"<p>In order to help developers to create their own invokers/providers entities and try the behavior of the OpenCAPIF, we also add to the OCF respository two example with console interaction at example clients repository:</p> <ul> <li>invoker-cli</li> <li>provider-cli</li> </ul> <p>More information on README of each component.</p>"},{"location":"releasenotes/#testing","title":"Testing","text":"<ul> <li>New Vendor Extensibility test suite with 9 tests. Api Events Service</li> <li>New API Status feature test suite with 20 tests.</li> <li>Improved Events test suite with 8 new tests.</li> <li>Test plan updated with default supported features for all request set to \"0\" (all inactive by default) See common operations.</li> </ul>"},{"location":"releasenotes/#technical-debt-solved","title":"Technical Debt Solved","text":""},{"location":"releasenotes/#local-scripts","title":"Local Scripts","text":"<ul> <li>All scripts were reviewed and improved.</li> <li>New scripts to manage users on local deployment added:<ul> <li>create_users.sh: This script create users setup by parameters in local deployment.. Those users are created by administrator.</li> <li>remove_users.sh: This script removes user in local deployment.</li> </ul> </li> </ul>"},{"location":"releasenotes/#issues","title":"Issues","text":"<ul> <li>Solved issue to get ready REDIS on deployment: REDIS scheduled on start to allow receive notification since service is deployed.</li> <li>Solved problem removing service APIs published is provider register more than one APF.</li> <li>Solved Superadmin problem deleting service API published through helper service if provider is not present.</li> <li>Increased the overall stability, fixing some corner cases.</li> <li>Location headers now are filled in same way at all services that needs it.</li> <li>Security issues solved.</li> <li>Base docker images present on ETSI registry.</li> <li>Robot image uploaded to ETSI Registry.</li> </ul>"},{"location":"releasenotes/#documentation","title":"Documentation","text":"<ul> <li>Postman examples are updated, including flows.</li> <li>New tests are detailed descripted on Test plan section</li> <li>New Contribute section.</li> <li>New SDK Section</li> </ul>"},{"location":"releasenotes/#release-100","title":"Release 1.0.0","text":""},{"location":"releasenotes/#new-features_1","title":"New Features","text":""},{"location":"releasenotes/#registration-flow-improved","title":"Registration Flow improved","text":"<ul> <li>Eliminated access from CAPIF to the Register user database when onboarding is performed.</li> <li>Isolation between CCF and Register services, interaction now is only by HTTPS requested between Register, CCF and Vault.</li> <li>Eliminated the \"role\" in user creation.<ul> <li>Now a user can be an invoker or a provider at the same time</li> </ul> </li> <li>Administrator User:<ul> <li>New entity in charge of registering and managing users of the register service.</li> </ul> </li> <li>UUID to identify users.<ul> <li>When you create a user, a uuid is associated with it</li> <li>The uuid will be contained in the token requested by the user and will be used to relate invokers and providers with users.</li> </ul> </li> <li>Endpoints changed and created:<ul> <li>Administrator endpoints:<ul> <li>/createUser: /register endpoint changed to createUser. Used to register new users.</li> <li>/deleteUser: /remove endpoint changed to this. Used to delete users and all the entities they had created.</li> <li>/login: Allows administrator to log in to obtain the necessary tokens for their requests.</li> <li>/refresh: Retrieve new access token token.</li> <li>/getUsers: Returns the list with all registered users.</li> </ul> </li> <li>Customer User:<ul> <li>/getauth now also returns the urls needed to use CAPIF, used by customer.</li> </ul> </li> </ul> </li> <li> <p>Security improvements:</p> <ul> <li>/login uses basic auth with administrator credentials.</li> <li>/getauth uses basic auth with customer user credentials.</li> <li>Other requests use the administrator access token obtained from login.</li> </ul> </li> <li> <p>Current fields on user creation by administrator:</p> </li> </ul> <pre><code>required_fields = {\n    \"username\": str,\n    \"password\": str,\n    \"enterprise\": str,\n    \"country\": str,\n    \"email\": str,\n    \"purpose\": str\n}\n\noptional_fields = {\n    \"phone_number\": str,\n    \"company_web\": str,\n    \"description\": str\n}\n</code></pre> <ul> <li>Test plan has been updated with the new register flow. Please check OCF Registration Flow</li> <li>Video with explanation and demonstration of new register flow New Registration Demo</li> </ul>"},{"location":"releasenotes/#new-opencapif-architecture","title":"New OpenCAPIF architecture","text":"<ul> <li>New arquitecture with separated namespaces for Vault, CCF and Register components. Communication between them now are only allowed by using REST APIs.</li> <li> <p>New helper service inside CCF, it will simplify integration with third parties like external management portals.</p> </li> <li> <p>Helper endpoints:</p> <ul> <li>/getInvokers : Get the list of invokers from CAPIF</li> <li>/getProviders: Get the list of providers from CAPIF</li> <li>/getServices : Get the list of services published in CAPIF</li> <li>/getSecurityContext : Get the list of security contexts from CAPIF</li> <li>/getEvents : Get the list of events subscriptions from CAPIF</li> <li>/deleteEntities: Removes all entities registered by a user from the register</li> </ul> </li> <li> <p>Security in the helper</p> <ul> <li>To make requests to the helper you will need a superadmin certificate and password.</li> </ul> </li> </ul>"},{"location":"releasenotes/#events-api-upgrade","title":"Events API Upgrade","text":"<ul> <li>The event management at CCF is improved, EventNotification include Event Details with required information.</li> <li>Events updated:<ul> <li>SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE with apiIds</li> <li>SERVICE_API_UPDATE with serviceAPIDescriptions</li> <li>API_INVOKER_ONBOARDED, API_INVOKER_UPDATED, API_INVOKER_OFFBOARDED with apiInvokerIds.</li> </ul> </li> <li>Events Included:<ul> <li>SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE with invocationLogs</li> </ul> </li> <li>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.</li> <li>Test plan documentation includes the new event tests OCF Event test plan documentation.</li> </ul>"},{"location":"releasenotes/#inital-implementation-of-cicd","title":"Inital implementation of CI/CD","text":"<ul> <li>The inital implementation of CI/CD on gitlab was performed.</li> <li>Detailed information in the CICD Wiki.</li> <li>Implement initial CI/CD:<ul> <li>Description of the CI process.<ul> <li>In CI phase, created design, jobs and security checks when a branch is pushed.</li> <li>The CI has jobs as:<ul> <li>Linting code, unit test (if needed),</li> <li>Build and push artifacts (images) in Git OCI register</li> <li>Security checks,</li> <li>SCA, CVS, SAST</li> <li>The vulnerabilities are exposed in Merge Request panel to be solved.</li> </ul> </li> </ul> </li> <li>Description of the CD process:<ul> <li>Defined the environments to OCF.<ul> <li>Production env.</li> <li>Pre-production env.</li> <li>Validation env.</li> <li>Dev-1, dev-2\u2026 envs (ephemeral)</li> </ul> </li> <li>Defined the naming convention to OCF releases<ul> <li>Tag in prod: v0.0.1-release</li> <li>Tag non-prod: v0.0.1-rc</li> <li>Other tags: v0.0.1-test, v0.0.1-smt</li> </ul> </li> <li>Defined the jobs of CD<ul> <li>CD ensures the deployment in multiple envs. Therefore, the CD pipeline has deploy-ocf, delete-ocf (if needed) jobs</li> </ul> </li> </ul> </li> <li>ETSI HIVE Labs:<ul> <li>Designed, created and the Kuberntes OCF cluster is running to support OCFs deployments.</li> <li>Iterating with ETSI HIVE\u2019s support to solve computing issues.<ul> <li>CPU compatibilities with OCF services (MongoDB): Fixed</li> </ul> </li> </ul> </li> </ul> </li> </ul>"},{"location":"releasenotes/#documentation_1","title":"Documentation","text":""},{"location":"releasenotes/#improvements-on-documentation","title":"Improvements on documentation","text":"<ul> <li>Documentation stored in OCF Documentation Repository</li> <li>Continuous Integration included at repository for web documentation:<ul> <li>Develop version of documentation is automatically generated on each merge to develop branch.</li> <li>Tagged version from main create documentation with related tag as version.</li> </ul> </li> </ul>"},{"location":"releasenotes/#technical-debt-solved_1","title":"Technical Debt Solved","text":""},{"location":"releasenotes/#improved-testing-with-robot-in-order-to-cover","title":"Improved Testing with Robot in order to cover","text":"<ul> <li>Support of new Register flows.</li> <li>Allow different URLs for register, ccf and vault services.</li> <li>New Variables included to manage new architecture under test.</li> <li>Mock server developed to add the functionality of write tests involving notification from Service Under Test.</li> <li>Docker image improved generation and libraries upgraded to Robot Framework 7.</li> </ul>"},{"location":"releasenotes/#improved-security-on-db","title":"Improved security on DB","text":"<ul> <li>Credentials requested to access mongo databases.</li> <li>Credentials requested also by mongo-express.</li> </ul>"},{"location":"releasenotes/#scripts-upgraded","title":"Scripts upgraded","text":"<ul> <li>Docker compose version 2 used on them.</li> <li>New cleaning script developed.</li> <li>Scripts upgraded:<ul> <li>check_services_are_running.sh: Checks if all essential services (Vault, CCF and Register) are running.</li> <li>clean_capif_docker_services.sh: Shutdowns and removes all services essential services.</li> <li>clean_capif_temporary_files.sh: Removes temporaly files from local repository. </li> <li>run.sh: Launch Essential services locally using docker compose, also monitoring can be launched.</li> <li>run_capif_tests.sh: Launch Robot Framwork Tests.</li> <li>show_logs.sh: Show locally logs of Services running.</li> <li>run_mock_server.sh: Launch mock server locally on all interfaces. This axiliary server is only used by tagged mockserver tests on Robot Framework.</li> <li>clean_mock_server.sh: Remove mock server local deployment.</li> <li>deploy.sh: This script simplify the way to download capif repository.</li> </ul> </li> </ul>"},{"location":"releasenotes/#codebase-improvements","title":"Codebase Improvements","text":"<ul> <li>Documentation is now on splitted repository OCF Documentation Repository</li> <li>Test plan was moved to OCF Documentation Repository</li> <li>Obsolote data is removed.</li> <li>Repository Reorganization: Enhanced structure and maintainability with a better directory layout and clearer module separation.</li> <li>Code Quality Enhancements: Refactored code and fixed known issues</li> </ul>"},{"location":"releasenotes/#migration-to-gunicorn","title":"Migration to GUNICORN","text":"<ul> <li>Include production server on each microservice: Release 0 use Flask developer server, now we use GUNICORN.</li> </ul>"},{"location":"releasenotes/#release-00","title":"Release 0.0","text":"<p>The APIs included in Release 0.0 are:</p> <ul> <li>JWT Authentication APIs</li> <li>CAPIF Invoker Management API</li> <li>CAPIF Publish API</li> <li>CAPIF Discover API</li> <li>CAPIF Security API</li> <li>CAPIF Events API</li> <li>CAPIF Provider Management API</li> </ul> <p>This Release also includes a Robot Test Suite for all those services and a Postman Test Suite for simple testing.</p>"},{"location":"api-status/api-status/","title":"API Status Feature","text":"<p>The API Status feature, introduced in the 3GPP Common API Framework (CAPIF) technical specifications starting from Release 17, offers significant enhancements for operators and developers.</p> <p>This feature in OpenCAPIF provides real-time insights into the operational status of APIs, enabling stakeholders to quickly determine whether an API is functioning as expected. By improving API availability tracking, it helps users make more informed decisions about integration and usage.</p>"},{"location":"api-status/api-status/#how-it-works","title":"How it works","text":"<p>This new functionality is found in two CAPIF services, the publish service and the events service.</p>"},{"location":"api-status/api-status/#publish-service","title":"Publish service","text":"<p>The API Status in the publish service allows providers to show in which AEFs the published API is available.</p> <p>In order to use the API Status, it is necessary to have apiStatusMonitoring enabled in supportedFeatures when publishing an API. With this enabled, we can use the publication's apiStatus, which is composed of a list of AEF identifiers in which the API is available.</p> <p>This gives us 4 options for displaying the status of an API:</p> <ul> <li>If the apiStatus contains a list of aefIds, the api will be available on all aefs in the list.</li> <li>If the apiStatus contains an empty list of aefIds it means that the API is NOT available in any AEF.</li> <li>If the apiStatus is not used, it is understood that the api is available in all AEFs of the aefProfiles.</li> <li>If the apiStatusMonitoring was not supported, the api would be available in all AEFs in the aefProfiles.</li> </ul> <p>If apiStatusMonitoring is not supported and apiStatus is used to show API availability, a 400 error will be returned.</p>"},{"location":"api-status/api-status/#events-service","title":"Events service","text":"<p>The API Status within the Events service provides critical insights into the availability of subscribed services.</p> <p>Both API Invokers and Providers can subscribe to the SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE events to receive timely notifications about the operational status of an API, whether it becomes available or unavailable.</p> <p>Additionally, if the enhanced_event_report function is supported, the API description could be received as event details in the eventDetails field if apiStatusMonitoring is also enabled. This will make it easier for event subscribers to know if any changes have been made to the API, such as a change in API availability to other AEFs.</p>"},{"location":"contribute/documenting/","title":"Documenting","text":"<p>OpenCAPIF's documentation runs on MkDocs.</p>"},{"location":"contribute/documenting/#eligibility","title":"Eligibility","text":"<p>Documenting OpenCAPIF is limited to active contributors. So, if you:</p> <ol> <li>are an active member or participant;</li> <li>wish to contribute to it;</li> <li>you're ready!</li> </ol>"},{"location":"contribute/documenting/#system-and-structure","title":"System and Structure","text":"<p>MkDocs is a fast and simple static site generator that's geared towards building project documentation. Documentation source files are written in <code>Markdown</code>, and configured with a single <code>YAML</code> configuration file. Start by reading the introductory tutorial, then check the User Guide for more information.</p>"},{"location":"contribute/documenting/#how-it-works","title":"How it works?","text":"<p>There are 2 ways to upgrade documentation published on the OCF Documentation website:</p> <ul> <li>Push any change on develop branch will force update of the develop version on the OCF Documentation website;</li> <li>Create a tag, this will create a version with the tag name on the OCF Documentation website.</li> </ul>"},{"location":"contribute/documenting/#branches","title":"Branches","text":"<p>This documentation repository has 2 protected branches:</p> <ul> <li>main: this branch will store the information stable;</li> <li>develop: any change uploaded on this branch will upgrade develop version of the documentation published on the OCF Documentation website.</li> </ul>"},{"location":"contribute/documenting/#structure","title":"Structure","text":"<p>In the <code>mkdocs.yml</code> file you will find the navigation structure of the documentation, there you can sections with sub-sections.</p> <p>For example:</p> <pre><code>nav:\n  - Overview:\n      - Introduction: index.md\n  - Getting Started:\n      - How to Run: ./gettingstarted/howtorun.md\n  - Testing:\n      - Test Plan: ./testing/testplan/README.md\n      - Robot Framework: ./testing/robotframework/README.md\n      - Postman: ./testing/postman/README.md\n  - FAQ: ./FAQ.md\n</code></pre> <p>As you can see here, we have at the time of writing this page, 5 main sections:</p> <ul> <li>Overview: here we placed high-level information like version changelog, some initial scripts, ...;</li> <li>Getting Started: this section contains a simple way to start working with the project;</li> <li>Testing: detailed information of how to test OpenCAPIF, and test plan developed to ensure the code has all implemented functionality checked;</li> <li>Contribute: details about how to contribute code and docs;</li> <li>FAQ.</li> </ul>"},{"location":"contribute/documenting/#main-page","title":"Main Page","text":"<p>The page shown first is at doc/index.md. That page should be updated with the latest changes of OpenCAPIF, also including the version.</p>"},{"location":"contribute/documenting/#getting-started","title":"Getting Started","text":"<p>To contribute to OpenCAPIF's documentation, you need to follow these easy steps:</p> <p>1) Clone the Documentation repository with:</p> <pre><code>git clone https://labs.etsi.org/rep/ocf/documentation.git\n</code></pre> <p>2) Checkout the develop branch (incoming contributions are only accepted to the develop branch):</p> <pre><code>cd ./documentation\ngit checkout develop\n</code></pre> <p>3) Setup a local <code>mkdocs</code> server, using a virtual environment:</p> <pre><code>python3 -m venv venv\nsource venv/bin/activate\npython -m pip install mkdocs\npython -m pip install mkdocs-material\npython -m pip install mike\n</code></pre> <p>4) Wait for all downloads to finish and start the local <code>mkdocs</code> server:</p> <pre><code>mkdocs serve\n</code></pre> <p>5) Document! \ud83d\ude0a</p> <p>You should always make sure that the local MkDocs server terminal is not producing any <code>INFO</code>/<code>WARNING</code> messages regarding your contributions.</p>"},{"location":"contribute/documenting/#add-documentation-during-development","title":"Add Documentation During Development","text":"<p>To update the documentation properly during development, follow those additional steps:</p> <ol> <li>Create an issue on the documentation GitLab repository;</li> <li>Create a new branch with the develop branch as a source;</li> <li>Update the documentation and any relevant parts (ie: the <code>index.md</code> with new functionalities for the latest version or if a new test plan has been defined, remember to update the test plan documentation);</li> <li>Check if errors are not being produced by <code>mkdocs</code> locally;</li> <li>Commit and push changes to the new branch;</li> <li>Create a merge/pull request;</li> <li>Send the request for review and approval to at least one TSC Member.</li> </ol> <p>The documentation website supports branches, so your accepted changes will be reflected to the develop branch which becomes the release branch after each corresponding cycle.</p>"},{"location":"contribute/documenting/#release-a-new-version-of-the-documentation","title":"Release a New Version of the Documentation","text":"<p>When OpenCAPIF code repository is ready for a new release, we need to follow these steps (made by a TSC Member):</p> <ol> <li>Create a new branch with the released version, and merge it to develop;</li> <li>Create a Merge request from develop to main;</li> <li>When develop is merged to main, then we need to create a tag with the released version.</li> </ol>"},{"location":"example-clients/example-clients/","title":"Invoker and Provider CLIs","text":"<p>The Invoker and Provider CLIs serve as examples for developers and integrators looking to connect their Network Applications (NetApps) to CAPIF. </p> <p>They demonstrate, using Python, how to develop the necessary code for seamless communication with CAPIF, offering a practical guide to implementing the required API calls and interactions.</p>"},{"location":"example-clients/example-clients/#provider-cli","title":"Provider CLI","text":"<p>When using the Provider Console, users can create a provider entity that registers and publishes APIs to make them available within the CAPIF ecosystem. </p>"},{"location":"example-clients/example-clients/#commands","title":"Commands","text":"<p>With the provider console you can make the following requests to CAPIF:</p>"},{"location":"example-clients/example-clients/#provider_get_auth","title":"provider_get_auth","text":"<p>It is used to request the token and the ca_root certificate in order to perform the provider onboarding.</p> <pre><code>provider_get_auth &lt;username&gt; &lt;password&gt;\n</code></pre> <p>The token has an expiration time of 10 minutes, so if it expires you will have to request a new one.</p>"},{"location":"example-clients/example-clients/#register_provider","title":"register_provider","text":"<p>It is used to perform the onboarding of a provider.</p> <pre><code>register_provider &lt;name&gt;\n</code></pre> <p>This request uses the api_provider_domain.json file as a template and creates the certificates and keys for each of the entities that make up the Provider.</p>"},{"location":"example-clients/example-clients/#publish_service","title":"publish_service","text":"<p>It is used to publish an api as a provider.</p> <pre><code>publish_service &lt;service file route&gt;\n</code></pre> <p>For this request the demo_api_one.json file is used as a template.</p>"},{"location":"example-clients/example-clients/#get_services","title":"get_services","text":"<p>It is used to see what services the provider has published.</p> <pre><code>get_service \n</code></pre> <p>Returns a list of API names.</p>"},{"location":"example-clients/example-clients/#remove_service","title":"remove_service","text":"<p>It is used to unpublish an API.</p> <pre><code>remove_service &lt;api name&gt;\n</code></pre>"},{"location":"example-clients/example-clients/#remove_provider","title":"remove_provider","text":"<p>It is used to remove the provider.</p> <pre><code>remove_provider\n</code></pre> <p>Once the provider is deleted, you will not be able to publish or perform other operations that require certificates.</p>"},{"location":"example-clients/example-clients/#additionally","title":"Additionally","text":"<p>In addition, an API example is provided with which you can see how the token used by invokers to use the API published by the provider is decrypted and used.</p> <p>Once the API is published, the file can be executed with the next command:</p> <pre><code>python3 service_oauth.py\n</code></pre> <p>With this, the API will be raised to be able to make the calls.</p>"},{"location":"example-clients/example-clients/#invoker-cli","title":"Invoker CLI","text":"<p>When using the Invoker Console, users can create an Invoker entity that discover APIs to consume them with the CAPIF ecosystem. </p>"},{"location":"example-clients/example-clients/#commands_1","title":"Commands","text":"<p>With the Invoker console you can make the following requests to CAPIF:</p>"},{"location":"example-clients/example-clients/#get_auth","title":"get_auth","text":"<p>It is used to request the token and CA cert to be able to perform the onboarding.</p> <pre><code>get_auth &lt;username&gt; &lt;password&gt;\n</code></pre> <p>The token has an expiration time of 10 minutes, so if it expires you will have to request a new one.</p>"},{"location":"example-clients/example-clients/#register_invoker","title":"register_invoker","text":"<p>It is usedd to perform the onboarding of an Invoker,</p> <pre><code>register_invoker &lt;name&gt;\n</code></pre> <p>This request uses the invoker_details.json file as a template and creates the certificate and keys of the Invoker.</p>"},{"location":"example-clients/example-clients/#discover_service","title":"discover_service","text":"<p>It is used to discover the APIs published in CAPIF.</p> <pre><code>discover_service\n</code></pre> <p>Returns a list with the names of the services published in CAPIF.</p>"},{"location":"example-clients/example-clients/#register_security_context","title":"register_security_context","text":"<p>It is used to make the request to create a security context.</p> <pre><code>register_security_context &lt;api name&gt;\n</code></pre>"},{"location":"example-clients/example-clients/#get_security_auth","title":"get_security_auth","text":"<p>It is used to request the token necessary for the cunsumption of an API.</p> <pre><code>get_security_auth &lt;api name&gt;\n</code></pre>"},{"location":"example-clients/example-clients/#call_service","title":"call_service","text":"<p>It is used to consume the API</p> <pre><code>call_service &lt;api name&gt; &lt;method&gt; &lt;endpoint&gt; &lt;body route&gt;\n</code></pre> <p>For the request you must specify the name of the API you want to use, the method and endpoint you want to consume, and the path of the body to use.</p>"},{"location":"example-clients/example-clients/#remove_security_context","title":"remove_security_context","text":"<p>It is used to delete the created security context.</p> <pre><code>remove_security_context\n</code></pre>"},{"location":"example-clients/example-clients/#remove_invoker","title":"remove_invoker","text":"<p>It is used to delete the Invoker</p> <pre><code>remove_invoker\n</code></pre> <p>Once the invoker is deleted, you will not be able to discover or perform other operations that require the Invoker certificate.</p>"},{"location":"example-clients/example-clients/#other-commands","title":"Other commands","text":"<p>Apart from these operations, with the Invoker and Provider console you can also perform operations as administrator if you have a CAPIF instance locally.</p>"},{"location":"example-clients/example-clients/#admin-commands","title":"Admin commands","text":"<p>As an administrator, you can manage which users can use CAPIF with the following commands.</p>"},{"location":"example-clients/example-clients/#login_admin","title":"login_admin","text":"<p>It is used to login as an administrator and obtain the tokenes needed to perform admin operations</p> <pre><code>login_admin &lt;admin username&gt; &lt;admin password&gt;\n</code></pre>"},{"location":"example-clients/example-clients/#refresh_admin","title":"refresh_admin","text":"<p>It is used to refresh the tokenes of the admin user</p> <pre><code>refresh_admin\n</code></pre>"},{"location":"example-clients/example-clients/#register_user","title":"register_user","text":"<p>It is used to register a new user</p> <pre><code>register_user\n</code></pre> <p>uses the data in the credentials.properties file as the data to record.</p>"},{"location":"example-clients/example-clients/#remove_user","title":"remove_user","text":"<p>It is used to remove the created user.</p> <pre><code>remove_user\n</code></pre>"},{"location":"example-clients/example-clients/#tips","title":"Tips","text":"<p>This section explains some tips that may be useful for developers who are using consoles.</p>"},{"location":"example-clients/example-clients/#help-command","title":"help command","text":"<p>In both consoles you can use the help command to display a list of available commands.</p> <pre><code>help\n</code></pre>"},{"location":"example-clients/example-clients/#exit-command","title":"exit command","text":"<p>In both consoles you can use the exit command to exit the console.</p> <pre><code>exit\n</code></pre>"},{"location":"example-clients/example-clients/#delete-the-entities","title":"Delete the entities","text":"<p>It is recommended to delete all providers, Invokers and users created by the consoles if they are not going to be used anymore.</p>"},{"location":"example-clients/example-clients/#debug-mode","title":"debug mode","text":"<p>You can add the debug flag at the end of each command to show the complete inputs and outputs of each request and thus better understand what is being done.</p> <pre><code>register_invoker ocf debug\n</code></pre>"},{"location":"gettingstarted/howtorun/","title":"How to Run","text":"<ol> <li>Downloading the project <ol> <li>Create a folder to download the project</li> <li>Download the deployment script</li> <li>Run the deployment script</li> </ol> </li> <li>Run the services<ul> <li>Run all CAPIF Services locally with Docker images</li> <li>Run all CAPIF Services locally with Docker images and deploy monitoring stack</li> <li>Run each service using Docker</li> <li>Run each service using Python</li> </ul> </li> <li>Start your testing with OpenCAPIF</li> </ol> <p>Capif services are developed under services folder.</p>"},{"location":"gettingstarted/howtorun/#downloading-the-project","title":"Downloading the project","text":"<p>You can easily download CAPIF to run in local environment following next steps:</p>"},{"location":"gettingstarted/howtorun/#1-create-a-folder-to-download-the-project","title":"1. Create a folder to download the project","text":"<pre><code>mkdir OpenCAPIF\n\ncd OpenCAPIF\n</code></pre>"},{"location":"gettingstarted/howtorun/#2-download-the-deployment-script","title":"2. Download the deployment script","text":"<p>Download the deployment / environment preparation script (press here to directly download script):</p> <pre><code>wget https://labs.etsi.org/rep/ocf/capif/-/raw/staging/deploy.sh\n</code></pre> <p>Make it executable:</p> <pre><code>chmod +x deploy.sh\n</code></pre>"},{"location":"gettingstarted/howtorun/#3-run-the-deployment-script","title":"3. Run the deployment script","text":"<p>This script selects the branch for capif repository project to pull from.</p> <p>If you run the script without selecting a branch the the main branch is going to be selected.</p> <p>We recommend:</p> <ul> <li>main branch for the most stable experience and staging branch for an experience with the latest features (for staging branch installation, it is strongly advisable that you may as well follow the staging documentation)</li> </ul> <pre><code># ./deploy.sh [branch to fetch] [true or false (default) to install monitoring stack or not]\n\nsudo ./deploy.sh staging\n</code></pre> <p>We recommend running the deploy.sh script with root permissions! In other case, some directories may not be accessible by the project building tools and hinder the smooth installation.</p>"},{"location":"gettingstarted/howtorun/#run-all-capif-services-locally-with-docker-images","title":"Run All CAPIF Services locally with Docker images","text":"<p>To run using docker and docker compose, version 2.10 or higher, you must ensure you have those tools installed in your machine. Also to simplify the process, we have 3 scripts allowing docker images to deploy, check and cleanup.</p> <p>All these scripts are available under services directory.</p> <p>To run CAPIF APIs locally using docker and docker-compose you can use run.sh script:</p> <pre><code>./run.sh -h\n\nUsage: ./run.sh &lt;options&gt;\n       -c : Setup different hostname for capif\n       -m : Launch monitoring service\n       -h : show this help\n</code></pre> <p>This script builds and runs all services using docker images, including mongodb and nginx locally and in the background, and imports ca.crt to nginx. By default monitoring is not activated and Nginx is deployed use capifcore as a hostname. </p> <p>Some examples of use:</p> <pre><code># Default values, No monitoring and capifcore as CAPIF_HOSTNAME\n./run.sh\n\n# opencapif.etsi.org as CAPIF_HOSTNAME\n./run.sh -c opencapif.etsi.org\n\n# opencapif.etsi.org as CAPIF_HOSTNAME and monitoring activated\n./run.sh -c opencapif.etsi.org -m \n\n</code></pre> <p>If you want to check if all CAPIF services are running properly in a local machine after executing run.sh, you can use:</p> <pre><code>./check_services_are_running.sh\n</code></pre> <p>This shell script will return 0 if all services are running properly.</p> <p>When we need to stop all CAPIF services, we can use next bash script:</p> <pre><code>./clean_capif_docker_services.sh -a\n</code></pre> <p>NOTE: You can use different flags if you only want to stop some of them, please check the help using:</p> <pre><code>./clean_capif_docker_services.sh -h\n\nUsage: clean_capif_docker_services.sh &lt;options&gt;\n       -c : clean capif services\n       -v : clean vault service\n       -r : clean register service\n       -m : clean monitoring service\n       -a : clean all services\n       -h : show this help\n</code></pre> <p>This shell script will remove and clean all CAPIF services started previously with run.sh</p> <p>On the other hand you can check logs using show_logs.sh script, please check options:</p> <pre><code>./show_logs.sh\nYou must specify an option when running the script.\nUsage: ./show_logs.sh &lt;options&gt;\n       -c : Show capif services\n       -v : Show vault service\n       -r : Show register service\n       -m : Show monitoring service\n       -a : Show all services\n       -f : Follow log output\n       -h : Show this help\n</code></pre> <p>You can also use option -f in order to follow log output in real time</p>"},{"location":"gettingstarted/howtorun/#run-all-capif-services-locally-with-docker-images-and-deploy-monitoring-stack","title":"Run All CAPIF Services locally with Docker images and deploy monitoring stack","text":"<p>It is now possible to deploy a monitoring stack for CAPIF with Grafana, Prometheus, FluentBit, Loki, Cadvisor, Tempo and Opentelemetry.</p> <p>To deploy CAPIF together with the monitoring stack, it is only necessary to execute the following.</p> <pre><code>./run.sh -m true\n</code></pre> <p>After they have been built, the different panels can be consulted in Grafana at the url</p> <pre><code>http://localhost:3000\n</code></pre> <p>By default, the monitoring option is set to false. Once up, all data sources and dashboards are automatically provisioned.</p>"},{"location":"gettingstarted/howtorun/#run-each-service-using-docker","title":"Run each service using Docker","text":"<p>Also you can run OpenCAPIF service by service using docker:</p> <pre><code>cd &lt;Service&gt;\ndocker build -t capif_security .\ndocker run -p 8080:8080 capif_security\n</code></pre>"},{"location":"gettingstarted/howtorun/#run-each-service-using-python","title":"Run each service using Python","text":"<p>Run using python</p> <pre><code>cd &lt;Service&gt;\npip3 install -r requirements.txt\npython3 -m &lt;service&gt;\n</code></pre>"},{"location":"gettingstarted/howtorun/#start-your-testing-with-opencapif","title":"Start Your Testing with OpenCAPIF","text":"<p>Related with OpenCAPIF Testing, the following sections help you to understand testing implemented and how to run it by yourself:</p> <ul> <li>Test Plan Directory: Here you can find the complete test plan definition that are accomplish by all versions released of OpenCAPIF.</li> <li>Testing with Robot Framework: At this section you can find all information about how to run the test suite implemented using Robot Framework.</li> <li>Testing with Postman: Easy way to understand the complete basic OpenCAPIF flow, acting as invoker and provider.</li> </ul>"},{"location":"sdk/sdk/","title":"SDK","text":"<p>Check SDK repository for further information.</p>"},{"location":"testing/postman/","title":"Postman","text":"<p>This section shows how OpenCAPIF is used through requests made with Postman, from the creation of a provider together with the publication of an api, to the creation of an invoker and the consumption of the published api. Everything you need to run the test is in Postman-Test.zip.</p>"},{"location":"testing/postman/#requisites","title":"Requisites","text":"<ul> <li>We will need to have Node.js installed since we will use a small script to create the CSRs of the certificates.</li> <li>An instance of CAPIF (If it is not local, certain variables would have to be modified both in the Node.js script and in the Postman environment variables).</li> </ul>"},{"location":"testing/postman/#first-steps","title":"First steps","text":"<ol> <li>Install the Node dependencies package.json to run the script with:</li> </ol> <pre><code>npm i\n</code></pre> <ol> <li>Run the script.js with the following command:</li> </ol> <pre><code>node script.js\n</code></pre> <ol> <li>Import Postman collection and environment variables (CAPIF.postman_collection.json and CAPIF.postman_environment.json)</li> <li>Select CAPIF Environment before start testing.</li> <li>Install the necessary dependencies from requirements.txt using the following command:</li> </ol> <pre><code>pip install -r requirements.txt\n</code></pre>"},{"location":"testing/postman/#remote-capif","title":"Remote CAPIF","text":"<p>If the CAPIF is not local, the host and port of both the CAPIF and the register would have to be specified in the variables, and the CAPIF_HOSTNAME in the script, necessary to obtain the server certificate.</p> <p>Enviroments in Postman</p> <pre><code>CAPIF_HOSTNAME     capifcore\nCAPIF_PORT         8080\nREGISTER_HOSTNAME  register\nREGISTER_PORT      8084\n</code></pre> <p>Const in script.js</p> <pre><code>CAPIF_HOSTNAME    capifcore\n</code></pre>"},{"location":"testing/postman/#capif-flows","title":"CAPIF Flows","text":"<p>Once the first steps have been taken, we can now use Postman requests. These requests are numbered in the order that must be followed to obtain everything necessary from CAPIF.</p>"},{"location":"testing/postman/#creation-of-user-by-admin","title":"Creation of User by Admin","text":"<p>The first step would be for an administrator to create a user with which a provider and an invoker will be created. To do this, the admin must log in to obtain the token needed in admin requests.</p>"},{"location":"testing/postman/#01-login_admin","title":"01-Login_admin","text":""},{"location":"testing/postman/#02-creation-of-user","title":"02-Creation of User","text":""},{"location":"testing/postman/#publication-of-an-api","title":"Publication of an API","text":"<p>The next step is to register a provider using the user created by the administrator in order to publish an API.</p>"},{"location":"testing/postman/#03-getauth_provider","title":"03-getauth_provider","text":""},{"location":"testing/postman/#04-onboard_provider","title":"04-onboard_provider","text":""},{"location":"testing/postman/#05-publish_api","title":"05-publish_api","text":"<p>At this point we move on to using certificate authentication in CAPIF. In Postman it is necessary to add the certificates manually and using more than one certificate for the same host as we do in CAPIF complicates things. For this reason, we use the script to overwrite a certificate and a key when it is necessary to have a specific one.</p> <p>To configure go to settings in Postman and open the certificates section. </p> <ul> <li>Here, activate the CA certificates option and add the ca_cert.pem file found in the Responses folder.</li> <li>Adds a client certificate specifying the CAPIF host being used and the files client_cert.crt and client_key.key in the Responses folder.</li> </ul> <p>Once this is done, the node script will be in charge of changing the certificate that is necessary in each request.</p> <p></p> <p>Once the api is published, we can start it. In this case we have a test one created in python called hello_api.py that can be executed with the following command:</p> <pre><code>python3 hello_api.py\n</code></pre> <p>The API publication interface is set to localhost with port 8088, so the service must be set up locally. If you wanted to build it on another site, you would have to change the interface description in the body of publish_api.</p> <p>With this the provider part would be finished.</p>"},{"location":"testing/postman/#calling-the-api","title":"Calling the API","text":"<p>Finally, we will create an invoker with the user given by the administrator to be able to use the published api.</p>"},{"location":"testing/postman/#06-getauth_invoker","title":"06-getauth_invoker","text":""},{"location":"testing/postman/#07-onboard_invoker","title":"07-onboard_invoker","text":""},{"location":"testing/postman/#08-discover","title":"08-discover","text":"<p>At this point we move on to using certificate authentication in CAPIF. If you did not configure the provider's certificates, you would have to do it now.</p> <p></p>"},{"location":"testing/postman/#09-security_context","title":"09-security_context","text":""},{"location":"testing/postman/#10-get_token","title":"10-get_token","text":""},{"location":"testing/postman/#11-call_service","title":"11-call_service","text":"<p>With this, we would have made the API call and finished the flow.</p>"},{"location":"testing/postman/#other-requests","title":"Other requests","text":"<p>Other requests that we have added are the following:</p> <ul> <li>offboard_provider      Performs offboarding of the provider, thereby eliminating the published APIs.</li> <li>offboard_invoker       Offboards the invoker, also eliminating access to the APIs of that invoker.</li> <li>remove_user            Delete the user.</li> <li>refresh_admin_token    Return a new access token to the admin.</li> </ul>"},{"location":"testing/postman/#notes","title":"Notes","text":"<ul> <li>This process is designed to teach how requests are made in Postman and the flow that should be followed to publish and use an API.</li> <li>It is possible that if external CAPIFs are used (Public CAPIF) the test data may already be used or the API already registered.</li> <li>It is necessary to have the Node service running to make the certificate change for the requests, otherwise it will not work.</li> <li>We are working on adding more requests to the Postman collection.</li> <li>This collection is a testing guide and is recommended for testing purposes only.</li> </ul>"},{"location":"testing/robotframework/","title":"Robot Framework","text":""},{"location":"testing/robotframework/#steps-to-test","title":"Steps to Test","text":"<p>To run any test locally you will need docker and docker-compose installed in order run services and execute test plan. Steps will be:</p> <ul> <li> <p>Run All Services: See section Run All CAPIF Services</p> </li> <li> <p>Run desired tests: At this point we have 2 options:</p> </li> <li> <p>Using helper script: Script Test Execution</p> </li> <li>Build robot docker image and execute manually robot docker: Manual Build And Test Execution</li> </ul>"},{"location":"testing/robotframework/#script-test-execution","title":"Script Test Execution","text":"<p>This script will build robot docker image if it's need and execute tests selected by \"include\" option. Just go to service folder, execute and follow steps.</p> <pre><code>./run_capif_tests.sh --include &lt;TAG&gt;\n</code></pre> <p>Results will be stored at /results <p>Please check parameters (include) under Test Execution at Manual Build And Test Execution.</p>"},{"location":"testing/robotframework/#mock-server","title":"Mock Server","text":"<p>Some tests on Test Plans require mockserver. That mock server must be deployed and reachable by Robot Framework and CCF under test.</p> <p>To run Mock Server locally you can just execute the next script:</p> <pre><code>cd services\n./run_mock_server.sh\n\nor\n./run.sh -s\n</code></pre> <p>If you want to launch only tests that not needed mockserver, just add \"--exclude mockserver\" parameter to robot execution:</p> <pre><code>./run_capif_tests.sh --include &lt;TAG&gt; --exclude mockserver\n</code></pre> <p>After run tests the Mock Server can be removed from local deployment:</p> <pre><code>./clean_mock_server.sh\n\nor\n./clean_capif_docker_services.sh -s\n</code></pre>"},{"location":"testing/robotframework/#manual-build-and-test-execution","title":"Manual Build And Test Execution","text":"<ul> <li>Build Robot docker image:</li> </ul> <pre><code>cd tools/robot\ndocker build . -t capif-robot-test:latest\n</code></pre> <ul> <li>Tests Execution:</li> </ul> <p>Execute all tests locally:</p> <pre><code>&lt;PATH_TO_REPOSITORY&gt;=path in local machine to repository cloned.\n&lt;PATH_RESULT_FOLDER&gt;=path to a folder on local machine to store results of Robot Framework execution.\n&lt;CAPIF_HOSTNAME&gt;=Is the hostname set when run.sh is executed, by default it is capifcore.\n&lt;CAPIF_HTTP_PORT&gt;=This is the port to reach when robot framework want to reach CAPIF deployment using http, this should be set to port without TLS set on Nginx, 8080 by default.\n&lt;CAPIF_HTTPS_PORT&gt;=This is the port to be used when we want to use https connection, this should be set to port with TLS set on Nginx, 443 by default\n&lt;CAPIF_REGISTER&gt;=This is the hostname of register service deployed. By default it is register.\n&lt;CAPIF_REGISTER_PORT&gt;=This is the port to be used to reach register service deployed. By default it is 8084.\n&lt;CAPIF_VAULT&gt;=This is the hostname of vault service. By default it is vault.\n&lt;CAPIF_VAULT_PORT&gt;=This is the port to be used to reach vault service. By default it is 8200.\n&lt;CAPIF_VAULT_TOKEN&gt;=Vault token to be used on request through vault. By default it is \"read-ca-token\".\n&lt;MOCK_SERVER_URL&gt;=Setup Mock server url to be used in notifications at tests marked with mockserver tag. By default it is not set.\n\nTo execute all tests run :\ndocker run -ti --rm --network=\"host\" \\\n    --add-host host.docker.internal:host-gateway \\\n    --add-host vault:host-gateway \\\n    --add-host register:host-gateway \\\n    --add-host mock-server:host-gateway \\\n    -v &lt;PATH_TO_REPOSITORY&gt;/tests:/opt/robot-tests/tests \\\n    -v &lt;PATH_RESULT_FOLDER&gt;:/opt/robot-tests/results capif-robot-test:latest  \\\n    --variable CAPIF_HOSTNAME:$CAPIF_HOSTNAME \\\n    --variable CAPIF_HTTP_PORT:$CAPIF_HTTP_PORT \\\n    --variable CAPIF_HTTPS_PORT:$CAPIF_HTTPS_PORT \\\n    --variable CAPIF_REGISTER:$CAPIF_REGISTER \\\n    --variable CAPIF_REGISTER_PORT:$CAPIF_REGISTER_PORT \\\n    --variable CAPIF_VAULT:$CAPIF_VAULT \\\n    --variable CAPIF_VAULT_PORT:$CAPIF_VAULT_PORT \\\n    --variable CAPIF_VAULT_TOKEN:$CAPIF_VAULT_TOKEN \\\n    --variable MOCK_SERVER_URL:$MOCK_SERVER_URL \\\n    --include all\n</code></pre> <p>Execute specific tests locally:</p> <pre><code>To run more specific tests, for example, only one functionality:\n&lt;TAG&gt;=Select one from list:\n  \"capif_api_acl\",\n  \"capif_api_auditing_service\",\n  \"capif_api_discover_service\",\n  \"capif_api_events\",\n  \"capif_api_invoker_management\",\n  \"capif_api_logging_service\",\n  \"capif_api_provider_management\",\n  \"capif_api_publish_service\",\n  \"capif_security_api\n\nAnd Run:\ndocker run -ti --rm --network=\"host\" \\\n    --add-host host.docker.internal:host-gateway \\\n    --add-host vault:host-gateway \\\n    --add-host register:host-gateway \\\n    --add-host mock-server:host-gateway \\\n    -v &lt;PATH_TO_REPOSITORY&gt;/tests:/opt/robot-tests/tests \\\n    -v &lt;PATH_RESULT_FOLDER&gt;:/opt/robot-tests/results capif-robot-test:latest  \\\n    --variable CAPIF_HOSTNAME:$CAPIF_HOSTNAME \\\n    --variable CAPIF_HTTP_PORT:$CAPIF_HTTP_PORT \\\n    --variable CAPIF_HTTPS_PORT:$CAPIF_HTTPS_PORT \\\n    --variable CAPIF_REGISTER:$CAPIF_REGISTER \\\n    --variable CAPIF_REGISTER_PORT:$CAPIF_REGISTER_PORT \\\n    --variable CAPIF_VAULT:$CAPIF_VAULT \\\n    --variable CAPIF_VAULT_PORT:$CAPIF_VAULT_PORT \\\n    --variable CAPIF_VAULT_TOKEN:$CAPIF_VAULT_TOKEN \\\n    --variable MOCK_SERVER_URL:$MOCK_SERVER_URL \\\n    --include &lt;TAG&gt;\n</code></pre>"},{"location":"testing/robotframework/#test-result-review","title":"Test result review","text":"<p>In order to Review results after tests, you can check general report at /report.html or if you need more detailed information /log.html, example: <ul> <li> <p>Report: </p> </li> <li> <p>Detailed information: </p> </li> </ul> <p>NOTE: If you need more detail at Robot Framework Logs you can set log level option just adding to command --loglevel DEBUG</p>"},{"location":"testing/testplan/","title":"Test Plan Index","text":"<p>List of Common API Services implemented:</p> <ul> <li>Common Operations</li> <li>Api Invoker Management</li> <li>Api Provider Management</li> <li>Api Publish Service</li> <li>Api Discover Service</li> <li>Api Events Service</li> <li>Api Security Service</li> <li>Api Logging Service</li> <li>Api Auditing Service</li> <li>Api Access Control Policy</li> </ul>"},{"location":"testing/testplan/#features","title":"Features","text":"<ul> <li>Vendor Extensibility</li> <li>Api Status</li> </ul>"},{"location":"testing/testplan/api_access_control_policy/","title":"Test Plan for CAPIF Api Access Control Policy","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_access_control_policy/#test-case-1-retrieve-acl","title":"Test Case 1: Retrieve ACL","text":"<p>Test ID: capif_api_acl-1</p> <p>Description:</p> <p>This test case will check that an API Provider can retrieve ACL from CAPIF</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-2-retrieve-acl-with-2-service-apis-published","title":"Test Case 2: Retrieve ACL with 2 Service APIs published","text":"<p>Test ID: capif_api_acl-2</p> <p>Description:</p> <p>This test case will check that an API Provider can retrieve ACL from CAPIF for 2 different serviceApis published.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had two Service API Published on CAPIF</li> <li>API Invoker had a Security Context for both Service APIs published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1 and service_2</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information for service_1.</li> <li>Provider Get ACL information for service_2.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker for both published APIs</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL for serviceApiId1</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId1}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL for serviceApiId2</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId2}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-3-retrieve-acl-with-security-context-created-by-two-different-invokers","title":"Test Case 3: Retrieve ACL with security context created by two different Invokers","text":"<p>Test ID: capif_api_acl-3</p> <p>Description:</p> <p>This test case will check that an API Provider can retrieve ACL from CAPIF containing 2 objects.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>Two API Invokers had a Security Context for same Service API published by provider.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1 and service_2</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker for both published APIs</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Repeat previous 3 steps in order to have a new Invoker.</p> </li> <li> <p>Provider Retrieve ACL for serviceApiId</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId1}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain two objects.</li> <li>One object must match with apiInvokerId1 and the other one with apiInvokerId2 an registered previously.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-4-retrieve-acl-filtered-by-api-invoker-id","title":"Test Case 4: Retrieve ACL filtered by api-invoker-id","text":"<p>Test ID: capif_api_acl-4</p> <p>Description:</p> <p>This test case will check that an API Provider can retrieve ACL filtering by apiInvokerId from CAPIF containing 1 objects.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>Two API Invokers had a Security Context for same Service API published by provider.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1 and service_2</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information with query parameter indicating first api-invoker-id.</li> <li>Provider Get ACL information with query parameter indicating second api-invoker-id.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker for both published APIs</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Repeat previous 3 steps in order to have a new Invoker.</p> </li> <li> <p>Provider Retrieve ACL for serviceApiId1</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={apiInvokerId1}</li> <li>Use serviceApiId, aefId and apiInvokerId1</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL for serviceApiId2</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={apiInvokerId2}</li> <li>Use serviceApiId, aefId and apiInvokerId2</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>ACL Response:</p> <ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain one objects.</li> <li>Object must match with apiInvokerId1.</li> </ol> </li> </ol> </li> <li> <p>ACL Response:</p> <ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain one objects.</li> <li>Object must match with apiInvokerId2.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-5-retrieve-acl-filtered-by-supported-features","title":"Test Case 5: Retrieve ACL filtered by supported-features","text":"<p>Test ID: capif_api_acl-5</p> <p>Description:</p> <p>CURRENTLY NOT SUPPORTED FEATURE</p> <p>This test case will check that an API Provider can retrieve ACL filtering by supportedFeatures from CAPIF containing 1 objects.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>Two API Invokers had a Security Context for same Service API published by provider.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1 and service_2</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information with query parameter indicating first supported-features.</li> <li>Provider Get ACL information with query parameter indicating second supported-features.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker for both published APIs</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Repeat previous 3 steps in order to have a new Invoker.</p> </li> <li> <p>Provider Retrieve ACL for serviceApiId</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId1}?aef-id=${aef_id}&amp;supported-features={apiInvokerId1}</li> <li>Use serviceApiId, aefId and apiInvokerId1</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL for serviceApiId</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId1}?aef-id=${aef_id}&amp;supported-features={apiInvokerId2}</li> <li>Use serviceApiId, aefId and apiInvokerId2</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>ACL Response:</p> <ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain one objects.</li> <li>Object must match with supportedFeatures1.</li> </ol> </li> </ol> </li> <li> <p>ACL Response:</p> <ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain one objects.</li> <li>Object must match with supportedFeatures1.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-6-retrieve-acl-with-aef-id-not-valid","title":"Test Case 6: Retrieve ACL with aef-id not valid","text":"<p>Test ID: capif_api_acl-6</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF if aef-id is not valid</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${AEF_ID_NOT_VALID}</li> <li>Use serviceApiId and AEF_ID_NOT_VALID</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {service_api_id}, aef_id: {aef_id}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-7-retrieve-acl-with-service-id-not-valid","title":"Test Case 7: Retrieve ACL with service-id not valid","text":"<p>Test ID: capif_api_acl-7</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF if service-api-id is not valid</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${NOT_VALID_SERVICE_API_ID}?aef-id=${aef_id}</li> <li>Use NOT_VALID_SERVICE_API_ID and aef_id</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {service_api_id}, aef_id: {aef_id}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-8-retrieve-acl-with-service-api-id-and-aef-id-not-valid","title":"Test Case 8: Retrieve ACL with service-api-id and aef-id not valid","text":"<p>Test ID: capif_api_acl-8</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF if service-api-id and aef-id are not valid</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${NOT_VALID_SERVICE_API_ID}?aef-id=${AEF_ID_NOT_VALID}</li> <li>Use NOT_VALID_SERVICE_API_ID and aef_id</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {NOT_VALID_SERVICE_API_ID}, aef_id: {AEF_ID_NOT_VALID}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-9-retrieve-acl-without-securitycontext-created-previously-by-invoker","title":"Test Case 9: Retrieve ACL without SecurityContext created previously by Invoker","text":"<p>Test ID: capif_api_acl-9</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL if no invoker had requested Security Context to CAPIF</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker created but no Security Context for Service API published had been requested.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li> <p>Discover published APIs</p> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {NOT_VALID_SERVICE_API_ID}, aef_id: {AEF_ID_NOT_VALID}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-10-retrieve-acl-filtered-by-api-invoker-id-not-present","title":"Test Case 10: Retrieve ACL filtered by api-invoker-id not present","text":"<p>Test ID: capif_api_acl-10</p> <p>Description:</p> <p>This test case will check that an API Provider get not found response if filter by not valid api-invoker-id doesn't match any registered ACL.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={NOT_VALID_API_INVOKER_ID}</li> <li>Use serviceApiId, aefId and NOT_VALID_API_INVOKER_ID</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {NOT_VALID_SERVICE_API_ID}, aef_id: {AEF_ID_NOT_VALID}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-11-retrieve-acl-with-apf-certificate","title":"Test Case 11: Retrieve ACL with APF Certificate","text":"<p>Test ID: capif_api_acl-11</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF using APF Certificate</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use APF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-12-retrieve-acl-with-amf-certificate","title":"Test Case 12: Retrieve ACL with AMF Certificate","text":"<p>Test ID: capif_api_acl-12</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF using AMF Certificate</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AMF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-13-retrieve-acl-with-invoker-certificate","title":"Test Case 13: Retrieve ACL with Invoker Certificate","text":"<p>Test ID: capif_api_acl-13</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF using Invoker Certificate</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-14-no-acl-for-invoker-after-be-removed","title":"Test Case 14: No ACL for invoker after be removed","text":"<p>Test ID: capif_api_acl-14</p> <p>Description:</p> <p>This test case will check that ACLs are removed after invoker is removed.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published and ACL is present</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information of invoker.</li> <li>Remove Invoker from CAPIF.</li> <li>Provider Get ACL information of invoker.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={api-invoker-id}</li> <li>Use serviceApiId, aefId and api-invoker-id</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li>Remove Invoker from CAPIF</li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={api-invoker-id}</li> <li>Use serviceApiId, aefId and api-invoker-id</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:   1. ACL Response:      1. 200 OK Response.      2. body returned must accomplish AccessControlPolicyList data structure.      3. apiInvokerPolicies must:         1. contain only one object.         2. apiInvokerId must match apiInvokerId registered previously.</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {NOT_VALID_SERVICE_API_ID}, aef_id: {AEF_ID_NOT_VALID}, invoker: None and supportedFeatures: None\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/","title":"Test Plan for CAPIF Api Auditing Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_auditing_service/#test-case-1-get-capif-log-entry","title":"Test Case 1: Get CAPIF Log Entry.","text":"<p>Test ID: capif_api_auditing-1</p> <p>Description:</p> <p>This test case will check that a CAPIF AMF can get log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> <li>Log Entry exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry   4. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Create Log Entry:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs?aef-id={aefId}&amp;api-invoker-id={api-invoker-id}</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>200 OK</li> <li>Response Body must follow InvocationLog data structure with:<ul> <li>aefId</li> <li>apiInvokerId</li> <li>logs</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/#test-case-2-get-capif-log-entry-with-no-log-entry-in-capif","title":"Test Case 2: Get CAPIF Log Entry With no Log entry in CAPIF.","text":"<p>Test ID: capif_api_auditing-2</p> <p>Description:</p> <p>This test case will check that a CAPIF AEF can create log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs?aef-id={aefId}&amp;api-invoker-id={api-invoker-id}</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found Log Entry in CAPIF\".</li> <li>cause with message \"Not Exist Logs with the filters applied\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/#test-case-3-get-capif-log-entry-without-aef-id-and-api-invoker-id","title":"Test Case 3: Get CAPIF Log Entry without aef-id and api-invoker-id.","text":"<p>Test ID: capif_api_auditing-3</p> <p>Description:</p> <p>This test case will check that a CAPIF AEF can create log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is no pre-authorised (has no valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> <li>Log Entry exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry   4. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Create Log Entry:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"aef_id and api_invoker_id parameters are mandatory\".</li> <li>cause with message \"Mandatory parameters missing\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/#test-case-4-get-capif-log-entry-with-filtter-api-version","title":"Test Case 4: Get CAPIF Log Entry with filtter api-version.","text":"<p>Test ID: capif_api_auditing-4</p> <p>Description:</p> <p>This test case will check that a CAPIF AMF can get log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> <li>Log Entry exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry   4. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Create Log Entry:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs?aef-id={aefId}&amp;api-invoker-id={api-invoker-id}&amp;api-version={v1}</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>200 OK</li> <li>Response Body must follow InvocationLog data structure with:<ul> <li>aefId</li> <li>apiInvokerId</li> <li>logs</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/#test-case-5-get-capif-log-entry-with-filter-api-version-but-not-exist-in-log-entry","title":"Test Case 5: Get CAPIF Log Entry with filter api-version but not exist in log entry.","text":"<p>Test ID: capif_api_auditing-4</p> <p>Description:</p> <p>This test case will check that a CAPIF AMF can get log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> <li>Log Entry exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry   4. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Create Log Entry:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs?aef-id={aefId}&amp;api-invoker-id={api-invoker-id}&amp;api-version={v58}</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>detail with message \"Parameters do not match any log entry\"</li> <li>cause with message \"No logs found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/","title":"Test Plan for CAPIF Discover Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_discover_service/#test-case-1-discover-published-service-apis-by-authorised-api-invoker","title":"Test Case 1: Discover Published service APIs by Authorised API Invoker","text":"<p>Test ID: capif_api_discover_service-1</p> <p>Description:</p> <p>This test case will check if Network App (Invoker) can discover published service APIs.</p> <p>Pre-Conditions:</p> <ul> <li>Service APIs are published.</li> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-2-discover-published-service-apis-by-non-authorised-api-invoker","title":"Test Case 2: Discover Published service APIs by Non Authorised API Invoker","text":"<p>Test ID: capif_api_discover_service-2</p> <p>Description:</p> <p>This test case will check that an API Publisher can't discover published APIs because is not authorized.</p> <p>Pre-Conditions:</p> <ul> <li>Service APIs are published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by no invoker entity</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs by no invoker entity:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use not Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By no invoker entity:</p> <ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"User not authorized\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-3-discover-published-service-apis-by-not-registered-api-invoker","title":"Test Case 3: Discover Published service APIs by not registered API Invoker","text":"<p>Test ID: capif_api_discover_service-3</p> <p>Description:</p> <p>This test case will check that a not registered invoker is forbidden to discover published APIs.</p> <p>Pre-Conditions:</p> <ul> <li>Service APIs are published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Publisher</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs with not valid apiInvoker:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={INVOKER_NOT_REGISTERED}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker does not exist\".</li> <li>cause with message \"API Invoker id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-4-discover-published-service-apis-by-registered-api-invoker-with-1-result-filtered","title":"Test Case 4: Discover Published service APIs by registered API Invoker with 1 result filtered","text":"<p>Test ID: capif_api_discover_service-4</p> <p>Description:</p> <p>This test case will check if Network App (Invoker) can discover published service APIs.</p> <p>Pre-Conditions:</p> <ul> <li>At least 2 Service APIs are published.</li> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Discover filtered by api-name service_1 Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs filtering by api-name:<ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;api-name=service_1**</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> <li>filter by api-name service_1</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains previously registered Service APIs published.</li> </ul> </li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains only Service API published with api-name service_1</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-5-discover-published-service-apis-by-registered-api-invoker-filtered-with-no-match","title":"Test Case 5: Discover Published service APIs by registered API Invoker filtered with no match","text":"<p>Test ID: capif_api_discover_service-5</p> <p>Description:</p> <p>This test case will check if Network App (Invoker) can discover published service APIs.</p> <p>Pre-Conditions:</p> <ul> <li>At least 2 Service APIs are published.</li> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Discover filtered by api-name not published Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs filtering by api-name not published:<ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;api-name=NOT_VALID_NAME</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> <li>filter by api-name NOT_VALID_NAME</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains previously registered Service APIs published.</li> </ul> </li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-6-discover-published-service-apis-by-registered-api-invoker-not-filtered","title":"Test Case 6: Discover Published service APIs by registered API Invoker not filtered","text":"<p>Test ID: capif_api_discover_service-6</p> <p>Description:</p> <p>This test case will check if Network App (Invoker) can discover published service APIs.</p> <p>Pre-Conditions:</p> <ul> <li>2 Service APIs are published.</li> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Discover without filter by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs not filtered:<ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the 2 previously registered Service APIs published.</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/","title":"Test Plan for CAPIF Api Events Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_events_service/#test-case-1-creates-a-new-individual-capif-event-subscription","title":"Test Case 1: Creates a new individual CAPIF Event Subscription.","text":"<p>Test ID: capif_api_events-1</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) can Subscribe to Events</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Event Subscriptions are stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-2-creates-a-new-individual-capif-event-subscription-with-invalid-subscriberid","title":"Test Case 2: Creates a new individual CAPIF Event Subscription with Invalid SubscriberId","text":"<p>Test ID: capif_api_events-2</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) cannot Subscribe to Events without valid SubcriberId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is not pre-authorised (has invalid InvokerId or apfId)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{SUBSCRIBER_NOT_REGISTERED}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker or APF or AEF or AMF Not found\".</li> <li>cause with message \"Subscriber Not Found\".</li> </ul> </li> </ol> </li> <li> <p>Event Subscriptions are not stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-3-deletes-an-individual-capif-event-subscription","title":"Test Case 3: Deletes an individual CAPIF Event Subscription","text":"<p>Test ID: capif_api_events-3</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) can Delete an Event Subscription</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Remove Event Subscription</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Remove Event Subscription:</p> <ol> <li>Send DELETE to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Event Subscriptions are stored in CAPIF Database</p> </li> <li> <p>Remove Event Subscription:</p> <ol> <li>204 No Content</li> </ol> </li> <li> <p>Event Subscription is not present at CAPIF Database.</p> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-4-deletes-an-individual-capif-event-subscription-with-invalid-subscriberid","title":"Test Case 4: Deletes an individual CAPIF Event Subscription with invalid SubscriberId","text":"<p>Test ID: capif_api_events-4</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) cannot Delete to Events without valid SubcriberId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId).</li> <li>CAPIF subscriber is subscribed to Events.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> <li>Retrieve Location Header with subscriptionId.</li> <li>Remove Event Subscribed with not valid Subscriber.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Remove Event Subcription with not valid subscriber:</p> <ol> <li>Send DELETE to https://{CAPIF_HOSTNAME}/capif-events/v1/{SUBSCRIBER_ID_NOT_VALID}/subscriptions/{subcriptionId}</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Event Subscriptions are stored in CAPIF Database</p> </li> <li> <p>Error Response Body must accomplish with ProblemDetails data structure with:</p> <ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker or APF or AEF or AMF Not found\".</li> <li>cause with message \"Subscriber Not Found\".</li> </ul> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-5-deletes-an-individual-capif-event-subscription-with-invalid-subscriptionid","title":"Test Case 5: Deletes an individual CAPIF Event Subscription with invalid SubscriptionId","text":"<p>Test ID: capif_api_events-5</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) cannot Delete an Event Subscription without valid SubscriptionId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has invalid InvokerId or apfId).</li> <li>CAPIF subscriber is subscribed to Events.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> <li>Retrieve Location Header with subscriptionId.</li> <li>Remove Event Subscribed with not valid Subscriber.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Remove Event Subcription with not valid subscriber:</p> <ol> <li>Send DELETE to to https://{CAPIF_HOSTNAME}/capif-events/v1/{subcriberId}/subscriptions/{SUBSCRIPTION_ID_NOT_VALID}</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Event Subscriptions are stored in CAPIF Database</p> </li> <li>Remove Event Subscription with not valid subscriber:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>detail with message \"Service API not existing\".</li> <li>cause with message \"Event API subscription id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-6-invoker-receives-service-api-invocation-events","title":"Test Case 6: Invoker receives Service API Invocation events","text":"<p>Test ID: capif_api_events-6, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE, receive the notification when AEF Send TO logging service result of invocations to their APIs.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>API Provider had a Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE event filtering by aefId. Enhanced_event_report active at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Emulate Success and Failure on API invocation of provider by Invoker, using Invocation Logs API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_INVOCATION_SUCCESS','SERVICE_API_INVOCATION_FAILURE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Create Log Entry emulating provider receive Success and Failure api invocation from invoker:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body with:<ol> <li>aefId from provider published.</li> <li>apiInvokerId from invoker onboarded.</li> <li>apiId of published API</li> <li>apiName of published API</li> <li>200 and 400 results in two logs.</li> </ol> </li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to creation of log entry on CCF must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/api-invocation-logs/{apiVersion}/{aefId}/subscriptions/{logId}</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with invocationLog in eventDetail parameter.<ol> <li>One should be SERVICE_API_INVOCATION_SUCCESS related with 200 result at Log.</li> <li>The other one must be SERVICE_API_INVOCATION_FAILURE related with 400 result at Log.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-7-invoker-subscribe-to-service-api-available-and-unavailable-events","title":"Test Case 7: Invoker subscribe to Service API Available and Unavailable events","text":"<p>Test ID: capif_api_events-7, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, receive the notification when AEF publish and remove it.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE event filtering by aefId. Enhanced_event_report active at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Provider publish new API.</li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Publish new Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_2</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Remove published Service API at CCF:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Mock Server received messages must accomplish:</p> <ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of service_2 published API.</li> <li>The other one must be SERVICE_API_UNAVAILABLE apiId of service_1 published API.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-8-invoker-subscribe-to-service-api-update","title":"Test Case 8: Invoker subscribe to Service API Update","text":"<p>Test ID: capif_api_events-8, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_UPDATE, receive the notification when AEF Update some information on API Published.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>API Provider had a Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_UPDATE event filtering by aefId. Enhanced_event_report active at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header at event subscription</li> <li>Provider update information of Service API Published.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> <li>Store serviceApiId</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_UPDATE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_UPDATE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>body [service api description] with overrided apiName to service_1_modified**</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Update Published Service API:<ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1_modified**</li> </ul> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received events follow EventNotification data structure, with serviceAPIDescriptions in eventDetail parameter.<ol> <li>Event should be SERVICE_API_UPDATE with eventDetail with modified apiName.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-9-provider-subscribe-to-api-invoker-events","title":"Test Case 9: Provider subscribe to API Invoker events","text":"<p>Test ID: capif_api_events-9, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Provider subscribed to API Invoker events (API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED), receive the notifications when Invoker is onboarded, updated and removed respectively.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Subscribe Provider to API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED events. Enhanced_event_report active at supported features.</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Update Onboarding Information at CCF with a minor change on \"notificationDestination\"</li> <li>Offboard Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Event Subscription to API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED events:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['API_INVOKER_ONBOARDED', 'API_INVOKER_UPDATED', 'API_INVOKER_OFFBOARDED']</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Provider AMF Certificate</li> </ol> </li> <li>Perform invoker onboarding</li> <li>Update information of previously onboarded Invoker:<ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>\"notificationDestination\": \"http://host.docker.internal:8086/netapp_new_callback\",</li> </ul> </li> <li>Offboard:<ul> <li>Send DELETE to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Update Request (PUT) with minor change must contain:<ol> <li>200 OK response.</li> <li>notificationDestination on response must contain the new value</li> </ol> </li> <li>Response to Offboard Request (DELETE) must contain:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Three Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiInvokerIds in eventDetail parameter.<ol> <li>One Event should be API_INVOKER_ONBOARDED with eventDetail with modified apiInvokerId.</li> <li>One Event should be API_INVOKER_UPDATED with eventDetail with modified apiInvokerId.</li> <li>One Event should be API_INVOKER_OFFBOARDED with eventDetail with modified apiInvokerId.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-10-provider-subscribed-to-acl-update-event","title":"Test Case 10: Provider subscribed to ACL update event","text":"<p>Test ID: capif_api_events-10, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Provider subscribed to ACCESS_CONTROL_POLICY_UPDATE receive a notification when ACL Changes.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>API Invoker had a Security Context for the Service API published by provider.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Provider to ACCESS_CONTROL_POLICY_UPDATE event. Enhanced_event_report active at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Provider Retrieve ACL</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UPDATE event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UPDATE']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Provider AMF Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received event follow EventNotification data structure, with accCtrlPolListExt in eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UPDATE with eventDetail with accCtrlPolListExt including the apiId and apiInvokerPolicies.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-11-provider-receives-an-acl-unavailable-event-when-invoker-remove-security-context","title":"Test Case 11: Provider receives an ACL unavailable event when invoker remove Security Context.","text":"<p>Test ID: capif_api_events-11, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to ACCESS_CONTROL_POLICY_UNAVAILABLE will receive the notification when AEF remove Security Context created previously.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Invoker to ACCESS_CONTROL_POLICY_UNAVAILABLE event. Enhanced_event_report active at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Provider Retrieve ACL.</li> <li>Remove Security Context for Invoker.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UNAVAILABLE event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UNAVAILABLE']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li>Delete Security Context of Invoker by Provider:<ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Use AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> <li>Delete security context:<ol> <li>204 No Content response.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UNAVAILABLE without eventDetail.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-12-invoker-receives-an-invoker-authorization-revoked-and-acl-unavailable-event-when-provider-revoke-invoker-authorization","title":"Test Case 12: Invoker receives an Invoker Authorization Revoked and ACL unavailable event when Provider revoke Invoker Authorization.","text":"<p>Test ID: capif_api_events-12, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to API_INVOKER_AUTHORIZATION_REVOKED and ACCESS_CONTROL_POLICY_UNAVAILABLE receive both notification when AEF revoke invoker's authorization.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Invoker to ACCESS_CONTROL_POLICY_UNAVAILABLE and API_INVOKER_AUTHORIZATION_REVOKED events.  Enhanced_event_report active at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Revoke Authorization by Provider.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UNAVAILABLE and API_INVOKER_AUTHORIZATION_REVOKED event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UNAVAILABLE','API_INVOKER_AUTHORIZATION_REVOKED']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Revoke Authorization by Provider:<ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/delete</li> <li>body security notification body</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>Revoke Authorization:<ol> <li>204 No Content response.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UNAVAILABLE without eventDetail.</li> <li>One Event should be API_INVOKER_AUTHORIZATION_REVOKED without eventDetail.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-13-creates-a-new-individual-capif-event-subscription-without-supported-features-attribute","title":"Test Case 13: Creates a new individual CAPIF Event Subscription without supported features attribute.","text":"<p>Test ID: capif_api_events-13</p> <p>Description:</p> <p>This test case will check error when CAPIF subscriber (Invoker or Publisher) Subscribe to Events without supported features attribute.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events without supported features</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body<ol> <li>supportedFeatures NOT PRESENT.</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"supportedFeatures not present in request\".</li> <li>cause with message \"supportedFeatures not present\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-14-invoker-receives-service-api-invocation-events-without-enhanced-event-report","title":"Test Case 14: Invoker receives Service API Invocation events without Enhanced Event Report","text":"<p>Test ID: capif_api_events-14, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE, receive the notification when AEF Send TO logging service result of invocations to their APIs.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>API Provider had a Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE event filtering by aefId. Enhanced_event_report inactive at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Emulate Success and Failure on API invocation of provider by Invoker, using Invocation Logs API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_INVOCATION_SUCCESS','SERVICE_API_INVOCATION_FAILURE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Create Log Entry emulating provider receive Success and Failure api invocation from invoker:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body with:<ol> <li>aefId from provider published.</li> <li>apiInvokerId from invoker onboarded.</li> <li>apiId of published API</li> <li>apiName of published API</li> <li>200 and 400 results in two logs.</li> </ol> </li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to creation of log entry on CCF must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/api-invocation-logs/{apiVersion}/{aefId}/subscriptions/{logId}</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_INVOCATION_SUCCESS related with 200 result at Log.</li> <li>The other one must be SERVICE_API_INVOCATION_FAILURE related with 400 result at Log.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-15-invoker-subscribe-to-service-api-available-and-unavailable-events-without-enhanced-event-report","title":"Test Case 15: Invoker subscribe to Service API Available and Unavailable events without Enhanced Event Report","text":"<p>Test ID: capif_api_events-15, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, receive the notification when AEF publish and remove it.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE event filtering by aefId. Enhanced_event_report inactive at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Provider publish new API.</li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Publish new Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_2</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Remove published Service API at CCF:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Mock Server received messages must accomplish:</p> <ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of service_2 published API.</li> <li>The other one must be SERVICE_API_UNAVAILABLE apiId of service_1 published API.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-16-invoker-subscribe-to-service-api-update-without-enhanced-event-report","title":"Test Case 16: Invoker subscribe to Service API Update without Enhanced Event Report","text":"<p>Test ID: capif_api_events-16, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_UPDATE, receive the notification when AEF Update some information on API Published.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>API Provider had a Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_UPDATE event filtering by aefId. Enhanced_event_report inactive at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header at event subscription</li> <li>Provider update information of Service API Published.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> <li>Store serviceApiId</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_UPDATE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_UPDATE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>body [service api description] with overrided apiName to service_1_modified**</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Update Published Service API:<ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1_modified**</li> </ul> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received events follow EventNotification data structure, with serviceAPIDescriptions in eventDetail parameter.<ol> <li>Event should be SERVICE_API_UPDATE with eventDetail with modified apiName.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-17-provider-subscribe-to-api-invoker-events-without-enhanced-event-report","title":"Test Case 17: Provider subscribe to API Invoker events without Enhanced Event Report","text":"<p>Test ID: capif_api_events-17, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Provider subscribed to API Invoker events (API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED), receive the notifications when Invoker is onboarded, updated and removed respectively.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Subscribe Provider to API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED events. Enhanced_event_report inactive at supported features.</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Update Onboarding Information at CCF with a minor change on \"notificationDestination\"</li> <li>Offboard Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Event Subscription to API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED events:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['API_INVOKER_ONBOARDED', 'API_INVOKER_UPDATED', 'API_INVOKER_OFFBOARDED']</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Provider AMF Certificate</li> </ol> </li> <li>Perform invoker onboarding</li> <li>Update information of previously onboarded Invoker:<ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>\"notificationDestination\": \"http://host.docker.internal:8086/netapp_new_callback\",</li> </ul> </li> <li>Offboard:<ul> <li>Send DELETE to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Update Request (PUT) with minor change must contain:<ol> <li>200 OK response.</li> <li>notificationDestination on response must contain the new value</li> </ol> </li> <li>Response to Offboard Request (DELETE) must contain:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Three Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be API_INVOKER_ONBOARDED</li> <li>One Event should be API_INVOKER_UPDATED</li> <li>One Event should be API_INVOKER_OFFBOARDED</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-18-provider-subscribed-to-acl-update-event-without-enhanced-event-report","title":"Test Case 18: Provider subscribed to ACL update event without Enhanced Event Report","text":"<p>Test ID: capif_api_events-18, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Provider subscribed to ACCESS_CONTROL_POLICY_UPDATE receive a notification when ACL Changes.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>API Invoker had a Security Context for the Service API published by provider.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Provider to ACCESS_CONTROL_POLICY_UPDATE event. Enhanced_event_report inactive at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Provider Retrieve ACL</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UPDATE event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UPDATE']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Provider AMF Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UPDATE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-19-provider-receives-an-acl-unavailable-event-when-invoker-remove-security-context-without-enhanced-event-report","title":"Test Case 19: Provider receives an ACL unavailable event when invoker remove Security Context without Enhanced Event Report","text":"<p>Test ID: capif_api_events-19, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to ACCESS_CONTROL_POLICY_UNAVAILABLE will receive the notification when AEF remove Security Context created previously.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Invoker to ACCESS_CONTROL_POLICY_UNAVAILABLE event. Enhanced_event_report inactive at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Provider Retrieve ACL.</li> <li>Remove Security Context for Invoker.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UNAVAILABLE event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UNAVAILABLE']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li>Delete Security Context of Invoker by Provider:<ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Use AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> <li>Delete security context:<ol> <li>204 No Content response.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UNAVAILABLE without eventDetail.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-20-invoker-receives-an-invoker-authorization-revoked-and-acl-unavailable-event-when-provider-revoke-invoker-authorization-without-enhanced-event-report","title":"Test Case 20: Invoker receives an Invoker Authorization Revoked and ACL unavailable event when Provider revoke Invoker Authorization without Enhanced Event Report","text":"<p>Test ID: capif_api_events-20, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to API_INVOKER_AUTHORIZATION_REVOKED and ACCESS_CONTROL_POLICY_UNAVAILABLE receive both notification when AEF revoke invoker's authorization.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Invoker to ACCESS_CONTROL_POLICY_UNAVAILABLE and API_INVOKER_AUTHORIZATION_REVOKED events.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Revoke Authorization by Provider.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UNAVAILABLE and API_INVOKER_AUTHORIZATION_REVOKED event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UNAVAILABLE','API_INVOKER_AUTHORIZATION_REVOKED']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Revoke Authorization by Provider:<ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/delete</li> <li>body security notification body</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>Revoke Authorization:<ol> <li>204 No Content response.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UNAVAILABLE without eventDetail.</li> <li>One Event should be API_INVOKER_AUTHORIZATION_REVOKED without eventDetail.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/","title":"Test Plan for CAPIF Api Invoker Management","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_invoker_management/#test-case-1-onboard-network-app","title":"Test Case 1: Onboard Network App","text":"<p>Test ID: capif_api_invoker_management-1</p> <p>Description:</p> <p>This test will try to register new Network App at CAPIF Core.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was not registered previously</li> <li>Network App was not onboarded previously</li> <li>Preconditions: The administrator must have previously registered the User.</li> </ul> <p>Execution Steps:</p> <ol> <li>Retrieve access_token by User from register</li> <li>Onboard Invoker at CCF</li> <li>Store signed Certificate</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at invoker</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Onboard Invoker:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers</li> <li>Reference Request Body: invoker onboarding body</li> <li>\"onboardingInformation\"-&gt;\"apiInvokerPublicKey\": must contain public key generated by Invoker.</li> <li>Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-2-onboard-network-app-already-onboarded","title":"Test Case 2: Onboard Network App Already onboarded","text":"<p>Test ID: capif_api_invoker_management-2</p> <p>Description:</p> <p>This test will check second onboard of same Network App is not allowed.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Network App at CCF</li> <li>Onboard Network App at CCF</li> <li>Store signed Certificate at Network App</li> <li>Onboard Again the Network App at CCF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Repeat Onboard Invoker:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers</li> <li>Reference Request Body: invoker onboarding body</li> <li>\"onboardingInformation\"-&gt;\"apiInvokerPublicKey\": must contain public key generated by Invoker.</li> <li>Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Second Onboard of Network App must accomplish:<ol> <li>403 Forbidden</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 403</li> <li>title with message \"Forbidden\"</li> <li>detail with message \"Invoker Already registered\".</li> <li>cause with message \"Identical invoker public key\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-3-update-onboarded-network-app","title":"Test Case 3: Update Onboarded Network App","text":"<p>Test ID: capif_api_invoker_management-3</p> <p>Description:</p> <p>This test will try to update information of previous onboard Network App at CAPIF Core.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Update Onboarding Information at CCF with a minor change on \"notificationDestination\"</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Update information of previously onboarded Invoker:</p> <ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>\"notificationDestination\": \"http://host.docker.internal:8086/netapp_new_callback\",</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Update Request (PUT) with minor change must contain:<ol> <li>200 OK response.</li> <li>notificationDestination on response must contain the new value</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-4-update-not-onboarded-network-app","title":"Test Case 4: Update Not Onboarded Network App","text":"<p>Test ID: capif_api_invoker_management-4</p> <p>Description:</p> <p>This test will try to update information of not onboarded Network App at CAPIF Core.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was not onboarded previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Onboard Invoker at CCF</li> <li>Update Onboarding Information at CCF of not onboarded</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Update information of not onboarded Invoker:</p> <ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{INVOKER_NOT_REGISTERED}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> </ol> </li> <li>Response to Update Request (PUT) must contain:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Please provide an existing Network App ID\".</li> <li>cause with message \"Not exist Network App ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-5-offboard-network-app","title":"Test Case 5: Offboard Network App","text":"<p>Test ID: capif_api_invoker_management-5</p> <p>Description:</p> <p>This test case will check that a Registered Network App can be deleted.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Onboard Invoker at CCF</li> <li>Offboard Invoker at CCF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Offboard:</p> <ul> <li>Send DELETE to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> </ol> </li> <li>Response to Offboard Request (DELETE) must contain:<ol> <li>204 No Content</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-6-offboard-not-previsouly-onboarded-network-app","title":"Test Case 6: Offboard Not previsouly Onboarded Network App","text":"<p>Test ID: capif_api_invoker_management-6</p> <p>Description:</p> <p>This test case will check that a Non-Registered Network App cannot be deleted</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was not onboarded previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Offboard Invoker at CCF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Offboard:</p> <ul> <li>Send DELETE to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{INVOKER_NOT_REGISTERED}</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Offboard Request (DELETE) must contain:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Please provide an existing Network App ID\".</li> <li>cause with message \"Not exist Network App ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-7-update-onboarded-network-app-certificate","title":"Test Case 7: Update Onboarded Network App Certificate","text":"<p>Test ID: capif_api_invoker_management-7</p> <p>Description:</p> <p>This test will try to update public key and get a new signed certificate by CAPIF Core.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId} and {public_key_1}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Update Onboarding Information at CCF with new public key</li> <li>Update Onboarding Information at CCF with minor change</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding with public_key_1.</p> </li> <li> <p>Create {public_key_2}</p> </li> <li> <p>Update information of previously onboarded Invoker:</p> <ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>[\"onboardingInformation\"][\"apiInvokerPublicKey\"]: {public_key_2},</li> <li>Store new certificate.</li> </ul> </li> <li> <p>Update information of previously onboarded Invoker Using new certificate:</p> <ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>\"notificationDestination\": \"http://host.docker.internal:8086/netapp_new_callback\",</li> <li>Use new Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Update Request (PUT) with new public key:<ol> <li>200 OK response.</li> <li>apiInvokerCertificate with new certificate on response -&gt; store to use.</li> </ol> </li> <li>Response to Update Request (PUT) with minor change must contain:<ol> <li>200 OK response.</li> <li>notificationDestination on response must contain the new value</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_logging_service/","title":"Test Plan for CAPIF Api Logging Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_logging_service/#test-case-1-creates-a-new-individual-capif-log-entry","title":"Test Case 1: Creates a new individual CAPIF Log Entry.","text":"<p>Test ID: capif_api_logging-1</p> <p>Description:</p> <p>This test case will check that a CAPIF AEF can create log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid aefId from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow InvocationLog data structure with:<ul> <li>aefId</li> <li>apiInvokerId</li> <li>logs</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invocation-logs/v1/{aefId}/logs/{logId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_logging_service/#test-case-2-creates-a-new-individual-capif-log-entry-with-invalid-aefid","title":"Test Case 2:  Creates a new individual CAPIF Log Entry with Invalid aefId","text":"<p>Test ID: capif_api_logging-2</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (AEF) cannot create Log Entry without valid aefId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is not pre-authorised (has not valid aefId from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{not-valid-aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Exposer not exist\".</li> <li>cause with message \"Exposer id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_logging_service/#test-case-3-creates-a-new-individual-capif-log-entry-with-invalid-serviceapi","title":"Test Case 3:  Creates a new individual CAPIF Log Entry with Invalid serviceAPI","text":"<p>Test ID: capif_api_logging-3</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (AEF) cannot create Log Entry without valid aefId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid aefId from CAPIF Authority)</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body [log entry request body with serviceAPI apiName apiId not valid]</li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not exist\".</li> <li>cause with message \"Invoker id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_logging_service/#test-case-4-creates-a-new-individual-capif-log-entry-with-invalid-apiinvokerid","title":"Test Case 4:  Creates a new individual CAPIF Log Entry with Invalid apiInvokerId","text":"<p>Test ID: capif_api_logging-4</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (AEF) cannot create Log Entry without valid aefId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid aefId from CAPIF Authority)</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body [log entry request body with invokerId not valid]</li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure.</li> <li>For each apiProvFuncs, we must check:<ol> <li>apiProvFuncId is set</li> <li>apiProvCert under regInfo is set properly</li> </ol> </li> <li>Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}</li> </ol> </li> <li> <p>Response to Logging Service must accomplish:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not exist\".</li> <li>cause with message \"Invoker id not found\".</li> </ul> </li> </ol> </li> <li> <p>Log Entry are not stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_logging_service/#test-case-5-creates-a-new-individual-capif-log-entry-with-invalid-aefid-in-body","title":"Test Case 5:  Creates a new individual CAPIF Log Entry with Invalid aefId in body","text":"<p>Test ID: capif_api_logging-5</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (AEF) cannot create Log Entry without valid aefId in body</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body [log entry request body with bad aefId] </li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"AEF id not matching in request and body\".</li> <li>cause with message \"Not identical AEF id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/","title":"Test Plan for CAPIF Api Provider Management","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_provider_management/#test-case-1-register-api-provider","title":"Test Case 1: Register Api Provider","text":"<p>Test ID: capif_api_provider_management-1</p> <p>Description:</p> <p>This test case will check that Api Provider can be registered con CCF</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid certificate from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Create private and public key for provider and each function to register.</li> <li>Register Provider.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Register Provider at Provider Management:<ol> <li>201 Created response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure.</li> <li>For each apiProvFuncs, we must check:<ol> <li>apiProvFuncId is set</li> <li>apiProvCert under regInfo is set properly</li> </ol> </li> <li>Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-2-register-api-provider-already-registered","title":"Test Case 2: Register Api Provider Already registered","text":"<p>Test ID: capif_api_provider_management-2</p> <p>Description:</p> <p>This test case will check that a Api Provider previously registered cannot be re-registered</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was registered previously and there is a {registerId} for his Api Provider in the DB</li> </ul> <p>Execution Steps:</p> <ol> <li>Create private and public key for provider and each function to register.</li> <li>Register Provider.</li> <li>Re-Register Provider.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Re-Register Provider:</p> <ul> <li>Same regSec than Previous registration</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Re-Register Provider:<ol> <li>403 Forbidden response.</li> <li> <p>body returned must accomplish ProblemDetails data structure, with:</p> <ul> <li>status 403</li> <li>title with message \"Forbidden\"</li> <li>detail with message \"Provider already registered\".</li> <li>cause with message \"Identical provider reg sec\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-3-update-registered-api-provider","title":"Test Case 3: Update Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-3</p> <p>Description:</p> <p>This test case will check that a Registered Api Provider can be updated</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was registered previously and there is a {registerId} for his Api Provider in the DB</li> </ul> <p>Execution Steps:</p> <ol> <li>Create private and public key for provider and each function to register.</li> <li>Register Provider</li> <li>Update Provider</li> </ol> <p>Information of Test:</p> <ol> <li>Create public and private key at provider for provider itself and each function (apf, aef and amf)</li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Get Resource URL from Location</li> </ul> </li> <li> <p>Update Provider:</p> <ul> <li>Send PUT to Resource URL returned at registration https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{registrationId}</li> <li>body provider request body with apiProvDomInfo set to ROBOT_TESTING_MOD</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Register Provider:</p> <ol> <li>201 Created response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}</li> </ol> </li> <li> <p>Update Provider:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure, with:<ul> <li>apiProvDomInfo set to ROBOT_TESTING_MOD</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-4-update-not-registered-api-provider","title":"Test Case 4: Update Not Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-4</p> <p>Description:</p> <p>This test case will check that a Non-Registered Api Provider cannot be updated</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was not registered previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Update Not Registered Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Update Not Registered Provider:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{API_PROVIDER_NOT_REGISTERED}</li> <li>body provider request body</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Update Not Registered Provider:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Not Exist Provider Enrolment Details\".</li> <li>cause with message \"Not found registrations to Send THIS api provider details\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-5-partially-update-registered-api-provider","title":"Test Case 5: Partially Update Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-5</p> <p>Description:</p> <p>This test case will check that a Registered Api Provider can be partially updated</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was registered previously and there is a {registerId} for his Api Provider in the DB</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Register Provider</li> <li>Partial update provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Partial update provider:</p> <ul> <li>Send PATCH https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{registrationId}</li> <li>body provider request patch body</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Partial update provider at Provider Management:<ol> <li>200 OK response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure, with:<ul> <li>apiProvDomInfo with \"ROBOT_TESTING_MOD\"</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-6-partially-update-not-registered-api-provider","title":"Test Case 6: Partially Update Not Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-6</p> <p>Description:</p> <p>This test case will check that a Non-Registered Api Provider cannot be partially updated  </p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was not registered previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Register Provider</li> <li>Partial update provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Partial update Provider:</p> <ul> <li>Send PATCH https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{API_API_PROVIDER_NOT_REGISTERED}</li> <li>body provider request patch body</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Partial update provider:<ol> <li>404 Not Found response.</li> <li> <p>body returned must accomplish ProblemDetails data structure, with:</p> <ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Not Exist Provider Enrolment Details\".</li> <li>cause with message \"Not found registrations to Send THIS api provider details\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-7-delete-registered-api-provider","title":"Test Case 7: Delete Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-7</p> <p>Description:</p> <p>This test case will check that a Registered Api Provider can be deleted</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was registered previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Register Provider</li> <li>Delete Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Delete registered provider:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{registrationId}</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Delete Provider:<ol> <li>204 No Content response.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-8-delete-not-registered-api-provider","title":"Test Case 8: Delete Not Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-8</p> <p>Description:</p> <p>This test case will check that a Non-Registered Api Provider cannot be deleted</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was not registered previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Delete Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Delete registered provider at Provider Management:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{API_PROVIDER_NOT_REGISTERED}</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Delete Provider:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Not Exist Provider Enrolment Details\".</li> <li>cause with message \"Not found registrations to Send THIS api provider details\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/","title":"Test Plan for CAPIF Api Publish Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_publish_service/#test-case-1-publish-api-by-authorised-api-publisher","title":"Test Case 1: Publish API by Authorised API Publisher","text":"<p>Test ID: capif_api_publish_service-1</p> <p>Description:</p> <p>This test case will check that an API Publisher can Publish an API</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li> <p>Register Provider at CCF and store certificates.</p> </li> <li> <p>Publish Service API</p> </li> <li> <p>Retrieve {apiId} from body and Location header with new resource created from response</p> </li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> </li> <li> <p>Send POST to ccf_publish_url: https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</p> </li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Published Service API is stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-2-publish-api-by-non-authorised-api-publisher","title":"Test Case 2: Publish API by NON Authorised API Publisher","text":"<p>Test ID: capif_api_publish_service-2</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Publish an API withot valid apfId </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is NOT pre-authorised (has invalid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API with invalid APF ID</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API with invalid APF ID at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{APF_ID_NOT_VALID}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Publisher not existing\".</li> <li>cause with message \"Publisher id not found\".</li> </ul> </li> </ol> </li> <li> <p>Service API is NOT stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-3-retrieve-all-apis-published-by-authorised-apfid","title":"Test Case 3: Retrieve all APIs Published by Authorised apfId","text":"<p>Test ID: capif_api_publish_service-3</p> <p>Description:</p> <p>This test case will check that an API Publisher can Retrieve all API published</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>At least 2 service APIs are published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API service_1</li> <li>Retrieve {apiId1} from body and Location header with new resource created from response</li> <li>Publish Service API service_2</li> <li>Retrieve {apiId2} from body and Location header with new resource created from response</li> <li>Retrieve All published APIs and check if both are present.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Publish Other Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve all published APIs:</p> <ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to service 1 Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId1}</li> </ol> </li> <li> <p>Response to service 2 Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId2}</li> </ol> </li> <li> <p>Published Service APIs are stored in CAPIF Database</p> </li> <li> <p>Response to Retrieve all published APIs:</p> <ol> <li>200 OK</li> <li>Response body must return an array of ServiceAPIDescription data.</li> <li>Array must contain all previously published APIs.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-4-retrieve-all-apis-published-by-non-authorised-apfid","title":"Test Case 4: Retrieve all APIs Published by NON Authorised apfId","text":"<p>Test ID: capif_api_publish_service-4</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Retrieve API published when apfId is not authorised </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is NOT pre-authorised (has invalid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Retrieve All published APIs</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Retrieve all published APIs:</p> <ul> <li>Send GET to https://{CAPIF_HOSTNAME}/published-apis/v1/{APF_ID_NOT_VALID}/service-apis</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>401 Non Authorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Provider not existing\".</li> <li>cause with message \"Provider id not found\".</li> </ul> </li> </ol> </li> <li> <p>Service API is NOT stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-5-retrieve-single-apis-published-by-authorised-apfid","title":"Test Case 5: Retrieve single APIs Published by Authorised apfId","text":"<p>Test ID: capif_api_publish_service-5</p> <p>Description:</p> <p>This test case will check that an API Publisher can Retrieve API published one by one</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>At least 2 service APIs are published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API service_1.</li> <li>Retrieve {apiId1} from body and Location header with new resource created from response.</li> <li>Publish Service API service_2.</li> <li>Retrieve {apiId2} from body and Location header with new resource created from response.</li> <li>Retrieve service_1 API Detail.</li> <li>Retrieve service_2 API Detail.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Publish Other Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve service_1 published APIs detail:</p> <ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{apiId1}</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve service_2 published APIs detail:</p> <ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{apiId2}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to service 1 Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId1}</li> </ol> </li> <li> <p>Response to service 2 Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId2}</li> </ol> </li> <li> <p>Published Service APIs are stored in CAPIF Database</p> </li> <li> <p>Response to Retrieve service_1 published API using apiId1:</p> <ol> <li>200 OK</li> <li>Response body must return a ServiceAPIDescription data.</li> <li>Array must contain same information than service_1 published registration response.</li> </ol> </li> <li> <p>Response to Retrieve service_2 published API using apiId2:</p> <ol> <li>200 OK</li> <li>Response body must return a ServiceAPIDescription data.</li> <li>Array must contain same information than service_2 published registration response.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-6-retrieve-single-apis-non-published-by-authorised-apfid","title":"Test Case 6: Retrieve single APIs non Published by Authorised apfId","text":"<p>Test ID: capif_api_publish_service-6</p> <p>Description:</p> <p>This test case will check that an API Publisher try to get detail of not published api.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>No published api</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Retrieve not published API Detail.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration</li> <li>Retrieve not published APIs detail:<ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID_NOT_VALID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Retrieve for NOT published API must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Service API not found\".</li> <li>cause with message \"No Service with specific credentials exists\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-7-retrieve-single-apis-published-by-non-authorised-apfid","title":"Test Case 7: Retrieve single APIs Published by NON Authorised apfId","text":"<p>Test ID: capif_api_publish_service-7</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Retrieve detailed API published when apfId is not authorised </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is NOT pre-authorised (has invalid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API at CCF</li> <li>Retrieve {apiId} from body and Location header with new resource created from response.</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Invoker Certificate</li> <li>Retrieve detailed published API acting as Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve detailed published APIs:</p> <ul> <li>Send GET to https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/${apiId}</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Retrieve Detailed published API acting as Invoker must accomplish:</p> <ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"User not authorized\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> <li> <p>Service API is NOT stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-8-update-api-published-by-authorised-apfid-with-valid-serviceapiid","title":"Test Case 8: Update API Published by Authorised apfId with valid serviceApiId","text":"<p>Test ID: capif_api_publish_service-8</p> <p>Description:</p> <p>This test case will check that an API Publisher can Update published API with a valid serviceApiId </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>A service APIs is published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API</li> <li>Retrieve {apiId} from body and Location header with new resource url created from response</li> <li>Update published Service API.</li> <li>Retrieve detail of Service API</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>get resource url from location Header.</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>body service api description with overrided apiName to service_1_modified</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve detail of service API:</p> <ul> <li>Send GET to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>check apiName is service_1_modified</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Update Published Service API:</p> <ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1_modified</li> </ul> </li> </ol> </li> <li> <p>Response to Retrieve detail of Service API:</p> <ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1_modified.</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-9-update-apis-published-by-authorised-apfid-with-invalid-serviceapiid","title":"Test Case 9: Update APIs Published by Authorised apfId with invalid serviceApiId","text":"<p>Test ID: capif_api_publish_service-9</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Update published API with a invalid serviceApiId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Update published Service API.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID_NOT_VALID}</li> <li>body service api description with overrided apiName to service_1*_modified*</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Update Published Service API:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Service API not found\".</li> <li>cause with message \"Service API id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-10-update-apis-published-by-non-authorised-apfid","title":"Test Case 10: Update APIs Published by NON Authorised apfId","text":"<p>Test ID: capif_api_publish_service-10</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Update API published when apfId is not authorised</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is NOT pre-authorised (has invalid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API at CCF</li> <li>Retrieve {apiId} from body and Location header with new resource created from response.</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Invoker Certificate</li> <li>Update published API at CCF as Invoker</li> <li>Retrieve detail of Service API as publisher</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>body service api description with overrided apiName to service_1*_modified*</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Retrieve detail of service API:</p> <ul> <li>Send GET to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>check apiName is service_1</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Update published API acting as Invoker must accomplish:</p> <ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"User not authorized\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> <li> <p>Response to Retrieve Detail of Service API:</p> <ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1.</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-11-delete-api-published-by-authorised-apfid-with-valid-serviceapiid","title":"Test Case 11: Delete API Published by Authorised apfId with valid serviceApiId","text":"<p>Test ID: capif_api_publish_service-11</p> <p>Description:</p> <p>This test case will check that an API Publisher can Delete published API with a valid serviceApiId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority).</li> <li>A service APIs is published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API</li> <li>Retrieve {apiId} from body and Location header with new resource created from response</li> <li>Remove published API at CCF</li> <li>Try to retreive deleted service API from CCF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Remove published Service API at CCF:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Use APF Certificate</li> </ul> </li> <li>Retrieve detail of service API:<ul> <li>Send GET to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Published Service API is stored in CAPIF Database</p> </li> <li> <p>Response to Remove published Service API at CCF:</p> <ol> <li>204 No Content</li> </ol> </li> <li> <p>Response to Retrieve for DELETED published API must accomplish:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Service API not found\".</li> <li>cause with message \"No Service with specific credentials exists\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-12-delete-apis-published-by-authorised-apfid-with-invalid-serviceapiid","title":"Test Case 12: Delete APIs Published by Authorised apfId with invalid serviceApiId","text":"<p>Test ID: capif_api_publish_service-12</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Delete with invalid serviceApiId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority).</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Remove published API at CCF with invalid serviceId</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Remove published Service API at CCF with invalid serviceId:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID_NOT_VALID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Remove published Service API at CCF:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Service API not found\".</li> <li>cause with message \"Service API id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-13-delete-apis-published-by-non-authorised-apfid","title":"Test Case 13: Delete APIs Published by NON Authorised apfId","text":"<p>Test ID: capif_api_publish_service-13</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Delete API published when apfId is not authorised</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority).</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Register Invoker and onboard Invoker at CCF</li> <li>Remove published API at CCF with invalid serviceId as Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Remove published Service API at CCF with invalid serviceId as Invoker:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID_NOT_VALID}</li> <li>Use Invoker Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Remove published Service API at CCF:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"User not authorized\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-14-check-two-published-apis-with-different-apfs-are-removed-when-provider-is-deleted","title":"Test Case 14: Check Two Published APIs with different APFs are removed when Provider is deleted","text":"<p>Test ID: capif_api_publish_service-13</p> <p>Description:</p> <p>This test case will check that a Provider registered with two APFs, with one API published with each APF are removed properly when provider is removed. </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority).</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider with 2 APFs at CCF and store certificates.</li> <li>Publish service_1 API with APF_1</li> <li>Publish service_2 API with APF_2</li> <li>Retrieve APIs published by APF_1</li> <li>Retrieve APIs published by APF_2</li> <li>Remove Provider by AMF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish service_1 Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId1}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF_1 Certificate</li> </ul> </li> <li>Publish service_2 Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId2}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Get apiId</li> <li>Use APF_2 Certificate</li> </ul> </li> <li>Retrieve all published APIs by APF_1:<ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId1}/service-apis</li> <li>Use APF_1 Certificate</li> </ul> </li> <li>Retrieve all published APIs by APF_2:<ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId2}/service-apis</li> <li>Use APF_2 Certificate</li> </ul> </li> <li>Get Number of services published by superadmin:<ol> <li>Store value obtained in services_present_on_ccf_after_publish</li> </ol> </li> <li>Delete registered provider:<ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{registrationId}</li> <li>Use AMF Certificate.</li> </ul> </li> <li>Get Number of services published by superadmin:<ol> <li>Store value obtained in services_present_on_ccf_after_delete_provider</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId1}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId2}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Retrieve all published APIs by APF_1:<ol> <li>200 OK</li> <li>Response body must return an array of ServiceAPIDescription data.</li> <li>Array must contain all previously published APIs by APF_1.</li> </ol> </li> <li>Response to Retrieve all published APIs by APF_2:<ol> <li>200 OK</li> <li>Response body must return an array of ServiceAPIDescription data.</li> <li>Array must contain all previously published APIs by APF_2.</li> </ol> </li> <li>Delete Provider:<ol> <li>204 No Content response.</li> </ol> </li> <li>Check two APIs where removed after remove provider:<ol> <li>services_present_on_ccf_after_publish - services_present_on_ccf_after_delete_provider = 2</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/","title":"Test Plan for CAPIF Api Security Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_security_service/#test-case-1-create-a-security-context-for-an-api-invoker","title":"Test Case 1: Create a security context for an API invoker","text":"<p>Test ID: capif_security_api-1</p> <p>Description:</p> <p>This test case will check that an API Invoker can create a Security context</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Create Security Context for this Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-2-create-a-security-context-for-an-api-invoker-with-provider-role","title":"Test Case 2: Create a security context for an API invoker with Provider role","text":"<p>Test ID:: capif_security_api-2</p> <p>Description:</p> <p>This test case will check that an Provider cannot create a Security context with valid apiInvokerId.</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID), but user that create Security Context with Provider role</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker but using Provider certificate.</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Create security context using Provider certificate:</p> <ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be invoker\".</li> </ul> </li> </ol> </li> <li> <p>No context stored at DB</p> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-3-create-a-security-context-for-an-api-invoker-with-provider-entity-role-and-invalid-apiinvokerid","title":"Test Case 3: Create a security context for an API invoker with Provider entity role and invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-3</p> <p>Description:</p> <p>This test case will check that an Provider cannot create a Security context with invalid apiInvokerID.</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID), but user that create Security Context with Provider role</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Create Security Context for this not valid apiInvokerId and using Provider certificate.</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>body service security body</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Create security context using Provider certificate:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be invoker\".</li> </ul> </li> </ol> </li> <li>No context stored at DB</li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-4-create-a-security-context-for-an-api-invoker-with-invoker-entity-role-and-invalid-apiinvokerid","title":"Test Case 4: Create a security context for an API invoker with Invoker entity role and invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-4</p> <p>Description:</p> <p>This test case will check that an Invoker cannot create a Security context with valid apiInvokerId.</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID), but user that create Security Context with invalid apiInvokerId</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Create Security Context using Provider certificate</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Create security context using Provider certificate:</p> <ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> <li> <p>No context stored at DB</p> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-5-retrieve-the-security-context-of-an-api-invoker","title":"Test Case 5: Retrieve the Security Context of an API Invoker","text":"<p>Test ID:: capif_security_api-5</p> <p>Description:</p> <p>This test case will check that an provider can retrieve the Security context of an API Invoker</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority) and API Invoker has created a valid Security Context</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> <li>Retrieve Security Context by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker.</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Retrieve security context:<ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-6-retrieve-the-security-context-of-an-api-invoker-with-invalid-apiinvokerid","title":"Test Case 6: Retrieve the Security Context of an API Invoker with invalid apiInvokerID","text":"<p>Test ID:: capif_security_api-6</p> <p>Description:</p> <p>This test case will check that an provider can retrieve the Security context of an API Invoker</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority) and API Invoker has created a valid Security Context</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> <li>Retrieve Security Context by Provider of invalid invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Retrieve Security Context of invalid Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Retrieve security context:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-7-retrieve-the-security-context-of-an-api-invoker-with-invalid-apfid","title":"Test Case 7: Retrieve the Security Context of an API Invoker with invalid apfId","text":"<p>Test ID:: capif_security_api-7</p> <p>Description:</p> <p>This test case will check that an Provider cannot retrieve the Security context of an API Invoker without valid apfId</p> <p>Pre-Conditions:</p> <ul> <li>API Exposure Function is not pre-authorised (has invalid apfId)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Retrieve Security Context as Provider.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Retrieve Security Context as Invoker role:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Create security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be aef\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-8-delete-the-security-context-of-an-api-invoker","title":"Test Case 8: Delete the Security Context of an API Invoker","text":"<p>Test ID:: capif_security_api-8</p> <p>Description:</p> <p>This test case will check that an Provider can delete a Security context</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority) and API Invoker has created a valid Security Context</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> <li>Delete Security Context by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker but using Provider certificate.</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using AEF Certificate</li> </ul> </li> <li> <p>Delete Security Context of Invoker by Provider:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Delete security context:</p> <ol> <li>204 No Content response.</li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Security context not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-9-delete-the-security-context-of-an-api-invoker-with-invoker-entity-role","title":"Test Case 9: Delete the Security Context of an API Invoker with Invoker entity role","text":"<p>Test ID:: capif_security_api-9</p> <p>Description:</p> <p>This test case will check that an Invoker cannot delete a Security context</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority) and API Invoker has created a valid Security Context</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> <li>Delete Security Context by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Delete Security Context of Invoker:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Delete security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be aef\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-10-delete-the-security-context-of-an-api-invoker-with-invoker-entity-role-and-invalid-apiinvokerid","title":"Test Case 10: Delete the Security Context of an API Invoker with Invoker entity role and invalid apiInvokerID","text":"<p>Test ID:: capif_security_api-10</p> <p>Description:</p> <p>This test case will check that an Invoker cannot delete a Security context with invalid </p> <p>Pre-Conditions:</p> <ul> <li>Invoker is pre-authorised.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Delete Security Context by invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Delete Security Context of Invoker:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Delete security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be aef\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-11-delete-the-security-context-of-an-api-invoker-with-invalid-apiinvokerid","title":"Test Case 11: Delete the Security Context of an API Invoker with invalid apiInvokerID","text":"<p>Test ID:: capif_security_api-11</p> <p>Description:</p> <p>This test case will check that an Provider cannot delete a Security context of invalid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority).</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Delete Security Context by provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Delete Security Context of Invoker by Provider:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>Use AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Retrieve security context:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-12-update-the-security-context-of-an-api-invoker","title":"Test Case 12: Update the Security Context of an API Invoker","text":"<p>Test ID:: capif_security_api-12</p> <p>Description:</p> <p>This test case will check that an API Invoker can update a Security context</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context By Invoker</li> <li>Update Security Context By Invoker</li> <li>Retrieve Security Context By Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Update Security Context of Invoker:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/update</li> <li>body service security body but with notification destination modified to http://robot.testing2</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Update security context:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.<ol> <li>Check is this returned object match with modified one.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-13-update-the-security-context-of-an-api-invoker-with-provider-entity-role","title":"Test Case 13: Update the Security Context of an API Invoker with Provider entity role","text":"<p>Test ID:: capif_security_api-13</p> <p>Description:</p> <p>This test case will check that an Provider cannot update a Security context</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized.</li> <li>Invoker has created the Security Context previously.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context</li> <li>Update Security Context as Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Update Security Context of Invoker by Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/update</li> <li>body service security body but with notification destination modified to http://robot.testing2</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Update security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be invoker\". </li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-14-update-the-security-context-of-an-api-invoker-with-aef-entity-role-and-invalid-apiinvokerid","title":"Test Case 14: Update the Security Context of an API Invoker with AEF entity role and invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-14</p> <p>Description:</p> <p>This test case will check that an Provider cannot update a Security context of invalid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized.</li> <li>Invoker has created the Security Context previously.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Update Security Context as Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Update Security Context of Invoker by Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}/update</li> <li>body service security body</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Update security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be invoker\". </li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-15-update-the-security-context-of-an-api-invoker-with-invalid-apiinvokerid","title":"Test Case 15: Update the Security Context of an API Invoker with invalid apiInvokerID","text":"<p>Test ID:: capif_security_api-15</p> <p>Description:</p> <p>This test case will check that an API Invoker cannot update a Security context not valid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Update Security Context</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Update Security Context of Invoker:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}/update</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Retrieve security context:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-16-revoke-the-authorization-of-the-api-invoker-for-apis","title":"Test Case 16: Revoke the authorization of the API invoker for APIs.","text":"<p>Test ID:: capif_security_api-16</p> <p>Description:</p> <p>This test case will check that a Provider can revoke the authorization for APIs</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context by Invoker</li> <li>Revoke Security Context by Provider</li> <li>Retrieve Security Context by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context By Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Revoke Authorization by Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/delete</li> <li>body security notification body</li> <li>Using AEF Certificate.</li> </ul> </li> <li> <p>Retrieve Security Context by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Revoke Authorization:</p> <ol> <li>204 No Content response.</li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Security context not found\".</li> <li>cause with message \"API Invoker has no security context\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-17-revoke-the-authorization-of-the-api-invoker-for-apis-without-valid-apfid","title":"Test Case 17: Revoke the authorization of the API invoker for APIs without valid apfID.","text":"<p>Test ID:: capif_security_api-17</p> <p>Description:</p> <p>This test case will check that an Invoker can't revoke the authorization for APIs</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context</li> <li>Revoke Security Context by invoker</li> <li>Retrieve Security Context</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Revoke Authorization by invoker:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/delete</li> <li>body security notification body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Revoke Security Context by invoker:</p> <ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be provider\". </li> </ul> </li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.<ol> <li>Check is this returned object match with created one.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-18-revoke-the-authorization-of-the-api-invoker-for-apis-with-invalid-apiinvokerid","title":"Test Case 18: Revoke the authorization of the API invoker for APIs with invalid apiInvokerId.","text":"<p>Test ID:: capif_security_api-18</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot revoke the authorization for APIs for invalid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context</li> <li>Revoke Security Context by Provider</li> <li>Retrieve Security Context</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Revoke Authorization by Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}/delete</li> <li>body security notification body</li> <li>Using AEF Certificate.</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}?authenticationInfo=true&amp;authorizationInfo=true</li> <li>This request will ask with parameter to retrieve authenticationInfo and authorizationInfo</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Revoke Security Context by invoker:</p> <ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.<ol> <li>Check is this return one object that match with created one.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-19-retrieve-access-token","title":"Test Case 19: Retrieve access token","text":"<p>Test ID:: capif_security_api-19</p> <p>Description:</p> <p>This test case will check that an API Invoker can retrieve a security access token OAuth 2.0.</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerId)</li> <li>Service API of Provider is published</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token:</li> <li>body access token req body and example example</li> <li>securityId is apiInvokerId.</li> <li>grant_type=client_credentials.</li> <li>Create Scope properly for request: 3gpp#{aef_id}:{api_name}</li> <li>Using Invoker Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>200 OK</li> <li>body must follow AccessTokenRsp with:<ol> <li>access_token present</li> <li>token_type=Bearer</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-20-retrieve-access-token-by-provider","title":"Test Case 20: Retrieve access token by Provider","text":"<p>Test ID:: capif_security_api-20</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot revoke the authorization for APIs for invalid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by provider:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token:</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error unauthorized_client</li> <li>error_description=Role not authorized for this API route</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-21-retrieve-access-token-by-provider-with-invalid-apiinvokerid","title":"Test Case 21: Retrieve access token by Provider with invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-21</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token without valid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by provider:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{API_INVOKER_NOT_VALID}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error unauthorized_client</li> <li>error_description=Role not authorized for this API route</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-22-retrieve-access-token-with-invalid-apiinvokerid","title":"Test Case 22: Retrieve access token with invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-22</p> <p>Description:</p> <p>This test case will check that an API Invoker can't retrieve a security access token without valid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerId)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs not filtered:<ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li>Create Security Context for this Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li>Request Access Token by invoker:<ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{API_INVOKER_NOT_VALID}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails29571 data structure, with:<ul> <li>status 404</li> <li>title Not Found</li> <li>detail Security context not found</li> <li>cause API Invoker has no security context</li> </ul> </li> </ol> </li> </ol> <p>NOTE: ProblemDetails29571 is the definition present for this request at swagger of ProblemDetails, and this is different from definition of ProblemDetails across other CAPIF Services</p>"},{"location":"testing/testplan/api_security_service/#test-case-23-retrieve-access-token-with-invalid-client_id","title":"Test Case 23: Retrieve access token with invalid client_id","text":"<p>Test ID:: capif_security_api-23</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token without valid client_id at body</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>client_id is not-valid </li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error invalid_client</li> <li>error_description=Client Id not found</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-24-retrieve-access-token-with-unsupported-grant_type","title":"Test Case 24: Retrieve access token with unsupported grant_type","text":"<p>Test ID:: capif_security_api-24</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token with unsupported grant_type</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=not_valid</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>title=Bad Request</li> <li>detail='not_valid' is not one of \\['client_credentials', 'authorization_code'\\] - 'grant_type'</li> <li>status=400</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-25-retrieve-access-token-with-invalid-scope","title":"Test Case 25: Retrieve access token with invalid scope","text":"<p>Test ID:: capif_security_api-25</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token with complete invalid scope</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>scope=not-valid-scope</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error invalid_scope</li> <li>error_description=The first characters must be '3gpp'</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-26-retrieve-access-token-with-invalid-aefid-at-scope","title":"Test Case 26: Retrieve access token with invalid aefid at scope","text":"<p>Test ID:: capif_security_api-26</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token with invalid aefId at scope</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>scope=3gpp#1234:*service_1*</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error invalid_scope</li> <li>error_description=One of aef_id not belongs of your security context</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-27-retrieve-access-token-with-invalid-apiname-at-scope","title":"Test Case 27: Retrieve access token with invalid apiName at scope","text":"<p>Test ID:: capif_security_api-27</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token with invalid apiName at scope</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>scope=3gpp#{aef_id}:not-valid</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error invalid_scope</li> <li>error_description=One of the api names does not exist or is not associated with the aef id provided</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/","title":"Test Plan for API Status Feature","text":"<p>At this documentation you will have all information and related files and examples of test plan for this feature.</p>"},{"location":"testing/testplan/api_status/#test-case-1-publish-without-apistatus-feature-receive-eventdetails-with-serviceapidescription","title":"Test Case 1: Publish without apiStatus feature receive eventDetails with serviceAPIDescription","text":"<p>Test ID: api_status-1</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing apiIds and serviceAPIDescription at eventDetails, and the same when api is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report and apiStatusMonitoring active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains the apiStatus keys</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-2-publish-without-apistatus-feature-receive-eventdetails-without-serviceapidescription","title":"Test Case 2: Publish without apiStatus feature receive eventDetails without serviceAPIDescription","text":"<p>Test ID: api_status-2</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with only Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing apiIds at eventDetails, and the same when api is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report active at supported features (binary 0100-&gt; string 4)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains the apiStatus keys</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-3-publish-without-apistatus-feature-receive-eventdetails-without-eventdetails-apimonitoringstatus-active","title":"Test Case 3: Publish without apiStatus feature receive eventDetails without eventDetails (apiMonitoringStatus active)","text":"<p>Test ID: api_status-3</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with only apiStatusMonitoring active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1000-&gt; string 8)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1000 -&gt; string 8</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains the apiStatus keys</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-4-publish-without-apistatus-feature-receive-eventdetails-without-eventdetails","title":"Test Case 4: Publish without apiStatus feature receive eventDetails without eventDetails","text":"<p>Test ID: api_status-4</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report not active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 0000-&gt; string 0)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains the apiStatus keys</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-5-publish-with-apistatus-present-but-apistatusmonitoring-inactive-receive-bad-request","title":"Test Case 5: Publish with apiStatus present but apiStatusMonitoring inactive receive bad Request","text":"<p>Test ID: api_status-5</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report not active, receive Bad Request when api is published by a provider.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring and  Enhanced_event_report inactive at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 0</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed\".</li> <li>cause with message \"apiStatus can't be set if apiStatusMonitoring is inactive\".</li> </ul> </li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>No Events have been received.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-6-publish-with-apistatus-feature-active-receive-eventdetails-with-serviceapidescription","title":"Test Case 6: Publish with apiStatus feature active receive eventDetails with serviceAPIDescription","text":"<p>Test ID: api_status-6</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification including apiIds and serviceAPIDescriptions.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-7-publish-with-apistatus-active-feature-receive-eventdetails-without-serviceapidescription","title":"Test Case 7: Publish with apiStatus active feature receive eventDetails without serviceAPIDescription","text":"<p>Test ID: api_status-7</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring inactive and Enhanced_event_report active, receive event notification including only apiIds.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report active and apiStatusMonitoring inactive at supported features (binary 0100-&gt; string 4)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with only apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-8-publish-with-apistatus-active-feature-receive-eventdetails-without-eventdetails-with-apistatus-apimonitoringstatus-active","title":"Test Case 8: Publish with apiStatus active feature receive eventDetails without eventDetails with apiStatus (apiMonitoringStatus active)","text":"<p>Test ID: api_status-8</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring active and Enhanced_event_report inactive, receive event notification without eventDetails.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report inactive and apiStatusMonitoring active at supported features (binary 1000-&gt; string 8)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1000 -&gt; string 8</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-9-publish-with-apistatus-active-feature-receive-eventdetails-without-eventdetails","title":"Test Case 9: Publish with apiStatus active feature receive eventDetails without eventDetails","text":"<p>Test ID: api_status-9</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report inactive, receive event notification without eventDetails.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report and apiStatusMonitoring inactive at supported features (binary 0000-&gt; string 0)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-10-publish-with-apistatus-feature-active-no-aefid-active-receive-eventdetails-with-serviceapidescription-with-apistatus-empty-array","title":"Test Case 10: Publish with apiStatus feature active no aefId active receive eventDetails with serviceAPIDescription with apiStatus empty array","text":"<p>Test ID: api_status-10</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification SERVICE_API_UNAVAILABLE including apiIds and serviceAPIDescriptions when API is published containing apiStatus with empty array.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with empty aefIds array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with empty aefIds array. </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>Only one SERVICE_API_UNAVAILABLE event.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-11-publish-with-apistatus-not-present-but-apistatusmonitoring-feature-active-receive-eventdetails-with-serviceapidescription-without-apistatus","title":"Test Case 11: Publish with apiStatus not present but apiStatusMonitoring feature active receive eventDetails with serviceAPIDescription without apiStatus","text":"<p>Test ID: api_status-11</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE including apiIds and serviceAPIDescriptions when API is published wihtout apiStatus.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus not present. </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>First SERVICE_API_AVAILABLE event.</li> <li>Other with SERVICE_API_UNAVAILABLE event.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-12-update-published-api-without-apistatus-and-apistatusmonitoring-inactive","title":"Test Case 12: Update published API without apiStatus and apiStatusMonitoring inactive","text":"<p>Test ID: api_status-12</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to not present.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus Not present</li> <li>aipStatusMonitoring feature not active (binary 0 0000 0000 -&gt; string 0)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 0</li> <li>2 profiles, one with each aef.</li> <li>apiStatus not present.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Update published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of published API with eventDetail with apiIds and serviceAPIDescription.</li> <li>The other one must be SERVICE_API_UPDATE apiId published API with eventDetail containing serviceAPIDescription updated.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-13-update-published-api-with-apistatus-empty-and-apistatusmonitoring-inactive","title":"Test Case 13: Update published API with apiStatus empty and apiStatusMonitoring inactive","text":"<p>Test ID: api_status-13</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to empty aefIds array with ApiStatusMonitoring inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus present with empty aefIds array.</li> <li>apiStatusMonitoring feature not active (binary 0 0000 0000 -&gt; string 0)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 0</li> <li>2 profiles, one with each aef.</li> <li>apiStatus present with empty aefIds array.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li> <p>Response to Update request must accomplish:</p> <ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed\".</li> <li>cause with message \"apiStatus can't be set if apiStatusMonitoring is inactive\".</li> </ul> </li> </ol> </li> <li> <p>Mock Server received messages must accomplish:</p> <ol> <li>One Event have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-14-update-published-api-with-apistatus-empty-and-apistatusmonitoring-active","title":"Test Case 14: Update published API with apiStatus empty and apiStatusMonitoring active","text":"<p>Test ID: api_status-14</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, SERVICE_API_UPDATE and SERVICE_API_UNAVAILABLE after update apiStatus to empty aefIds array with ApiStatusMonitoring active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus present with empty aefIds array.</li> <li>apiStatusMonitoring feature active (binary 0 0010 0000 -&gt; string 20)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 20</li> <li>2 profiles, one with each aef.</li> <li>apiStatus present with empty aefIds array.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Update published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Event have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>One should be SERVICE_API_UPDATE.</li> <li>One should be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-15-update-published-api-with-apistatus-only-aef2-and-apistatusmonitoring-active","title":"Test Case 15: Update published API with apiStatus only aef2 and apiStatusMonitoring active","text":"<p>Test ID: api_status-15</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails and SERVICE_API_UPDATE after update apiStatus to aefId2 array with ApiStatusMonitoring active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus present with empty aefIds array.</li> <li>apiStatusMonitoring feature active (binary 0 0010 0000 -&gt; string 20)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 20</li> <li>2 profiles, one with each aef.</li> <li>apiStatus present with aefId2 in aefIds array.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Update published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Event have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>One should be SERVICE_API_UPDATE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-16-published-api-without-aefs-available-updated-to-one-aef-available","title":"Test Case 16: Published API without aefs available updated to one aef available","text":"<p>Test ID: api_status-16</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_UNAVAILABLE in mockserver when api is published with apiStatus empty by a provider containing eventDetails, SERVICE_API_UPDATE and SERVICE_API_AVAILABLE after update apiStatus to aefId2 array with ApiStatusMonitoring active, and SERVICE_API_UNAVAILABLE when API is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with empty aefIds array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus present with aefId2 in aefIds array.</li> <li>apiStatusMonitoring feature active (binary 0 0010 0000 -&gt; string 20)</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with empty aefIds array.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 20</li> <li>2 profiles, one with each aef.</li> <li>apiStatus present with aefId2 in aefIds array.</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Update published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Event have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_UNAVAILABLE aefIds array inside apiStatus empty.</li> <li>One should be SERVICE_API_UPDATE aefIds array inside apiStatus contains apfId2.</li> <li>One should be SERVICE_API_AVAILABLE aefIds array inside apiStatus contains apfId2.</li> <li>One should be SERVICE_API_UNAVAILABLE aefIds array inside apiStatus contains apfId2.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-17-patch-published-apistatusmonitoring-active-api-with-apistatus-only-aefid2","title":"Test Case 17: Patch published (apiStatusMonitoring active) API with apiStatus only aefId2","text":"<p>Test ID: api_status-17</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE after patch with apfId2 in apiStatus array.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Patch Published API:<ol> <li>apiStatus present with aefId2 in array.</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description patch and realted with aefId1 and aefId2.</li> <li>apiStatus present with aefId2.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Patch published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> <li>The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-18-patch-published-apistatusmonitoring-active-api-with-apistatus-aef1-and-aef2","title":"Test Case 18: Patch published (apiStatusMonitoring active) API with apiStatus aef1 and aef2","text":"<p>Test ID: api_status-18</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE after patch with apfId1 and apfId2 in apiStatus array.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Patch Published API:<ol> <li>apiStatus present with aefId1 and aefId2 in array.</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description patch and realted with aefId1 and aefId2.</li> <li>apiStatus present with aefId1 and aefId2.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Patch published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> <li>The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-19-patch-published-apistatusmonitoring-inactive-api-with-apistatus-aefid1-and-aefid2","title":"Test Case 19: Patch published (apiStatusMonitoring inactive) API with apiStatus aefId1 and aefId2","text":"<p>Test ID: api_status-19</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring inactive), containing eventDetails, and NO SERVICE_API_UPDATE after patch with apfId1 and apfId2 in apiStatus array, because apiStatusMonitoring in publish is inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0000 0000 -&gt; string 000)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Patch Published API:<ol> <li>apiStatus present with aefId1 and aefId2 in array.</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed\".</li> <li>cause with message \"apiStatus can't be set if apiStatusMonitoring is inactive\".</li> </ul> </li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>No Events have been received.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-20-patch-published-without-aefs-available-api-with-apistatus-only-aef2","title":"Test Case 20: Patch published without aefs available API with apiStatus only aef2","text":"<p>Test ID: api_status-20</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_UNAVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE and SERVICE_API_AVAILABLE after patch with apfId1 and apfId2 in apiStatus array, becasue change from unavailable to available and also serviceAPIDescription is updated.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with empty array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Patch Published API:<ol> <li>apiStatus present with aefId1 and aefId2 in array.</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus empty array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description patch and realted with aefId1 and aefId2.</li> <li>apiStatus present with aefId1 and aefId2.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Patch published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_UNAVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> <li>The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.</li> <li>Last one should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/common_operations/","title":"Common Operations","text":""},{"location":"testing/testplan/common_operations/#default-supported-features","title":"Default Supported Features","text":"<p>By default all required supported features on POST Request will be present and set to \"0\" unless test define it with other value. Also it can be set to NONE is we want to test supported features not present.</p>"},{"location":"testing/testplan/common_operations/#register-new-user","title":"Register new user","text":"<p>In order to use OpenCAPIF we must add a new user. This new user can onboard/register any Invokers or Providers.</p> <p>That new user must be created by administrator of Register Service and with the credentials shared by administrator, the new user can get the access_token by requesting it to Register service.</p> <p>The steps to register a new user at Register Service are:</p>"},{"location":"testing/testplan/common_operations/#admin-create-user","title":"Admin create User","text":"<p>1) Login as Admin to get access_token:</p> <ul> <li>Send POST to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/login<ul> <li>Include basic Auth Header with Admin credentials</li> </ul> </li> <li>Get access_token and refresh_token from response</li> </ul> <p></p> <p>2) Create User:</p> <ul> <li>Send POST to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/createUser<ul> <li>Include Admin access_token in Authorization Bearer Header</li> <li>Body user_registration_body</li> </ul> </li> </ul> <p></p>"},{"location":"testing/testplan/common_operations/#user-retrieve-access-token-and-other-information","title":"User Retrieve access token and other information","text":"<p>1) Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth<ul> <li>Include basic Auth Header with User credentials</li> </ul> </li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> <p></p>"},{"location":"testing/testplan/common_operations/#onboard-an-invoker","title":"Onboard an Invoker","text":""},{"location":"testing/testplan/common_operations/#steps-to-perform-operation","title":"Steps to perform operation","text":"<p>Preconditions: The administrator must have previously registered the User.</p> <ol> <li>Create public and private key at invoker</li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Onboard Invoker:     </p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers</li> <li>Reference Request Body: invoker onboarding body</li> <li>\"onboardingInformation\"-&gt;\"apiInvokerPublicKey\": must contain public key generated by Invoker.</li> <li>Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})</li> </ul> </li> </ol>"},{"location":"testing/testplan/common_operations/#checks-to-ensure-onboarding","title":"Checks to ensure onboarding","text":"<ol> <li> <p>Response to Get Auth:</p> <ol> <li>200 OK</li> <li>access_token returned.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/common_operations/#example-flow","title":"Example Flow","text":""},{"location":"testing/testplan/common_operations/#register-a-provider","title":"Register a Provider","text":""},{"location":"testing/testplan/common_operations/#steps-to-perform-operation_1","title":"Steps to Perform operation","text":"<ol> <li>Create public and private key at provider for provider itself and each function (apf, aef and amf)</li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})</li> <li>Store each cert in a file with according name.</li> </ul> </li> </ol>"},{"location":"testing/testplan/common_operations/#checks-to-ensure-provider-registration","title":"Checks to ensure provider registration","text":"<ol> <li> <p>Response to Register:</p> <ol> <li>201 Created</li> </ol> </li> <li> <p>Response to Get Auth:</p> <ol> <li>200 OK</li> <li>access_token returned.</li> </ol> </li> <li> <p>Register Provider at Provider Management:</p> <ol> <li>201 Created response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure.</li> <li>For each apiProvFuncs, we must check:<ol> <li>apiProvFuncId is set</li> <li>apiProvCert under regInfo is set properly</li> </ol> </li> <li>Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/common_operations/#example-flow_1","title":"Example Flow","text":""},{"location":"testing/testplan/vendor_extensibility/","title":"Test Plan for Vendor Extensibility Feature","text":"<p>At this documentation you will have all information and related files and examples of test plan for this feature.</p>"},{"location":"testing/testplan/vendor_extensibility/#test-case-1-published-api-with-vendor-extensibility","title":"Test Case 1: Published API with vendor extensibility","text":"<p>Test ID: vendor_extensibility-1</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag active and vendorSpecific, can be discovered by invoker with all vendorSpecific fields.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 1 0000 0000 -&gt; string 100)</li> <li>This API includes \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker<ol> <li>includes supported-features with VendSpecQueryParams active (binary 010 -&gt; string 2)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>include vendor specific service in root of service api description.</li> <li>include vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 100</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}&amp;supported-features=2</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the vendorSpecific keys</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-2-published-api-with-vendor-extensibility-and-discover-with-vendspecqueryparams-disabled","title":"Test Case 2: Published API with vendor extensibility and discover with VendSpecQueryParams disabled","text":"<p>Test ID: vendor_extensibility-2</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag active and vendorSpecific, but discovered filter only APIs without vendorSpecific parameter</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 1 0000 0000 -&gt; string 100)</li> <li>This API includes \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>include vendor specific service in root of service api description.</li> <li>include vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 100</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}&amp;supported-features=0</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-3-publish-api-with-vendorext-active-and-discover-without-supported-features-filter","title":"Test Case 3: Publish API with vendorExt active and discover without supported features filter","text":"<p>Test ID: vendor_extensibility-3</p> <p>Description:</p> <p>This test case will check if a published API with vendor extensions can be discovered by invoker but without verdorSpecific parameters if supported-features query parameter is not set properly</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 1 0000 0000 -&gt; string 100)</li> <li>This API includes \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>include vendor specific service in root of service api description.</li> <li>include vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 100</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check NOT contains the vendorSpecific keys</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-4-publish-api-with-vendorext-active-but-without-vendorspecifics","title":"Test Case 4: Publish API with vendorExt active but without vendorSpecifics","text":"<p>Test ID: vendor_extensibility-4</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag active and without vendorSpecific gets a 400 Bad Request, because is not allowed by definition.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 1 0000 0000 -&gt; string 100)</li> <li>This API NOT includes any \"Vendor Specific\" information.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>NOT INCLUDED vendor specific service in root of service api description.</li> <li>NOT INCLUDED vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 100</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"If and only if VendorExt feature is enabled, then vendor-specific fields should be defined\".</li> <li>cause with message \"Vendor extensibility misconfiguration\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-5-publish-api-with-vendorext-inactive-but-with-vendorspecifics","title":"Test Case 5: Publish API with vendorExt inactive but with vendorSpecifics","text":"<p>Test ID: vendor_extensibility-5</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag inactive and with vendorSpecific gets a 400 Bad Request, because is not allowed by definition.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 0 0000 0000 -&gt; string 000)</li> <li>This API includes any \"Vendor Specific\" information.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>include vendor specific service in root of service api description.</li> <li>include vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 000</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"If and only if VendorExt feature is enabled, then vendor-specific fields should be defined\".</li> <li>cause with message \"Vendor extensibility misconfiguration\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-6-published-api-without-vendor-extensibility-discover-with-vendspecqueryparams-enabled","title":"Test Case 6: Published API without vendor extensibility discover with VendSpecQueryParams enabled","text":"<p>Test ID: vendor_extensibility-6</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag inactive and vendorSpecific no presnet, but discovered filter only APIs with vendorSpecific parameter</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 0 0000 0000 -&gt; string 000)</li> <li>This API NOT includes \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker<ol> <li>Supported-features: binary 010 -&gt; string 2</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>NOT INCLUDED vendor specific service in root of service api description.</li> <li>NOT INCLUDED vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 00</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}&amp;supported-features=2</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must NOT include any \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-7-published-api-without-vendor-extensibility-and-discover-with-vendspecqueryparams-disabled","title":"Test Case 7: Published API without vendor extensibility and discover with vendSpecQueryParams disabled","text":"<p>Test ID: vendor_extensibility-7</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag inactive and no vendorSpecific, can be discovered by invoker filtering by vendSpecQueryParams.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 0 0000 0000 -&gt; string 0)</li> <li>This API NOT includes any \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker<ol> <li>includes supported-features with VendSpecQueryParams active (binary 000 -&gt; string 0)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>NOT INCLUDE vendor specific service in root of service api description.</li> <li>NOT INCLUDE vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 0</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}&amp;supported-features=0</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must NOT include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains any vendorSpecific keys</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-8-published-api-without-vendor-extensibility-and-discover-without-supported-features-query-parameter","title":"Test Case 8: Published API without vendor extensibility and discover without supported-features query parameter","text":"<p>Test ID: vendor_extensibility-8</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag inactive and no vendorSpecific, can be discovered by invoker without filtering by vendSpecQueryParams.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 0 0000 0000 -&gt; string 000)</li> <li>This API NOT includes any \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker<ol> <li>NOT includes supported-features</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>NOT INCLUDE vendor specific service in root of service api description.</li> <li>NOT INCLUDE vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 000</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must NOT include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains any vendorSpecific keys</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-9-publish-api-without-supportedfeatures","title":"Test Case 9: Publish API without supportedFeatures","text":"<p>Test ID: vendor_extensibility-9</p> <p>Description:</p> <p>This test case will check if a published API without supportedFeatures receives the 400 Bad Request, because is not allowed by definition.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF.</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>without supportedFeatures parameter.</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"supportedFeatures not present in request\".</li> <li>cause with message \"supportedFeatures not present\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"vendor-ext/vendor-ext/","title":"Vendor Extensibility","text":"<p>DOC:Work in Progress</p>"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduction","text":""},{"location":"#what-is-opencapif","title":"What is OpenCAPIF?","text":"<p>OpenCAPIF is an open source implementation of the CAPIF Core Function APIs plus the logic and additional services required to fulfill the 3GPP requirements and deliver the expected functionality.</p> <p>CAPIF is the \u201cCommon API Framework\u201d defined by 3GPP to manage the APIs exposed by 3GPP networks in their northbound interfaces.</p> <p>3GPP specifications for CAPIF defines three types of entities:</p> <ul> <li>API Providers, which are the entities exposing APIs (e.g., NEF)</li> <li>API Invokers, which are the entities that consume APIs (e.g., Applications), and</li> <li>the CAPIF Core Function, which manages the relationships between the other two.</li> </ul> <p></p> <p>The CAPIF Core Function is the cornerstone of the Common API Framework and provides the following capabilities:</p> <ul> <li>Authenticating the API Invoker based on its identity and other information;</li> <li>Supporting mutual authentication with the API Invoker;</li> <li>Providing authorization for the API Invoker prior to accessing the exposed APIs;</li> <li>Publishing, storing, and supporting the discovery of service APIs information;</li> <li>Controlling the service API access based on PLMN operator configured policies;</li> <li>Storing the logs for the service API invocations and providing the service API invocation logs to authorized entities;</li> <li>Charging based on the logs of the service API invocations;</li> <li>Monitoring the service API invocations;</li> <li>Onboarding a new API Invoker and offboarding an API Invoker;</li> <li>Storing policy configurations related to CAPIF and service APIs;</li> <li>Support for accessing the logs for auditing (e.g., detecting abuse); and</li> <li>Support for publishing and discovery of service APIs information among CAPIF Core Function (CAPIF interconnection).</li> </ul> <p>The following diagram shows how API Invokers and API Providers interact with the CAPIF Core Function to Register in CAPIF, Publish APIs, Discover APIs and Consume APIs. It is important to highlight that the CAPIF Core Function is not a classical API Gateway. The API consumption takes place directly between the API Invoker and the API Provider. Therefore, CAPIF does not impact API performance in API consumption between API Invokers and API Providers.</p> <p></p> <p>If you want to know more about OpenCAPIF check The story behind openCAPIF</p>"},{"location":"#repository-structure","title":"Repository structure","text":"<p>You can check the code at OpenCAPIF Repository</p> <pre><code>CAPIF_API_Services\n\u2514\u2500\u2500\u2500helm\n\u2514\u2500\u2500\u2500monitoring\n\u2514\u2500\u2500\u2500services\n\u2514\u2500\u2500\u2500tests\n\u2514\u2500\u2500\u2500tools\n    \u2514\u2500\u2500\u2500robot\n    \u2514\u2500\u2500\u2500open_api_script\n</code></pre> <ul> <li>helm: This folder contains helm files to deploy capif under k8s environment.</li> <li>monitoring: This folder contains grafana helm files to deploy capif under k8s environment.</li> <li>services: Services developed following CAPIF API specifications. Also, other complementary services (e.g., NGINX and JWTauth services for the authentication of API consuming entities).</li> <li>tools: Auxiliary tools. Robot Framework related code and OpenAPI scripts.</li> <li>test: Tests developed using Robot Framework.</li> </ul>"},{"location":"#capif_api_services","title":"CAPIF_API_Services","text":"<p>This repository has the python-flask Mockup servers created with openapi-generator related with CAPIF APIS defined here: Open API Descriptions of 3GPP 5G APIs</p>"},{"location":"#how-to-test-capif-apis","title":"How to test CAPIF APIs","text":"<p>The above APIs can be tested either with POSTMAN tool or running the developed tests with Robot Framework.</p>"},{"location":"#test-plan-documentation","title":"Test Plan Documentation","text":"<p>Complete documentation of tests is available here: Test Plan Directory</p>"},{"location":"#robot-framework","title":"Robot Framework","text":"<p>In order to ensure that modifications over CAPIF services still fulfills the required functionality, the Robot Framework Test Suite must be successfully run.</p> <p>The Robot Test Suite covers the requirements described in the test plan at Test Plan Directory folder.</p> <p>Please check the Testing with Robot Framework Section</p>"},{"location":"#using-postman","title":"Using PostMan","text":"<p>You can also test the CAPIF flow using the Postman tool. To do this, we have created a collection with some examples of CAPIF requests with everything necessary to carry them out.</p> <p>For more information on how to test the APIs with POSTMAN, go to this POSTMAN Section.</p>"},{"location":"#important-urls","title":"Important urls:","text":""},{"location":"#mongo-capifs-db-dashboard","title":"Mongo CAPIF's DB Dashboard","text":"<pre><code>http://localhost:8082/ (if accessed from localhost) \n\nor\n\nhttp://&lt;Mongo CAPIF Express Host IP&gt;:8082/ (if accessed from another host)\n</code></pre>"},{"location":"#mongo-registers-db-dashboard","title":"Mongo Register's DB Dashboard","text":"<pre><code>http://localhost:8083/ (if accessed from localhost) \n\nor\n\nhttp://&lt;Mongo Register Express Host IP&gt;:8083/ (if accessed from another host)\n</code></pre>"},{"location":"#faq-documentation","title":"FAQ Documentation","text":"<p>Frequently asked questions can be found here: FAQ Section</p>"},{"location":"FAQ/","title":"Frequently Asked Questions (FAQ)","text":""},{"location":"FAQ/#does-the-user-have-to-develop-the-3-elements-of-the-provider-aef-amf-and-apf","title":"Does the user have to develop the 3 elements of the provider (AEF, AMF and APF)?","text":"<p>No, you only have to make the request to the \"/onboarding\" endpoint. In it you must specify a CSR for the AEF, APF and AMF and you will receive the certificates for each of them in the response.</p>"},{"location":"FAQ/#there-is-one-party-that-publishes-the-api-and-another-that-exposes-it-what-is-the-difference","title":"There is one party that publishes the API and another that exposes it, what is the difference?","text":"<p>There are different services, the APF, intended for publishing the APIs, and the AEF, intended so that the invoker can call it. The APF is what connects to the Capif Core Function to publish the service and when the service is up, you need the AEF service so that invokers can connect to it.</p>"},{"location":"FAQ/#before-publishing-an-api-do-you-have-to-be-registered-in-capif","title":"Before publishing an API, do you have to be registered in CAPIF?","text":"<p>Yes, before publishing an API you must register using the POST /register endpoint.</p>"},{"location":"FAQ/#where-is-the-registration-done","title":"Where is the registration done?","text":"<p>Registration is done in a REST API outside of the CAPIF specification taht we have implemented.</p>"},{"location":"FAQ/#is-the-username-and-password-chosen-by-the-user-when-registering-or-is-it-assigned-when-requesting-registration-to-capif-public-instance","title":"Is the username and password chosen by the user when registering or is it assigned when requesting registration to CAPIF public instance?","text":"<p>When you make the request to the \"/endpoint\" of register, you will be returned a username and a password determined by CAPIF.</p>"},{"location":"FAQ/#what-is-a-csr","title":"What is a CSR?","text":"<p>A CSR is a Certificate Signing Request. It is a generated data block where the certificate is planned to be installed and contains key information such as public key, organization, and location, and is used to request a certificate from a certificate authority (CA). In CAPIF, 3 CSRs are necessary to register a provider, for AEF, APF and AMF.</p>"},{"location":"FAQ/#when-doing-the-register_provider-where-can-i-find-the-csrs-that-are-generated","title":"When doing the register_provider where can I find the CSRs that are generated?","text":"<p>When using the \"register_provider\" command, if you add the \"debug\" option, it shows you a json with the data used to register the provider. There we can find in the body a list of 3 elements corresponding to AEF, APF and AMF. IN each of them, the apiProbPubKey field corresponds to the CSR.</p>"},{"location":"FAQ/#how-to-use-the-example-client-capif_invoker_gui","title":"How to use the example client (CAPIF_INVOKER_GUI)?","text":"<p>First you have to make a \"./run.sh host:port\" indicating the address of the public CAPIF. Once the Docker containers are up, you have to do a \"./terminal_to_py_netapp.sh\" and then a \"python main.py\". At this point we will find ourselves in a console with some predefined commands to use the Client. If we press tab twice it will bring up the list of available commands.</p>"},{"location":"FAQ/#where-is-the-capif-public-instance-located","title":"Where is the CAPIF public instance located?","text":"<p>The CAPIF public instance can be found at the following URLs: - capif.mobilesandbox.cloud:37211 (HTTPS) - capif.mobilesandbox.cloud:37212 (HTTP)</p>"},{"location":"FAQ/#do-you-have-to-publish-3-apis-one-for-each-instance","title":"Do you have to publish 3 APIs? one for each instance?","text":"<p>No, you only have to publish a single API but each component is responsible for a specific service, whether publishing or exposing.</p>"},{"location":"FAQ/#once-the-api-is-published-is-it-always-active-or-do-you-have-to-republish-it-every-time-you-want-to-use-it","title":"Once the API is published, is it always active? Or do you have to republish it every time you want to use it?","text":"<p>It is better to unsubscribe the API every time you exit the application since otherwise it could be republished and it would be double.</p>"},{"location":"FAQ/#would-the-same-username-and-password-be-valid-for-different-invokers","title":"Would the same username and password be valid for different invokers?","text":"<p>Yes, a user can have multiple invokers at the same time, and as such, the username and password would be the same.</p>"},{"location":"FAQ/#what-is-the-notfication-destination-field-in-the-register_invoker-request","title":"What is the notfication destination field in the register_invoker request?","text":"<p>This is the callback URL used to notify events. CAPIF has an Event service to subscribe to that notifies actions such as a subscription to an API, a change in the state of an API...</p>"},{"location":"FAQ/#is-the-notification_destination-a-required-field-in-the-register_invoker","title":"Is the notification_destination a required field in the register_invoker","text":"<p>No, it is not mandatory, but if you do not enter it you will not receive any CAPIF events. For example, the APF may delete the API, you will not be notified that the API is no longer available.</p>"},{"location":"FAQ/#what-is-the-purpose-of-the-discover_service-function-in-the-invoker-client","title":"What is the purpose of the \"discover_service\" function in the invoker client?","text":"<p>The discover_service returns a json with all the services that exist exposed in CAPIF at that moment.</p>"},{"location":"FAQ/#what-is-the-purpose-of-the-get_security_auth-function-in-the-invoker-client","title":"What is the purpose of the \"get_security_auth\" function in the invoker client?","text":"<p>Sirve para pedir el token o para refrescarlo en caso de que haya caducado. You have to use that token to call the API from the invoker.</p>"},{"location":"FAQ/#what-is-the-purpose-of-the-register_security_context-function-in-the-invoker-client","title":"What is the purpose of the \"register_security_context\" function in the invoker client?","text":"<p>To consume the API it is necessary to have a Security Context registered with the data and the authentication method.</p>"},{"location":"FAQ/#is-a-user-the-same-as-an-exposer","title":"Is a user the same as an exposer?","text":"<p>No, a user registers in CAPIF and once done can have the role of invoker, provider or both.</p>"},{"location":"FAQ/#where-can-i-put-my-endpoint","title":"Where can I put my endpoint?","text":"<p>You have to set your endpoint when doing the \"publish_service\" functionality: <code>publish_service capif_ops/config_files/service_api_description_hello.json</code></p> <p>In the file \"service_api_description_hello.json\" you configure the service that is going to be exposed and by developing one to suit you, you expose your API.</p>"},{"location":"architecture/","title":"Architecture","text":""},{"location":"architecture/#architecture","title":"Architecture","text":"<p>The CAPIF architecture has three main components, Register Service, Vault and CCF, which are represented in the following image:</p> <p></p> <p>Each component is separated into different namespaces and all communications between them use Rest APIs.</p> <p>Apart from the communication between components, there are 2 other entities that can use them:</p> <ul> <li>Admin/superadmin: Responsible for managing users with the Register or carrying out special operations in the CCF.</li> <li>Users: They are those who want to use CAPIF, registering as a user in the Register and as Invoker or Provider in the CCF.</li> </ul>"},{"location":"architecture/#register-ns","title":"Register NS","text":"<p>This namespace belongs to the Register service, and we find 2 components:</p> <ul> <li>Register Service: It is responsible for managing all users who use CAPIF, in addition to providing the necessary information for its use.</li> <li>Register MONGO DATABASE: It is the Register database, in it we store all the information about registered users.</li> </ul>"},{"location":"architecture/#vault-ns","title":"Vault NS","text":"<p>This namespace belongs to Vault. </p> <p>This component is responsible for managing all CAPIF certificates, so other components such as the Register or the CCF communicate with it to create new certificates or request keys.</p>"},{"location":"architecture/#mon-ns","title":"Mon NS","text":"<p>This is the main namespace of CAPIF, since it contains all the CCF services in addition to other components:</p> <ul> <li>NGINX: Responsible for acting as a reverse proxy to distribute CAPIF requests to the different services, controlling whether or not they are authorized to access them.</li> <li>REDIS: Used for internal communication of services.</li> <li>CAPIF MONGO DATABASE: CAPIF database, where all information related to CAPIF services such as invokers, registered providers or published services is stored.</li> <li>HELPER: Service that simplifies integration with third parties such as external management portals.</li> </ul>"},{"location":"architecture/#new-architecture","title":"New Architecture","text":"<p>You can check the details of all these changes in the conversation on the OCF wiki.</p>"},{"location":"releasenotes/","title":"Release Notes","text":""},{"location":"releasenotes/#release-200","title":"Release 2.0.0","text":""},{"location":"releasenotes/#new-features","title":"New Features","text":""},{"location":"releasenotes/#upgrade-code-to-3gpp-capif-release-18","title":"Upgrade code to 3GPP CAPIF release 18","text":"<ul> <li>New endpoints included in new release 18 with new logic.</li> <li>Supported Features now are mandatory for all POST and PUT Requests as is described on TS 29.222. To keep in mind:<ul> <li>All POST/PUT request now must include Supported Features attribute, default can me set to <code>0</code> to keep all features inactive.</li> <li>On subscription to Event, if you need eventDetails information on notification you must activate Enhanced Event Report feature by setting properly the Supported Features flag.</li> </ul> </li> <li>Detailed information about models and endpoints upgrade on Upgrade Release 17 to 18 Wiki</li> </ul>"},{"location":"releasenotes/#vendor-extensibility","title":"Vendor Extensibility","text":"<ul> <li>Publish API:<ul> <li>On publishing a service API, SupportedFeatures is read and checked whether VendExt feature is enabled.</li> <li>When VendExt is enabled, vendor-specific fields are searched and stored in the db inside the ServiceAPIDescription object</li> <li>Vendor-specific fields are added according to the specific format:</li> </ul> </li> </ul> <pre><code>\n    \"vendorSpecific-urn:&lt;organization&gt;:&lt;field name&gt;\": {\n        \"key1\": \"value1\",\n        ...\n        \"keyN\": \"valueN\",\n    }\n\n    e.g. \n    \"vendorSpecific-urn:etsi:mec:capifext:transport-info\": {\n        \"name\": \"trasport1\",\n        \"description\": \"Transport Info 1\",\n        \"type\": \"REST_HTTP\",\n        \"protocol\": \"HTTP\",\n        \"version\": \"2\",\n        \"security\": {\n            \"grantTypes\": \"OAUTH2_CLIENT_CREDENTIALS\",\n            \"tokenEndpoint\": \"https://token-endpoint/\"\n        }\n    }\n\n    where organization is \"etsi:mec\" and field name \"capifext:transport-info\"\n\n</code></pre> <ul> <li>Discover API:<ul> <li>On Discover request SupportedFeatures is read and checked whether VendSpecQueryParams feature is enabled.</li> <li>When VendSpecQueryParams is enabled, vendor-specific query parameters are parsed</li> <li>Vendor specific query parameters are added on the GET request according to the following format:</li> </ul> </li> </ul> <pre><code>    https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}?\n           ...\n           vend-spec-&lt;query parameter name&gt;={\n              \"target\": &lt;string that contains the JSON pointer to the attribute in the resource representation&gt;, \n              \"value\": &lt;query parameter value&gt;\n    }\n\n    e.g. \n    https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}?\n           ...\n           vend-spec-type={\n              \"target\": \"/vendorSpecific-urn:etsi:mec:capifext:transport-info\", \n              \"value\": \"REST_HTTP\"\n    }\n</code></pre>"},{"location":"releasenotes/#api-status-feature","title":"Api Status feature","text":"<ul> <li>New logic to support API Status feature on Publish and Events Services.</li> <li>Events API:<ul> <li>Event internal notifications between services improved to accomplish specification.</li> <li>On event subscription SupportedFeatures is read and stored in db to accomplish specification.</li> <li>Also SupportedFeatures is checked before send event notification, in order to accomplish specification, sending eventDetails and related information according to enhanced_event_report and apiStatusMonitoring supported features activated.</li> </ul> </li> </ul>"},{"location":"releasenotes/#remote-scripts","title":"Remote Scripts","text":"<p>New scripts developed to help on remote deployment, configuration and testing. All this script are stored under helm/scripts in capif repository.</p> <p>variables.sh contains all configuration that will be used on remote operation. This file must be filled carefully before run remote scripts.</p> <ul> <li> <p>Deployment Scripts:</p> <ul> <li>install_vault.sh: Deploy Vault component from k8s cluster, only needed if vault is not previously deployed. If it\u2019s deployed you can setup vault token on variables.sh.</li> <li>install_monitoring.sh: Deploy monitoring on k8s cluster.</li> <li>install_capif.sh: Deploy OpenCAPIF on k8s cluster. It will be deployed on configured namespace with domain and hostnames configured under variables.sh.</li> <li>uninstall_vault.sh: Rollback Vault component from k8s cluster.</li> <li>uninstall_monitoring.sh: Rollback monitoring components from k8s cluster.</li> <li>uninstall_capif.sh: Rollback OpenCAPIF from k8s cluster.</li> </ul> </li> <li> <p>Manage remote users:</p> <ul> <li>create_remote_users.sh: This script create users setup by parameters on deployed OpenCAPIF. Those users are created by administrator.</li> <li>remove_remote_users.sh: This script removes user from deployed OpenCAPIF.</li> <li>remove_remote_users_by_prefix.sh:: This script removes users by prefix.</li> </ul> </li> <li> <p>Configuration of bastion machine, this simplify DNS fixed resolution:</p> <ul> <li>get_ingress.sh: This create a configuration for dns fixed resolution for ingress configured in namespace passed by parameters.</li> <li>set_ingress.sh: This scripts adds to /etc/hosts the fixed DNS resolution for ingress setup for  namespace passed by parameters.</li> </ul> </li> <li> <p>Execute robot tests over remote deployment.</p> <ul> <li>run_remote_capif_tests.sh: This scripts launch Robot Test docker image on current machine to reach deployed OpenCAPIF. Is useful to launch with \u201c--include smoke\u201d in order to ensure all is deployed properly.</li> </ul> </li> <li> <p>Just for testing, next scripts upload dummy information to deployed OpenCAPIF:</p> <ul> <li>populate_create_remote_dummy_users.sh: : Create Dummy providers and invokers, publish service APIs and creates security context for invokers.</li> <li>populate_remove_remote_dummy_users.sh: Remove dummy information created.</li> </ul> </li> </ul>"},{"location":"releasenotes/#new-tools-and-components","title":"New Tools and Components","text":""},{"location":"releasenotes/#sdk","title":"SDK","text":"<p>New Python SDK is developed in order to simplify the creation and operation of providers and invokers. Please check the SDK repository for more information, there you can get more information about how to use it and also how to contibute to it.</p>"},{"location":"releasenotes/#provider-and-invoker-example-clients","title":"Provider and Invoker example Clients","text":"<p>In order to help developers to create their own invokers/providers entities and try the behavior of the OpenCAPIF, we also add to the OCF respository two example with console interaction at example clients repository:</p> <ul> <li>invoker-cli</li> <li>provider-cli</li> </ul> <p>More information on README of each component.</p>"},{"location":"releasenotes/#testing","title":"Testing","text":"<ul> <li>New Vendor Extensibility test suite with 9 tests. Api Events Service</li> <li>New API Status feature test suite with 20 tests.</li> <li>Improved Events test suite with 8 new tests.</li> <li>Test plan updated with default supported features for all request set to \"0\" (all inactive by default) See common operations.</li> </ul>"},{"location":"releasenotes/#technical-debt-solved","title":"Technical Debt Solved","text":""},{"location":"releasenotes/#local-scripts","title":"Local Scripts","text":"<ul> <li>All scripts were reviewed and improved.</li> <li>New scripts to manage users on local deployment added:<ul> <li>create_users.sh: This script create users setup by parameters in local deployment.. Those users are created by administrator.</li> <li>remove_users.sh: This script removes user in local deployment.</li> </ul> </li> </ul>"},{"location":"releasenotes/#issues","title":"Issues","text":"<ul> <li>Solved issue to get ready REDIS on deployment: REDIS scheduled on start to allow receive notification since service is deployed.</li> <li>Solved problem removing service APIs published is provider register more than one APF.</li> <li>Solved Superadmin problem deleting service API published through helper service if provider is not present.</li> <li>Increased the overall stability, fixing some corner cases.</li> <li>Location headers now are filled in same way at all services that needs it.</li> <li>Security issues solved.</li> <li>Base docker images present on ETSI registry.</li> <li>Robot image uploaded to ETSI Registry.</li> </ul>"},{"location":"releasenotes/#documentation","title":"Documentation","text":"<ul> <li>Postman examples are updated, including flows.</li> <li>New tests are detailed descripted on Test plan section</li> <li>New Contribute section.</li> <li>New SDK Section</li> </ul>"},{"location":"releasenotes/#release-100","title":"Release 1.0.0","text":""},{"location":"releasenotes/#new-features_1","title":"New Features","text":""},{"location":"releasenotes/#registration-flow-improved","title":"Registration Flow improved","text":"<ul> <li>Eliminated access from CAPIF to the Register user database when onboarding is performed.</li> <li>Isolation between CCF and Register services, interaction now is only by HTTPS requested between Register, CCF and Vault.</li> <li>Eliminated the \"role\" in user creation.<ul> <li>Now a user can be an invoker or a provider at the same time</li> </ul> </li> <li>Administrator User:<ul> <li>New entity in charge of registering and managing users of the register service.</li> </ul> </li> <li>UUID to identify users.<ul> <li>When you create a user, a uuid is associated with it</li> <li>The uuid will be contained in the token requested by the user and will be used to relate invokers and providers with users.</li> </ul> </li> <li>Endpoints changed and created:<ul> <li>Administrator endpoints:<ul> <li>/createUser: /register endpoint changed to createUser. Used to register new users.</li> <li>/deleteUser: /remove endpoint changed to this. Used to delete users and all the entities they had created.</li> <li>/login: Allows administrator to log in to obtain the necessary tokens for their requests.</li> <li>/refresh: Retrieve new access token token.</li> <li>/getUsers: Returns the list with all registered users.</li> </ul> </li> <li>Customer User:<ul> <li>/getauth now also returns the urls needed to use CAPIF, used by customer.</li> </ul> </li> </ul> </li> <li> <p>Security improvements:</p> <ul> <li>/login uses basic auth with administrator credentials.</li> <li>/getauth uses basic auth with customer user credentials.</li> <li>Other requests use the administrator access token obtained from login.</li> </ul> </li> <li> <p>Current fields on user creation by administrator:</p> </li> </ul> <pre><code>required_fields = {\n    \"username\": str,\n    \"password\": str,\n    \"enterprise\": str,\n    \"country\": str,\n    \"email\": str,\n    \"purpose\": str\n}\n\noptional_fields = {\n    \"phone_number\": str,\n    \"company_web\": str,\n    \"description\": str\n}\n</code></pre> <ul> <li>Test plan has been updated with the new register flow. Please check OCF Registration Flow</li> <li>Video with explanation and demonstration of new register flow New Registration Demo</li> </ul>"},{"location":"releasenotes/#new-opencapif-architecture","title":"New OpenCAPIF architecture","text":"<ul> <li>New arquitecture with separated namespaces for Vault, CCF and Register components. Communication between them now are only allowed by using REST APIs.</li> <li> <p>New helper service inside CCF, it will simplify integration with third parties like external management portals.</p> </li> <li> <p>Helper endpoints:</p> <ul> <li>/getInvokers : Get the list of invokers from CAPIF</li> <li>/getProviders: Get the list of providers from CAPIF</li> <li>/getServices : Get the list of services published in CAPIF</li> <li>/getSecurityContext : Get the list of security contexts from CAPIF</li> <li>/getEvents : Get the list of events subscriptions from CAPIF</li> <li>/deleteEntities: Removes all entities registered by a user from the register</li> </ul> </li> <li> <p>Security in the helper</p> <ul> <li>To make requests to the helper you will need a superadmin certificate and password.</li> </ul> </li> </ul>"},{"location":"releasenotes/#events-api-upgrade","title":"Events API Upgrade","text":"<ul> <li>The event management at CCF is improved, EventNotification include Event Details with required information.</li> <li>Events updated:<ul> <li>SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE with apiIds</li> <li>SERVICE_API_UPDATE with serviceAPIDescriptions</li> <li>API_INVOKER_ONBOARDED, API_INVOKER_UPDATED, API_INVOKER_OFFBOARDED with apiInvokerIds.</li> </ul> </li> <li>Events Included:<ul> <li>SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE with invocationLogs</li> </ul> </li> <li>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.</li> <li>Test plan documentation includes the new event tests OCF Event test plan documentation.</li> </ul>"},{"location":"releasenotes/#inital-implementation-of-cicd","title":"Inital implementation of CI/CD","text":"<ul> <li>The inital implementation of CI/CD on gitlab was performed.</li> <li>Detailed information in the CICD Wiki.</li> <li>Implement initial CI/CD:<ul> <li>Description of the CI process.<ul> <li>In CI phase, created design, jobs and security checks when a branch is pushed.</li> <li>The CI has jobs as:<ul> <li>Linting code, unit test (if needed),</li> <li>Build and push artifacts (images) in Git OCI register</li> <li>Security checks,</li> <li>SCA, CVS, SAST</li> <li>The vulnerabilities are exposed in Merge Request panel to be solved.</li> </ul> </li> </ul> </li> <li>Description of the CD process:<ul> <li>Defined the environments to OCF.<ul> <li>Production env.</li> <li>Pre-production env.</li> <li>Validation env.</li> <li>Dev-1, dev-2\u2026 envs (ephemeral)</li> </ul> </li> <li>Defined the naming convention to OCF releases<ul> <li>Tag in prod: v0.0.1-release</li> <li>Tag non-prod: v0.0.1-rc</li> <li>Other tags: v0.0.1-test, v0.0.1-smt</li> </ul> </li> <li>Defined the jobs of CD<ul> <li>CD ensures the deployment in multiple envs. Therefore, the CD pipeline has deploy-ocf, delete-ocf (if needed) jobs</li> </ul> </li> </ul> </li> <li>ETSI HIVE Labs:<ul> <li>Designed, created and the Kuberntes OCF cluster is running to support OCFs deployments.</li> <li>Iterating with ETSI HIVE\u2019s support to solve computing issues.<ul> <li>CPU compatibilities with OCF services (MongoDB): Fixed</li> </ul> </li> </ul> </li> </ul> </li> </ul>"},{"location":"releasenotes/#documentation_1","title":"Documentation","text":""},{"location":"releasenotes/#improvements-on-documentation","title":"Improvements on documentation","text":"<ul> <li>Documentation stored in OCF Documentation Repository</li> <li>Continuous Integration included at repository for web documentation:<ul> <li>Develop version of documentation is automatically generated on each merge to develop branch.</li> <li>Tagged version from main create documentation with related tag as version.</li> </ul> </li> </ul>"},{"location":"releasenotes/#technical-debt-solved_1","title":"Technical Debt Solved","text":""},{"location":"releasenotes/#improved-testing-with-robot-in-order-to-cover","title":"Improved Testing with Robot in order to cover","text":"<ul> <li>Support of new Register flows.</li> <li>Allow different URLs for register, ccf and vault services.</li> <li>New Variables included to manage new architecture under test.</li> <li>Mock server developed to add the functionality of write tests involving notification from Service Under Test.</li> <li>Docker image improved generation and libraries upgraded to Robot Framework 7.</li> </ul>"},{"location":"releasenotes/#improved-security-on-db","title":"Improved security on DB","text":"<ul> <li>Credentials requested to access mongo databases.</li> <li>Credentials requested also by mongo-express.</li> </ul>"},{"location":"releasenotes/#scripts-upgraded","title":"Scripts upgraded","text":"<ul> <li>Docker compose version 2 used on them.</li> <li>New cleaning script developed.</li> <li>Scripts upgraded:<ul> <li>check_services_are_running.sh: Checks if all essential services (Vault, CCF and Register) are running.</li> <li>clean_capif_docker_services.sh: Shutdowns and removes all services essential services.</li> <li>clean_capif_temporary_files.sh: Removes temporaly files from local repository. </li> <li>run.sh: Launch Essential services locally using docker compose, also monitoring can be launched.</li> <li>run_capif_tests.sh: Launch Robot Framwork Tests.</li> <li>show_logs.sh: Show locally logs of Services running.</li> <li>run_mock_server.sh: Launch mock server locally on all interfaces. This axiliary server is only used by tagged mockserver tests on Robot Framework.</li> <li>clean_mock_server.sh: Remove mock server local deployment.</li> <li>deploy.sh: This script simplify the way to download capif repository.</li> </ul> </li> </ul>"},{"location":"releasenotes/#codebase-improvements","title":"Codebase Improvements","text":"<ul> <li>Documentation is now on splitted repository OCF Documentation Repository</li> <li>Test plan was moved to OCF Documentation Repository</li> <li>Obsolote data is removed.</li> <li>Repository Reorganization: Enhanced structure and maintainability with a better directory layout and clearer module separation.</li> <li>Code Quality Enhancements: Refactored code and fixed known issues</li> </ul>"},{"location":"releasenotes/#migration-to-gunicorn","title":"Migration to GUNICORN","text":"<ul> <li>Include production server on each microservice: Release 0 use Flask developer server, now we use GUNICORN.</li> </ul>"},{"location":"releasenotes/#release-00","title":"Release 0.0","text":"<p>The APIs included in Release 0.0 are:</p> <ul> <li>JWT Authentication APIs</li> <li>CAPIF Invoker Management API</li> <li>CAPIF Publish API</li> <li>CAPIF Discover API</li> <li>CAPIF Security API</li> <li>CAPIF Events API</li> <li>CAPIF Provider Management API</li> </ul> <p>This Release also includes a Robot Test Suite for all those services and a Postman Test Suite for simple testing.</p>"},{"location":"api-status/api-status/","title":"API Status Feature","text":"<p>The API Status feature, introduced in the 3GPP Common API Framework (CAPIF) technical specifications starting from Release 17, offers significant enhancements for operators and developers.</p> <p>This feature in OpenCAPIF provides real-time insights into the operational status of APIs, enabling stakeholders to quickly determine whether an API is functioning as expected. By improving API availability tracking, it helps users make more informed decisions about integration and usage.</p>"},{"location":"api-status/api-status/#how-it-works","title":"How it works","text":"<p>This new functionality is found in two CAPIF services, the publish service and the events service.</p>"},{"location":"api-status/api-status/#publish-service","title":"Publish service","text":"<p>The API Status in the publish service allows providers to show in which AEFs the published API is available.</p> <p>In order to use the API Status, it is necessary to have apiStatusMonitoring enabled in supportedFeatures when publishing an API. With this enabled, we can use the publication's apiStatus, which is composed of a list of AEF identifiers in which the API is available.</p> <p>This gives us 4 options for displaying the status of an API:</p> <ul> <li>If the apiStatus contains a list of aefIds, the api will be available on all aefs in the list.</li> <li>If the apiStatus contains an empty list of aefIds it means that the API is NOT available in any AEF.</li> <li>If the apiStatus is not used, it is understood that the api is available in all AEFs of the aefProfiles.</li> <li>If the apiStatusMonitoring was not supported, the api would be available in all AEFs in the aefProfiles.</li> </ul> <p>If apiStatusMonitoring is not supported and apiStatus is used to show API availability, a 400 error will be returned.</p>"},{"location":"api-status/api-status/#events-service","title":"Events service","text":"<p>The API Status within the Events service provides critical insights into the availability of subscribed services.</p> <p>Both API Invokers and Providers can subscribe to the SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE events to receive timely notifications about the operational status of an API, whether it becomes available or unavailable.</p> <p>Additionally, if the enhanced_event_report function is supported, the API description could be received as event details in the eventDetails field if apiStatusMonitoring is also enabled. This will make it easier for event subscribers to know if any changes have been made to the API, such as a change in API availability to other AEFs.</p>"},{"location":"contribute/documenting/","title":"Documenting","text":"<p>OpenCAPIF's documentation runs on MkDocs.</p>"},{"location":"contribute/documenting/#eligibility","title":"Eligibility","text":"<p>Documenting OpenCAPIF is limited to active contributors. So, if you:</p> <ol> <li>are an active member or participant;</li> <li>wish to contribute to it;</li> <li>you're ready!</li> </ol>"},{"location":"contribute/documenting/#system-and-structure","title":"System and Structure","text":"<p>MkDocs is a fast and simple static site generator that's geared towards building project documentation. Documentation source files are written in <code>Markdown</code>, and configured with a single <code>YAML</code> configuration file. Start by reading the introductory tutorial, then check the User Guide for more information.</p>"},{"location":"contribute/documenting/#how-it-works","title":"How it works?","text":"<p>There are 2 ways to upgrade documentation published on the OCF Documentation website:</p> <ul> <li>Push any change on develop branch will force update of the develop version on the OCF Documentation website;</li> <li>Create a tag, this will create a version with the tag name on the OCF Documentation website.</li> </ul>"},{"location":"contribute/documenting/#branches","title":"Branches","text":"<p>This documentation repository has 2 protected branches:</p> <ul> <li>main: this branch will store the information stable;</li> <li>develop: any change uploaded on this branch will upgrade develop version of the documentation published on the OCF Documentation website.</li> </ul>"},{"location":"contribute/documenting/#structure","title":"Structure","text":"<p>In the <code>mkdocs.yml</code> file you will find the navigation structure of the documentation, there you can sections with sub-sections.</p> <p>For example:</p> <pre><code>nav:\n  - Overview:\n      - Introduction: index.md\n  - Getting Started:\n      - How to Run: ./gettingstarted/howtorun.md\n  - Testing:\n      - Test Plan: ./testing/testplan/README.md\n      - Robot Framework: ./testing/robotframework/README.md\n      - Postman: ./testing/postman/README.md\n  - FAQ: ./FAQ.md\n</code></pre> <p>As you can see here, we have at the time of writing this page, 5 main sections:</p> <ul> <li>Overview: here we placed high-level information like version changelog, some initial scripts, ...;</li> <li>Getting Started: this section contains a simple way to start working with the project;</li> <li>Testing: detailed information of how to test OpenCAPIF, and test plan developed to ensure the code has all implemented functionality checked;</li> <li>Contribute: details about how to contribute code and docs;</li> <li>FAQ.</li> </ul>"},{"location":"contribute/documenting/#main-page","title":"Main Page","text":"<p>The page shown first is at doc/index.md. That page should be updated with the latest changes of OpenCAPIF, also including the version.</p>"},{"location":"contribute/documenting/#getting-started","title":"Getting Started","text":"<p>To contribute to OpenCAPIF's documentation, you need to follow these easy steps:</p> <p>1) Clone the Documentation repository with:</p> <pre><code>git clone https://labs.etsi.org/rep/ocf/documentation.git\n</code></pre> <p>2) Checkout the develop branch (incoming contributions are only accepted to the develop branch):</p> <pre><code>cd ./documentation\ngit checkout develop\n</code></pre> <p>3) Setup a local <code>mkdocs</code> server, using a virtual environment:</p> <pre><code>python3 -m venv venv\nsource venv/bin/activate\npython -m pip install mkdocs\npython -m pip install mkdocs-material\npython -m pip install mike\n</code></pre> <p>4) Wait for all downloads to finish and start the local <code>mkdocs</code> server:</p> <pre><code>mkdocs serve\n</code></pre> <p>5) Document! \ud83d\ude0a</p> <p>You should always make sure that the local MkDocs server terminal is not producing any <code>INFO</code>/<code>WARNING</code> messages regarding your contributions.</p>"},{"location":"contribute/documenting/#add-documentation-during-development","title":"Add Documentation During Development","text":"<p>To update the documentation properly during development, follow those additional steps:</p> <ol> <li>Create an issue on the documentation GitLab repository;</li> <li>Create a new branch with the develop branch as a source;</li> <li>Update the documentation and any relevant parts (ie: the <code>index.md</code> with new functionalities for the latest version or if a new test plan has been defined, remember to update the test plan documentation);</li> <li>Check if errors are not being produced by <code>mkdocs</code> locally;</li> <li>Commit and push changes to the new branch;</li> <li>Create a merge/pull request;</li> <li>Send the request for review and approval to at least one TSC Member.</li> </ol> <p>The documentation website supports branches, so your accepted changes will be reflected to the develop branch which becomes the release branch after each corresponding cycle.</p>"},{"location":"contribute/documenting/#release-a-new-version-of-the-documentation","title":"Release a New Version of the Documentation","text":"<p>When OpenCAPIF code repository is ready for a new release, we need to follow these steps (made by a TSC Member):</p> <ol> <li>Create a new branch with the released version, and merge it to develop;</li> <li>Create a Merge request from develop to main;</li> <li>When develop is merged to main, then we need to create a tag with the released version.</li> </ol>"},{"location":"example-clients/example-clients/","title":"Invoker and Provider CLIs","text":"<p>The Invoker and Provider CLIs serve as examples for developers and integrators looking to connect their Network Applications (NetApps) to CAPIF. </p> <p>They demonstrate, using Python, how to develop the necessary code for seamless communication with CAPIF, offering a practical guide to implementing the required API calls and interactions.</p>"},{"location":"example-clients/example-clients/#provider-cli","title":"Provider CLI","text":"<p>When using the Provider Console, users can create a provider entity that registers and publishes APIs to make them available within the CAPIF ecosystem. </p>"},{"location":"example-clients/example-clients/#commands","title":"Commands","text":"<p>With the provider console you can make the following requests to CAPIF:</p>"},{"location":"example-clients/example-clients/#provider_get_auth","title":"provider_get_auth","text":"<p>It is used to request the token and the ca_root certificate in order to perform the provider onboarding.</p> <pre><code>provider_get_auth &lt;username&gt; &lt;password&gt;\n</code></pre> <p>The token has an expiration time of 10 minutes, so if it expires you will have to request a new one.</p>"},{"location":"example-clients/example-clients/#register_provider","title":"register_provider","text":"<p>It is used to perform the onboarding of a provider.</p> <pre><code>register_provider &lt;name&gt;\n</code></pre> <p>This request uses the api_provider_domain.json file as a template and creates the certificates and keys for each of the entities that make up the Provider.</p>"},{"location":"example-clients/example-clients/#publish_service","title":"publish_service","text":"<p>It is used to publish an api as a provider.</p> <pre><code>publish_service &lt;service file route&gt;\n</code></pre> <p>For this request the demo_api_one.json file is used as a template.</p>"},{"location":"example-clients/example-clients/#get_services","title":"get_services","text":"<p>It is used to see what services the provider has published.</p> <pre><code>get_service \n</code></pre> <p>Returns a list of API names.</p>"},{"location":"example-clients/example-clients/#remove_service","title":"remove_service","text":"<p>It is used to unpublish an API.</p> <pre><code>remove_service &lt;api name&gt;\n</code></pre>"},{"location":"example-clients/example-clients/#remove_provider","title":"remove_provider","text":"<p>It is used to remove the provider.</p> <pre><code>remove_provider\n</code></pre> <p>Once the provider is deleted, you will not be able to publish or perform other operations that require certificates.</p>"},{"location":"example-clients/example-clients/#additionally","title":"Additionally","text":"<p>In addition, an API example is provided with which you can see how the token used by invokers to use the API published by the provider is decrypted and used.</p> <p>Once the API is published, the file can be executed with the next command:</p> <pre><code>python3 service_oauth.py\n</code></pre> <p>With this, the API will be raised to be able to make the calls.</p>"},{"location":"example-clients/example-clients/#invoker-cli","title":"Invoker CLI","text":"<p>When using the Invoker Console, users can create an Invoker entity that discover APIs to consume them with the CAPIF ecosystem. </p>"},{"location":"example-clients/example-clients/#commands_1","title":"Commands","text":"<p>With the Invoker console you can make the following requests to CAPIF:</p>"},{"location":"example-clients/example-clients/#get_auth","title":"get_auth","text":"<p>It is used to request the token and CA cert to be able to perform the onboarding.</p> <pre><code>get_auth &lt;username&gt; &lt;password&gt;\n</code></pre> <p>The token has an expiration time of 10 minutes, so if it expires you will have to request a new one.</p>"},{"location":"example-clients/example-clients/#register_invoker","title":"register_invoker","text":"<p>It is usedd to perform the onboarding of an Invoker,</p> <pre><code>register_invoker &lt;name&gt;\n</code></pre> <p>This request uses the invoker_details.json file as a template and creates the certificate and keys of the Invoker.</p>"},{"location":"example-clients/example-clients/#discover_service","title":"discover_service","text":"<p>It is used to discover the APIs published in CAPIF.</p> <pre><code>discover_service\n</code></pre> <p>Returns a list with the names of the services published in CAPIF.</p>"},{"location":"example-clients/example-clients/#register_security_context","title":"register_security_context","text":"<p>It is used to make the request to create a security context.</p> <pre><code>register_security_context &lt;api name&gt;\n</code></pre>"},{"location":"example-clients/example-clients/#get_security_auth","title":"get_security_auth","text":"<p>It is used to request the token necessary for the cunsumption of an API.</p> <pre><code>get_security_auth &lt;api name&gt;\n</code></pre>"},{"location":"example-clients/example-clients/#call_service","title":"call_service","text":"<p>It is used to consume the API</p> <pre><code>call_service &lt;api name&gt; &lt;method&gt; &lt;endpoint&gt; &lt;body route&gt;\n</code></pre> <p>For the request you must specify the name of the API you want to use, the method and endpoint you want to consume, and the path of the body to use.</p>"},{"location":"example-clients/example-clients/#remove_security_context","title":"remove_security_context","text":"<p>It is used to delete the created security context.</p> <pre><code>remove_security_context\n</code></pre>"},{"location":"example-clients/example-clients/#remove_invoker","title":"remove_invoker","text":"<p>It is used to delete the Invoker</p> <pre><code>remove_invoker\n</code></pre> <p>Once the invoker is deleted, you will not be able to discover or perform other operations that require the Invoker certificate.</p>"},{"location":"example-clients/example-clients/#other-commands","title":"Other commands","text":"<p>Apart from these operations, with the Invoker and Provider console you can also perform operations as administrator if you have a CAPIF instance locally.</p>"},{"location":"example-clients/example-clients/#admin-commands","title":"Admin commands","text":"<p>As an administrator, you can manage which users can use CAPIF with the following commands.</p>"},{"location":"example-clients/example-clients/#login_admin","title":"login_admin","text":"<p>It is used to login as an administrator and obtain the tokenes needed to perform admin operations</p> <pre><code>login_admin &lt;admin username&gt; &lt;admin password&gt;\n</code></pre>"},{"location":"example-clients/example-clients/#refresh_admin","title":"refresh_admin","text":"<p>It is used to refresh the tokenes of the admin user</p> <pre><code>refresh_admin\n</code></pre>"},{"location":"example-clients/example-clients/#register_user","title":"register_user","text":"<p>It is used to register a new user</p> <pre><code>register_user\n</code></pre> <p>uses the data in the credentials.properties file as the data to record.</p>"},{"location":"example-clients/example-clients/#remove_user","title":"remove_user","text":"<p>It is used to remove the created user.</p> <pre><code>remove_user\n</code></pre>"},{"location":"example-clients/example-clients/#tips","title":"Tips","text":"<p>This section explains some tips that may be useful for developers who are using consoles.</p>"},{"location":"example-clients/example-clients/#help-command","title":"help command","text":"<p>In both consoles you can use the help command to display a list of available commands.</p> <pre><code>help\n</code></pre>"},{"location":"example-clients/example-clients/#exit-command","title":"exit command","text":"<p>In both consoles you can use the exit command to exit the console.</p> <pre><code>exit\n</code></pre>"},{"location":"example-clients/example-clients/#delete-the-entities","title":"Delete the entities","text":"<p>It is recommended to delete all providers, Invokers and users created by the consoles if they are not going to be used anymore.</p>"},{"location":"example-clients/example-clients/#debug-mode","title":"debug mode","text":"<p>You can add the debug flag at the end of each command to show the complete inputs and outputs of each request and thus better understand what is being done.</p> <pre><code>register_invoker ocf debug\n</code></pre>"},{"location":"gettingstarted/howtorun/","title":"How to Run","text":"<ol> <li>Downloading the project <ol> <li>Create a folder to download the project</li> <li>Download the deployment script</li> <li>Run the deployment script</li> </ol> </li> <li>Run the services<ul> <li>Run all CAPIF Services locally with Docker images</li> <li>Run all CAPIF Services locally with Docker images and deploy monitoring stack</li> <li>Run each service using Docker</li> <li>Run each service using Python</li> </ul> </li> <li>Start your testing with OpenCAPIF</li> </ol> <p>Capif services are developed under services folder.</p>"},{"location":"gettingstarted/howtorun/#downloading-the-project","title":"Downloading the project","text":"<p>You can easily download CAPIF to run in local environment following next steps:</p>"},{"location":"gettingstarted/howtorun/#1-create-a-folder-to-download-the-project","title":"1. Create a folder to download the project","text":"<pre><code>mkdir OpenCAPIF\n\ncd OpenCAPIF\n</code></pre>"},{"location":"gettingstarted/howtorun/#2-download-the-deployment-script","title":"2. Download the deployment script","text":"<p>Download the deployment / environment preparation script (press here to directly download script):</p> <pre><code>wget https://labs.etsi.org/rep/ocf/capif/-/raw/staging/deploy.sh\n</code></pre> <p>Make it executable:</p> <pre><code>chmod +x deploy.sh\n</code></pre>"},{"location":"gettingstarted/howtorun/#3-run-the-deployment-script","title":"3. Run the deployment script","text":"<p>This script selects the branch for capif repository project to pull from.</p> <p>If you run the script without selecting a branch the the main branch is going to be selected.</p> <p>We recommend:</p> <ul> <li>main branch for the most stable experience and staging branch for an experience with the latest features (for staging branch installation, it is strongly advisable that you may as well follow the staging documentation)</li> </ul> <pre><code># ./deploy.sh [branch to fetch] [true or false (default) to install monitoring stack or not]\n\nsudo ./deploy.sh staging\n</code></pre> <p>We recommend running the deploy.sh script with root permissions! In other case, some directories may not be accessible by the project building tools and hinder the smooth installation.</p>"},{"location":"gettingstarted/howtorun/#run-all-capif-services-locally-with-docker-images","title":"Run All CAPIF Services locally with Docker images","text":"<p>To run using docker and docker compose, version 2.10 or higher, you must ensure you have those tools installed in your machine. Also to simplify the process, we have 3 scripts allowing docker images to deploy, check and cleanup.</p> <p>All these scripts are available under services directory.</p> <p>To run CAPIF APIs locally using docker and docker-compose you can use run.sh script:</p> <pre><code>./run.sh -h\n\nUsage: ./run.sh &lt;options&gt;\n       -c : Setup different hostname for capif\n       -m : Launch monitoring service\n       -h : show this help\n</code></pre> <p>This script builds and runs all services using docker images, including mongodb and nginx locally and in the background, and imports ca.crt to nginx. By default monitoring is not activated and Nginx is deployed use capifcore as a hostname. </p> <p>Some examples of use:</p> <pre><code># Default values, No monitoring and capifcore as CAPIF_HOSTNAME\n./run.sh\n\n# opencapif.etsi.org as CAPIF_HOSTNAME\n./run.sh -c opencapif.etsi.org\n\n# opencapif.etsi.org as CAPIF_HOSTNAME and monitoring activated\n./run.sh -c opencapif.etsi.org -m \n\n</code></pre> <p>If you want to check if all CAPIF services are running properly in a local machine after executing run.sh, you can use:</p> <pre><code>./check_services_are_running.sh\n</code></pre> <p>This shell script will return 0 if all services are running properly.</p> <p>When we need to stop all CAPIF services, we can use next bash script:</p> <pre><code>./clean_capif_docker_services.sh -a\n</code></pre> <p>NOTE: You can use different flags if you only want to stop some of them, please check the help using:</p> <pre><code>./clean_capif_docker_services.sh -h\n\nUsage: clean_capif_docker_services.sh &lt;options&gt;\n       -c : clean capif services\n       -v : clean vault service\n       -r : clean register service\n       -m : clean monitoring service\n       -a : clean all services\n       -h : show this help\n</code></pre> <p>This shell script will remove and clean all CAPIF services started previously with run.sh</p> <p>On the other hand you can check logs using show_logs.sh script, please check options:</p> <pre><code>./show_logs.sh\nYou must specify an option when running the script.\nUsage: ./show_logs.sh &lt;options&gt;\n       -c : Show capif services\n       -v : Show vault service\n       -r : Show register service\n       -m : Show monitoring service\n       -a : Show all services\n       -f : Follow log output\n       -h : Show this help\n</code></pre> <p>You can also use option -f in order to follow log output in real time</p>"},{"location":"gettingstarted/howtorun/#run-all-capif-services-locally-with-docker-images-and-deploy-monitoring-stack","title":"Run All CAPIF Services locally with Docker images and deploy monitoring stack","text":"<p>It is now possible to deploy a monitoring stack for CAPIF with Grafana, Prometheus, FluentBit, Loki, Cadvisor, Tempo and Opentelemetry.</p> <p>To deploy CAPIF together with the monitoring stack, it is only necessary to execute the following.</p> <pre><code>./run.sh -m true\n</code></pre> <p>After they have been built, the different panels can be consulted in Grafana at the url</p> <pre><code>http://localhost:3000\n</code></pre> <p>By default, the monitoring option is set to false. Once up, all data sources and dashboards are automatically provisioned.</p>"},{"location":"gettingstarted/howtorun/#run-each-service-using-docker","title":"Run each service using Docker","text":"<p>Also you can run OpenCAPIF service by service using docker:</p> <pre><code>cd &lt;Service&gt;\ndocker build -t capif_security .\ndocker run -p 8080:8080 capif_security\n</code></pre>"},{"location":"gettingstarted/howtorun/#run-each-service-using-python","title":"Run each service using Python","text":"<p>Run using python</p> <pre><code>cd &lt;Service&gt;\npip3 install -r requirements.txt\npython3 -m &lt;service&gt;\n</code></pre>"},{"location":"gettingstarted/howtorun/#start-your-testing-with-opencapif","title":"Start Your Testing with OpenCAPIF","text":"<p>Related with OpenCAPIF Testing, the following sections help you to understand testing implemented and how to run it by yourself:</p> <ul> <li>Test Plan Directory: Here you can find the complete test plan definition that are accomplish by all versions released of OpenCAPIF.</li> <li>Testing with Robot Framework: At this section you can find all information about how to run the test suite implemented using Robot Framework.</li> <li>Testing with Postman: Easy way to understand the complete basic OpenCAPIF flow, acting as invoker and provider.</li> </ul>"},{"location":"sdk/sdk/","title":"SDK","text":"<p>Check SDK repository for further information.</p>"},{"location":"testing/postman/","title":"Postman","text":"<p>This section shows how OpenCAPIF is used through requests made with Postman, from the creation of a provider together with the publication of an api, to the creation of an invoker and the consumption of the published api. Everything you need to run the test is in Postman-Test.zip.</p>"},{"location":"testing/postman/#requisites","title":"Requisites","text":"<ul> <li>We will need to have Node.js installed since we will use a small script to create the CSRs of the certificates.</li> <li>An instance of CAPIF (If it is not local, certain variables would have to be modified both in the Node.js script and in the Postman environment variables).</li> </ul>"},{"location":"testing/postman/#first-steps","title":"First steps","text":"<ol> <li>Install the Node dependencies package.json to run the script with:</li> </ol> <pre><code>npm i\n</code></pre> <ol> <li>Run the script.js with the following command:</li> </ol> <pre><code>node script.js\n</code></pre> <ol> <li>Import Postman collection and environment variables (CAPIF.postman_collection.json and CAPIF.postman_environment.json)</li> <li>Select CAPIF Environment before start testing.</li> <li>Install the necessary dependencies from requirements.txt using the following command:</li> </ol> <pre><code>pip install -r requirements.txt\n</code></pre>"},{"location":"testing/postman/#remote-capif","title":"Remote CAPIF","text":"<p>If the CAPIF is not local, the host and port of both the CAPIF and the register would have to be specified in the variables, and the CAPIF_HOSTNAME in the script, necessary to obtain the server certificate.</p> <p>Enviroments in Postman</p> <pre><code>CAPIF_HOSTNAME     capifcore\nCAPIF_PORT         8080\nREGISTER_HOSTNAME  register\nREGISTER_PORT      8084\n</code></pre> <p>Const in script.js</p> <pre><code>CAPIF_HOSTNAME    capifcore\n</code></pre>"},{"location":"testing/postman/#capif-flows","title":"CAPIF Flows","text":"<p>Once the first steps have been taken, we can now use Postman requests. These requests are numbered in the order that must be followed to obtain everything necessary from CAPIF.</p>"},{"location":"testing/postman/#creation-of-user-by-admin","title":"Creation of User by Admin","text":"<p>The first step would be for an administrator to create a user with which a provider and an invoker will be created. To do this, the admin must log in to obtain the token needed in admin requests.</p>"},{"location":"testing/postman/#01-login_admin","title":"01-Login_admin","text":""},{"location":"testing/postman/#02-creation-of-user","title":"02-Creation of User","text":""},{"location":"testing/postman/#publication-of-an-api","title":"Publication of an API","text":"<p>The next step is to register a provider using the user created by the administrator in order to publish an API.</p>"},{"location":"testing/postman/#03-getauth_provider","title":"03-getauth_provider","text":""},{"location":"testing/postman/#04-onboard_provider","title":"04-onboard_provider","text":""},{"location":"testing/postman/#05-publish_api","title":"05-publish_api","text":"<p>At this point we move on to using certificate authentication in CAPIF. In Postman it is necessary to add the certificates manually and using more than one certificate for the same host as we do in CAPIF complicates things. For this reason, we use the script to overwrite a certificate and a key when it is necessary to have a specific one.</p> <p>To configure go to settings in Postman and open the certificates section. </p> <ul> <li>Here, activate the CA certificates option and add the ca_cert.pem file found in the Responses folder.</li> <li>Adds a client certificate specifying the CAPIF host being used and the files client_cert.crt and client_key.key in the Responses folder.</li> </ul> <p>Once this is done, the node script will be in charge of changing the certificate that is necessary in each request.</p> <p></p> <p>Once the api is published, we can start it. In this case we have a test one created in python called hello_api.py that can be executed with the following command:</p> <pre><code>python3 hello_api.py\n</code></pre> <p>The API publication interface is set to localhost with port 8088, so the service must be set up locally. If you wanted to build it on another site, you would have to change the interface description in the body of publish_api.</p> <p>With this the provider part would be finished.</p>"},{"location":"testing/postman/#calling-the-api","title":"Calling the API","text":"<p>Finally, we will create an invoker with the user given by the administrator to be able to use the published api.</p>"},{"location":"testing/postman/#06-getauth_invoker","title":"06-getauth_invoker","text":""},{"location":"testing/postman/#07-onboard_invoker","title":"07-onboard_invoker","text":""},{"location":"testing/postman/#08-discover","title":"08-discover","text":"<p>At this point we move on to using certificate authentication in CAPIF. If you did not configure the provider's certificates, you would have to do it now.</p> <p></p>"},{"location":"testing/postman/#09-security_context","title":"09-security_context","text":""},{"location":"testing/postman/#10-get_token","title":"10-get_token","text":""},{"location":"testing/postman/#11-call_service","title":"11-call_service","text":"<p>With this, we would have made the API call and finished the flow.</p>"},{"location":"testing/postman/#other-requests","title":"Other requests","text":"<p>Other requests that we have added are the following:</p> <ul> <li>offboard_provider      Performs offboarding of the provider, thereby eliminating the published APIs.</li> <li>offboard_invoker       Offboards the invoker, also eliminating access to the APIs of that invoker.</li> <li>remove_user            Delete the user.</li> <li>refresh_admin_token    Return a new access token to the admin.</li> </ul>"},{"location":"testing/postman/#notes","title":"Notes","text":"<ul> <li>This process is designed to teach how requests are made in Postman and the flow that should be followed to publish and use an API.</li> <li>It is possible that if external CAPIFs are used (Public CAPIF) the test data may already be used or the API already registered.</li> <li>It is necessary to have the Node service running to make the certificate change for the requests, otherwise it will not work.</li> <li>We are working on adding more requests to the Postman collection.</li> <li>This collection is a testing guide and is recommended for testing purposes only.</li> </ul>"},{"location":"testing/robotframework/","title":"Robot Framework","text":""},{"location":"testing/robotframework/#steps-to-test","title":"Steps to Test","text":"<p>To run any test locally you will need docker and docker-compose installed in order run services and execute test plan. Steps will be:</p> <ul> <li> <p>Run All Services: See section Run All CAPIF Services</p> </li> <li> <p>Run desired tests: At this point we have 2 options:</p> </li> <li> <p>Using helper script: Script Test Execution</p> </li> <li>Build robot docker image and execute manually robot docker: Manual Build And Test Execution</li> </ul>"},{"location":"testing/robotframework/#script-test-execution","title":"Script Test Execution","text":"<p>This script will build robot docker image if it's need and execute tests selected by \"include\" option. Just go to service folder, execute and follow steps.</p> <pre><code>./run_capif_tests.sh --include &lt;TAG&gt;\n</code></pre> <p>Results will be stored at /results <p>Please check parameters (include) under Test Execution at Manual Build And Test Execution.</p>"},{"location":"testing/robotframework/#mock-server","title":"Mock Server","text":"<p>Some tests on Test Plans require mockserver. That mock server must be deployed and reachable by Robot Framework and CCF under test.</p> <p>To run Mock Server locally you can just execute the next script:</p> <pre><code>cd services\n./run_mock_server.sh\n\nor\n./run.sh -s\n</code></pre> <p>If you want to launch only tests that not needed mockserver, just add \"--exclude mockserver\" parameter to robot execution:</p> <pre><code>./run_capif_tests.sh --include &lt;TAG&gt; --exclude mockserver\n</code></pre> <p>After run tests the Mock Server can be removed from local deployment:</p> <pre><code>./clean_mock_server.sh\n\nor\n./clean_capif_docker_services.sh -s\n</code></pre>"},{"location":"testing/robotframework/#manual-build-and-test-execution","title":"Manual Build And Test Execution","text":"<ul> <li>Build Robot docker image:</li> </ul> <pre><code>cd tools/robot\ndocker build . -t capif-robot-test:latest\n</code></pre> <ul> <li>Tests Execution:</li> </ul> <p>Execute all tests locally:</p> <pre><code>&lt;PATH_TO_REPOSITORY&gt;=path in local machine to repository cloned.\n&lt;PATH_RESULT_FOLDER&gt;=path to a folder on local machine to store results of Robot Framework execution.\n&lt;CAPIF_HOSTNAME&gt;=Is the hostname set when run.sh is executed, by default it is capifcore.\n&lt;CAPIF_HTTP_PORT&gt;=This is the port to reach when robot framework want to reach CAPIF deployment using http, this should be set to port without TLS set on Nginx, 8080 by default.\n&lt;CAPIF_HTTPS_PORT&gt;=This is the port to be used when we want to use https connection, this should be set to port with TLS set on Nginx, 443 by default\n&lt;CAPIF_REGISTER&gt;=This is the hostname of register service deployed. By default it is register.\n&lt;CAPIF_REGISTER_PORT&gt;=This is the port to be used to reach register service deployed. By default it is 8084.\n&lt;CAPIF_VAULT&gt;=This is the hostname of vault service. By default it is vault.\n&lt;CAPIF_VAULT_PORT&gt;=This is the port to be used to reach vault service. By default it is 8200.\n&lt;CAPIF_VAULT_TOKEN&gt;=Vault token to be used on request through vault. By default it is \"read-ca-token\".\n&lt;MOCK_SERVER_URL&gt;=Setup Mock server url to be used in notifications at tests marked with mockserver tag. By default it is not set.\n\nTo execute all tests run :\ndocker run -ti --rm --network=\"host\" \\\n    --add-host host.docker.internal:host-gateway \\\n    --add-host vault:host-gateway \\\n    --add-host register:host-gateway \\\n    --add-host mock-server:host-gateway \\\n    -v &lt;PATH_TO_REPOSITORY&gt;/tests:/opt/robot-tests/tests \\\n    -v &lt;PATH_RESULT_FOLDER&gt;:/opt/robot-tests/results capif-robot-test:latest  \\\n    --variable CAPIF_HOSTNAME:$CAPIF_HOSTNAME \\\n    --variable CAPIF_HTTP_PORT:$CAPIF_HTTP_PORT \\\n    --variable CAPIF_HTTPS_PORT:$CAPIF_HTTPS_PORT \\\n    --variable CAPIF_REGISTER:$CAPIF_REGISTER \\\n    --variable CAPIF_REGISTER_PORT:$CAPIF_REGISTER_PORT \\\n    --variable CAPIF_VAULT:$CAPIF_VAULT \\\n    --variable CAPIF_VAULT_PORT:$CAPIF_VAULT_PORT \\\n    --variable CAPIF_VAULT_TOKEN:$CAPIF_VAULT_TOKEN \\\n    --variable MOCK_SERVER_URL:$MOCK_SERVER_URL \\\n    --include all\n</code></pre> <p>Execute specific tests locally:</p> <pre><code>To run more specific tests, for example, only one functionality:\n&lt;TAG&gt;=Select one from list:\n  \"capif_api_acl\",\n  \"capif_api_auditing_service\",\n  \"capif_api_discover_service\",\n  \"capif_api_events\",\n  \"capif_api_invoker_management\",\n  \"capif_api_logging_service\",\n  \"capif_api_provider_management\",\n  \"capif_api_publish_service\",\n  \"capif_security_api\n\nAnd Run:\ndocker run -ti --rm --network=\"host\" \\\n    --add-host host.docker.internal:host-gateway \\\n    --add-host vault:host-gateway \\\n    --add-host register:host-gateway \\\n    --add-host mock-server:host-gateway \\\n    -v &lt;PATH_TO_REPOSITORY&gt;/tests:/opt/robot-tests/tests \\\n    -v &lt;PATH_RESULT_FOLDER&gt;:/opt/robot-tests/results capif-robot-test:latest  \\\n    --variable CAPIF_HOSTNAME:$CAPIF_HOSTNAME \\\n    --variable CAPIF_HTTP_PORT:$CAPIF_HTTP_PORT \\\n    --variable CAPIF_HTTPS_PORT:$CAPIF_HTTPS_PORT \\\n    --variable CAPIF_REGISTER:$CAPIF_REGISTER \\\n    --variable CAPIF_REGISTER_PORT:$CAPIF_REGISTER_PORT \\\n    --variable CAPIF_VAULT:$CAPIF_VAULT \\\n    --variable CAPIF_VAULT_PORT:$CAPIF_VAULT_PORT \\\n    --variable CAPIF_VAULT_TOKEN:$CAPIF_VAULT_TOKEN \\\n    --variable MOCK_SERVER_URL:$MOCK_SERVER_URL \\\n    --include &lt;TAG&gt;\n</code></pre>"},{"location":"testing/robotframework/#test-result-review","title":"Test result review","text":"<p>In order to Review results after tests, you can check general report at /report.html or if you need more detailed information /log.html, example: <ul> <li> <p>Report: </p> </li> <li> <p>Detailed information: </p> </li> </ul> <p>NOTE: If you need more detail at Robot Framework Logs you can set log level option just adding to command --loglevel DEBUG</p>"},{"location":"testing/testplan/","title":"Test Plan Index","text":"<p>List of Common API Services implemented:</p> <ul> <li>Common Operations</li> <li>Api Invoker Management</li> <li>Api Provider Management</li> <li>Api Publish Service</li> <li>Api Discover Service</li> <li>Api Events Service</li> <li>Api Security Service</li> <li>Api Logging Service</li> <li>Api Auditing Service</li> <li>Api Access Control Policy</li> </ul>"},{"location":"testing/testplan/#features","title":"Features","text":"<ul> <li>Vendor Extensibility</li> <li>Api Status</li> </ul>"},{"location":"testing/testplan/api_access_control_policy/","title":"Test Plan for CAPIF Api Access Control Policy","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_access_control_policy/#test-case-1-retrieve-acl","title":"Test Case 1: Retrieve ACL","text":"<p>Test ID: capif_api_acl-1</p> <p>Description:</p> <p>This test case will check that an API Provider can retrieve ACL from CAPIF</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-2-retrieve-acl-with-2-service-apis-published","title":"Test Case 2: Retrieve ACL with 2 Service APIs published","text":"<p>Test ID: capif_api_acl-2</p> <p>Description:</p> <p>This test case will check that an API Provider can retrieve ACL from CAPIF for 2 different serviceApis published.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had two Service API Published on CAPIF</li> <li>API Invoker had a Security Context for both Service APIs published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1 and service_2</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information for service_1.</li> <li>Provider Get ACL information for service_2.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker for both published APIs</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL for serviceApiId1</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId1}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL for serviceApiId2</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId2}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-3-retrieve-acl-with-security-context-created-by-two-different-invokers","title":"Test Case 3: Retrieve ACL with security context created by two different Invokers","text":"<p>Test ID: capif_api_acl-3</p> <p>Description:</p> <p>This test case will check that an API Provider can retrieve ACL from CAPIF containing 2 objects.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>Two API Invokers had a Security Context for same Service API published by provider.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1 and service_2</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker for both published APIs</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Repeat previous 3 steps in order to have a new Invoker.</p> </li> <li> <p>Provider Retrieve ACL for serviceApiId</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId1}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain two objects.</li> <li>One object must match with apiInvokerId1 and the other one with apiInvokerId2 an registered previously.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-4-retrieve-acl-filtered-by-api-invoker-id","title":"Test Case 4: Retrieve ACL filtered by api-invoker-id","text":"<p>Test ID: capif_api_acl-4</p> <p>Description:</p> <p>This test case will check that an API Provider can retrieve ACL filtering by apiInvokerId from CAPIF containing 1 objects.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>Two API Invokers had a Security Context for same Service API published by provider.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1 and service_2</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information with query parameter indicating first api-invoker-id.</li> <li>Provider Get ACL information with query parameter indicating second api-invoker-id.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker for both published APIs</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Repeat previous 3 steps in order to have a new Invoker.</p> </li> <li> <p>Provider Retrieve ACL for serviceApiId1</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={apiInvokerId1}</li> <li>Use serviceApiId, aefId and apiInvokerId1</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL for serviceApiId2</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={apiInvokerId2}</li> <li>Use serviceApiId, aefId and apiInvokerId2</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>ACL Response:</p> <ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain one objects.</li> <li>Object must match with apiInvokerId1.</li> </ol> </li> </ol> </li> <li> <p>ACL Response:</p> <ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain one objects.</li> <li>Object must match with apiInvokerId2.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-5-retrieve-acl-filtered-by-supported-features","title":"Test Case 5: Retrieve ACL filtered by supported-features","text":"<p>Test ID: capif_api_acl-5</p> <p>Description:</p> <p>CURRENTLY NOT SUPPORTED FEATURE</p> <p>This test case will check that an API Provider can retrieve ACL filtering by supportedFeatures from CAPIF containing 1 objects.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>Two API Invokers had a Security Context for same Service API published by provider.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1 and service_2</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information with query parameter indicating first supported-features.</li> <li>Provider Get ACL information with query parameter indicating second supported-features.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker for both published APIs</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Repeat previous 3 steps in order to have a new Invoker.</p> </li> <li> <p>Provider Retrieve ACL for serviceApiId</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId1}?aef-id=${aef_id}&amp;supported-features={apiInvokerId1}</li> <li>Use serviceApiId, aefId and apiInvokerId1</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL for serviceApiId</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId1}?aef-id=${aef_id}&amp;supported-features={apiInvokerId2}</li> <li>Use serviceApiId, aefId and apiInvokerId2</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>ACL Response:</p> <ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain one objects.</li> <li>Object must match with supportedFeatures1.</li> </ol> </li> </ol> </li> <li> <p>ACL Response:</p> <ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>Contain one objects.</li> <li>Object must match with supportedFeatures1.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-6-retrieve-acl-with-aef-id-not-valid","title":"Test Case 6: Retrieve ACL with aef-id not valid","text":"<p>Test ID: capif_api_acl-6</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF if aef-id is not valid</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${AEF_ID_NOT_VALID}</li> <li>Use serviceApiId and AEF_ID_NOT_VALID</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {service_api_id}, aef_id: {aef_id}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-7-retrieve-acl-with-service-id-not-valid","title":"Test Case 7: Retrieve ACL with service-id not valid","text":"<p>Test ID: capif_api_acl-7</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF if service-api-id is not valid</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${NOT_VALID_SERVICE_API_ID}?aef-id=${aef_id}</li> <li>Use NOT_VALID_SERVICE_API_ID and aef_id</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {service_api_id}, aef_id: {aef_id}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-8-retrieve-acl-with-service-api-id-and-aef-id-not-valid","title":"Test Case 8: Retrieve ACL with service-api-id and aef-id not valid","text":"<p>Test ID: capif_api_acl-8</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF if service-api-id and aef-id are not valid</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${NOT_VALID_SERVICE_API_ID}?aef-id=${AEF_ID_NOT_VALID}</li> <li>Use NOT_VALID_SERVICE_API_ID and aef_id</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {NOT_VALID_SERVICE_API_ID}, aef_id: {AEF_ID_NOT_VALID}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-9-retrieve-acl-without-securitycontext-created-previously-by-invoker","title":"Test Case 9: Retrieve ACL without SecurityContext created previously by Invoker","text":"<p>Test ID: capif_api_acl-9</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL if no invoker had requested Security Context to CAPIF</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker created but no Security Context for Service API published had been requested.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li> <p>Discover published APIs</p> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {NOT_VALID_SERVICE_API_ID}, aef_id: {AEF_ID_NOT_VALID}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-10-retrieve-acl-filtered-by-api-invoker-id-not-present","title":"Test Case 10: Retrieve ACL filtered by api-invoker-id not present","text":"<p>Test ID: capif_api_acl-10</p> <p>Description:</p> <p>This test case will check that an API Provider get not found response if filter by not valid api-invoker-id doesn't match any registered ACL.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={NOT_VALID_API_INVOKER_ID}</li> <li>Use serviceApiId, aefId and NOT_VALID_API_INVOKER_ID</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {NOT_VALID_SERVICE_API_ID}, aef_id: {AEF_ID_NOT_VALID}, invoker: {api_invoker_id} and supportedFeatures: {supported_features}\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-11-retrieve-acl-with-apf-certificate","title":"Test Case 11: Retrieve ACL with APF Certificate","text":"<p>Test ID: capif_api_acl-11</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF using APF Certificate</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use APF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-12-retrieve-acl-with-amf-certificate","title":"Test Case 12: Retrieve ACL with AMF Certificate","text":"<p>Test ID: capif_api_acl-12</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF using AMF Certificate</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AMF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-13-retrieve-acl-with-invoker-certificate","title":"Test Case 13: Retrieve ACL with Invoker Certificate","text":"<p>Test ID: capif_api_acl-13</p> <p>Description:</p> <p>This test case will check that an API Provider can't retrieve ACL from CAPIF using Invoker Certificate</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_access_control_policy/#test-case-14-no-acl-for-invoker-after-be-removed","title":"Test Case 14: No ACL for invoker after be removed","text":"<p>Test ID: capif_api_acl-14</p> <p>Description:</p> <p>This test case will check that ACLs are removed after invoker is removed.</p> <p>Pre-Conditions:</p> <ul> <li>API Provider had a Service API Published on CAPIF</li> <li>API Invoker had a Security Context for Service API published and ACL is present</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Provider at CCF.</li> <li>Publish a provider API with name service_1</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Provider Get ACL information of invoker.</li> <li>Remove Invoker from CAPIF.</li> <li>Provider Get ACL information of invoker.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform Invoker Onboarding store apiInvokerId</p> </li> <li>Discover published APIs</li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Provider Retrieve ACL</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={api-invoker-id}</li> <li>Use serviceApiId, aefId and api-invoker-id</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li>Remove Invoker from CAPIF</li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}&amp;api-invoker-id={api-invoker-id}</li> <li>Use serviceApiId, aefId and api-invoker-id</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:   1. ACL Response:      1. 200 OK Response.      2. body returned must accomplish AccessControlPolicyList data structure.      3. apiInvokerPolicies must:         1. contain only one object.         2. apiInvokerId must match apiInvokerId registered previously.</p> <ol> <li>ACL Response:<ol> <li>404 Not Found Response.</li> <li>body returned must accomplish Problem Details data structure.</li> <li>apiInvokerPolicies must:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"No ACLs found for the requested service: {NOT_VALID_SERVICE_API_ID}, aef_id: {AEF_ID_NOT_VALID}, invoker: None and supportedFeatures: None\".</li> <li>cause with message \"Wrong id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/","title":"Test Plan for CAPIF Api Auditing Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_auditing_service/#test-case-1-get-capif-log-entry","title":"Test Case 1: Get CAPIF Log Entry.","text":"<p>Test ID: capif_api_auditing-1</p> <p>Description:</p> <p>This test case will check that a CAPIF AMF can get log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> <li>Log Entry exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry   4. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Create Log Entry:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs?aef-id={aefId}&amp;api-invoker-id={api-invoker-id}</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>200 OK</li> <li>Response Body must follow InvocationLog data structure with:<ul> <li>aefId</li> <li>apiInvokerId</li> <li>logs</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/#test-case-2-get-capif-log-entry-with-no-log-entry-in-capif","title":"Test Case 2: Get CAPIF Log Entry With no Log entry in CAPIF.","text":"<p>Test ID: capif_api_auditing-2</p> <p>Description:</p> <p>This test case will check that a CAPIF AEF can create log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs?aef-id={aefId}&amp;api-invoker-id={api-invoker-id}</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found Log Entry in CAPIF\".</li> <li>cause with message \"Not Exist Logs with the filters applied\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/#test-case-3-get-capif-log-entry-without-aef-id-and-api-invoker-id","title":"Test Case 3: Get CAPIF Log Entry without aef-id and api-invoker-id.","text":"<p>Test ID: capif_api_auditing-3</p> <p>Description:</p> <p>This test case will check that a CAPIF AEF can create log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is no pre-authorised (has no valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> <li>Log Entry exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry   4. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Create Log Entry:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"aef_id and api_invoker_id parameters are mandatory\".</li> <li>cause with message \"Mandatory parameters missing\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/#test-case-4-get-capif-log-entry-with-filtter-api-version","title":"Test Case 4: Get CAPIF Log Entry with filtter api-version.","text":"<p>Test ID: capif_api_auditing-4</p> <p>Description:</p> <p>This test case will check that a CAPIF AMF can get log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> <li>Log Entry exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry   4. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Create Log Entry:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs?aef-id={aefId}&amp;api-invoker-id={api-invoker-id}&amp;api-version={v1}</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>200 OK</li> <li>Response Body must follow InvocationLog data structure with:<ul> <li>aefId</li> <li>apiInvokerId</li> <li>logs</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_auditing_service/#test-case-5-get-capif-log-entry-with-filter-api-version-but-not-exist-in-log-entry","title":"Test Case 5: Get CAPIF Log Entry with filter api-version but not exist in log entry.","text":"<p>Test ID: capif_api_auditing-4</p> <p>Description:</p> <p>This test case will check that a CAPIF AMF can get log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid AMF cert from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> <li>Log Entry exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry   4. Get Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding, invoker onboarding </p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Create Log Entry:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Get Log:</p> <ol> <li>Send GET to https://{CAPIF_HOSTNAME}/logs/v1/apiInvocationLogs?aef-id={aefId}&amp;api-invoker-id={api-invoker-id}&amp;api-version={v58}</li> <li>Use AMF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>detail with message \"Parameters do not match any log entry\"</li> <li>cause with message \"No logs found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/","title":"Test Plan for CAPIF Discover Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_discover_service/#test-case-1-discover-published-service-apis-by-authorised-api-invoker","title":"Test Case 1: Discover Published service APIs by Authorised API Invoker","text":"<p>Test ID: capif_api_discover_service-1</p> <p>Description:</p> <p>This test case will check if Network App (Invoker) can discover published service APIs.</p> <p>Pre-Conditions:</p> <ul> <li>Service APIs are published.</li> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-2-discover-published-service-apis-by-non-authorised-api-invoker","title":"Test Case 2: Discover Published service APIs by Non Authorised API Invoker","text":"<p>Test ID: capif_api_discover_service-2</p> <p>Description:</p> <p>This test case will check that an API Publisher can't discover published APIs because is not authorized.</p> <p>Pre-Conditions:</p> <ul> <li>Service APIs are published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by no invoker entity</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs by no invoker entity:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use not Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By no invoker entity:</p> <ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"User not authorized\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-3-discover-published-service-apis-by-not-registered-api-invoker","title":"Test Case 3: Discover Published service APIs by not registered API Invoker","text":"<p>Test ID: capif_api_discover_service-3</p> <p>Description:</p> <p>This test case will check that a not registered invoker is forbidden to discover published APIs.</p> <p>Pre-Conditions:</p> <ul> <li>Service APIs are published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Publisher</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs with not valid apiInvoker:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={INVOKER_NOT_REGISTERED}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker does not exist\".</li> <li>cause with message \"API Invoker id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-4-discover-published-service-apis-by-registered-api-invoker-with-1-result-filtered","title":"Test Case 4: Discover Published service APIs by registered API Invoker with 1 result filtered","text":"<p>Test ID: capif_api_discover_service-4</p> <p>Description:</p> <p>This test case will check if Network App (Invoker) can discover published service APIs.</p> <p>Pre-Conditions:</p> <ul> <li>At least 2 Service APIs are published.</li> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Discover filtered by api-name service_1 Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs filtering by api-name:<ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;api-name=service_1**</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> <li>filter by api-name service_1</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains previously registered Service APIs published.</li> </ul> </li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains only Service API published with api-name service_1</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-5-discover-published-service-apis-by-registered-api-invoker-filtered-with-no-match","title":"Test Case 5: Discover Published service APIs by registered API Invoker filtered with no match","text":"<p>Test ID: capif_api_discover_service-5</p> <p>Description:</p> <p>This test case will check if Network App (Invoker) can discover published service APIs.</p> <p>Pre-Conditions:</p> <ul> <li>At least 2 Service APIs are published.</li> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Discover filtered by api-name not published Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs filtering by api-name not published:<ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;api-name=NOT_VALID_NAME</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> <li>filter by api-name NOT_VALID_NAME</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains previously registered Service APIs published.</li> </ul> </li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_discover_service/#test-case-6-discover-published-service-apis-by-registered-api-invoker-not-filtered","title":"Test Case 6: Discover Published service APIs by registered API Invoker not filtered","text":"<p>Test ID: capif_api_discover_service-6</p> <p>Description:</p> <p>This test case will check if Network App (Invoker) can discover published service APIs.</p> <p>Pre-Conditions:</p> <ul> <li>2 Service APIs are published.</li> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Discover without filter by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs not filtered:<ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the 2 previously registered Service APIs published.</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/","title":"Test Plan for CAPIF Api Events Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_events_service/#test-case-1-creates-a-new-individual-capif-event-subscription","title":"Test Case 1: Creates a new individual CAPIF Event Subscription.","text":"<p>Test ID: capif_api_events-1</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) can Subscribe to Events</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Event Subscriptions are stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-2-creates-a-new-individual-capif-event-subscription-with-invalid-subscriberid","title":"Test Case 2: Creates a new individual CAPIF Event Subscription with Invalid SubscriberId","text":"<p>Test ID: capif_api_events-2</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) cannot Subscribe to Events without valid SubcriberId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is not pre-authorised (has invalid InvokerId or apfId)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{SUBSCRIBER_NOT_REGISTERED}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker or APF or AEF or AMF Not found\".</li> <li>cause with message \"Subscriber Not Found\".</li> </ul> </li> </ol> </li> <li> <p>Event Subscriptions are not stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-3-deletes-an-individual-capif-event-subscription","title":"Test Case 3: Deletes an individual CAPIF Event Subscription","text":"<p>Test ID: capif_api_events-3</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) can Delete an Event Subscription</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Remove Event Subscription</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Remove Event Subscription:</p> <ol> <li>Send DELETE to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Event Subscriptions are stored in CAPIF Database</p> </li> <li> <p>Remove Event Subscription:</p> <ol> <li>204 No Content</li> </ol> </li> <li> <p>Event Subscription is not present at CAPIF Database.</p> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-4-deletes-an-individual-capif-event-subscription-with-invalid-subscriberid","title":"Test Case 4: Deletes an individual CAPIF Event Subscription with invalid SubscriberId","text":"<p>Test ID: capif_api_events-4</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) cannot Delete to Events without valid SubcriberId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId).</li> <li>CAPIF subscriber is subscribed to Events.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> <li>Retrieve Location Header with subscriptionId.</li> <li>Remove Event Subscribed with not valid Subscriber.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Remove Event Subcription with not valid subscriber:</p> <ol> <li>Send DELETE to https://{CAPIF_HOSTNAME}/capif-events/v1/{SUBSCRIBER_ID_NOT_VALID}/subscriptions/{subcriptionId}</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Event Subscriptions are stored in CAPIF Database</p> </li> <li> <p>Error Response Body must accomplish with ProblemDetails data structure with:</p> <ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker or APF or AEF or AMF Not found\".</li> <li>cause with message \"Subscriber Not Found\".</li> </ul> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-5-deletes-an-individual-capif-event-subscription-with-invalid-subscriptionid","title":"Test Case 5: Deletes an individual CAPIF Event Subscription with invalid SubscriptionId","text":"<p>Test ID: capif_api_events-5</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (Invoker or Publisher) cannot Delete an Event Subscription without valid SubscriptionId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has invalid InvokerId or apfId).</li> <li>CAPIF subscriber is subscribed to Events.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events</li> <li>Retrieve Location Header with subscriptionId.</li> <li>Remove Event Subscribed with not valid Subscriber.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body</li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Remove Event Subcription with not valid subscriber:</p> <ol> <li>Send DELETE to to https://{CAPIF_HOSTNAME}/capif-events/v1/{subcriberId}/subscriptions/{SUBSCRIPTION_ID_NOT_VALID}</li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Event Subscriptions are stored in CAPIF Database</p> </li> <li>Remove Event Subscription with not valid subscriber:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>detail with message \"Service API not existing\".</li> <li>cause with message \"Event API subscription id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-6-invoker-receives-service-api-invocation-events","title":"Test Case 6: Invoker receives Service API Invocation events","text":"<p>Test ID: capif_api_events-6, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE, receive the notification when AEF Send TO logging service result of invocations to their APIs.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>API Provider had a Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE event filtering by aefId. Enhanced_event_report active at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Emulate Success and Failure on API invocation of provider by Invoker, using Invocation Logs API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_INVOCATION_SUCCESS','SERVICE_API_INVOCATION_FAILURE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Create Log Entry emulating provider receive Success and Failure api invocation from invoker:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body with:<ol> <li>aefId from provider published.</li> <li>apiInvokerId from invoker onboarded.</li> <li>apiId of published API</li> <li>apiName of published API</li> <li>200 and 400 results in two logs.</li> </ol> </li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to creation of log entry on CCF must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/api-invocation-logs/{apiVersion}/{aefId}/subscriptions/{logId}</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with invocationLog in eventDetail parameter.<ol> <li>One should be SERVICE_API_INVOCATION_SUCCESS related with 200 result at Log.</li> <li>The other one must be SERVICE_API_INVOCATION_FAILURE related with 400 result at Log.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-7-invoker-subscribe-to-service-api-available-and-unavailable-events","title":"Test Case 7: Invoker subscribe to Service API Available and Unavailable events","text":"<p>Test ID: capif_api_events-7, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, receive the notification when AEF publish and remove it.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE event filtering by aefId. Enhanced_event_report active at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Provider publish new API.</li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Publish new Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_2</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Remove published Service API at CCF:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Mock Server received messages must accomplish:</p> <ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of service_2 published API.</li> <li>The other one must be SERVICE_API_UNAVAILABLE apiId of service_1 published API.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-8-invoker-subscribe-to-service-api-update","title":"Test Case 8: Invoker subscribe to Service API Update","text":"<p>Test ID: capif_api_events-8, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_UPDATE, receive the notification when AEF Update some information on API Published.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>API Provider had a Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_UPDATE event filtering by aefId. Enhanced_event_report active at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header at event subscription</li> <li>Provider update information of Service API Published.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> <li>Store serviceApiId</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_UPDATE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_UPDATE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>body [service api description] with overrided apiName to service_1_modified**</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Update Published Service API:<ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1_modified**</li> </ul> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received events follow EventNotification data structure, with serviceAPIDescriptions in eventDetail parameter.<ol> <li>Event should be SERVICE_API_UPDATE with eventDetail with modified apiName.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-9-provider-subscribe-to-api-invoker-events","title":"Test Case 9: Provider subscribe to API Invoker events","text":"<p>Test ID: capif_api_events-9, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Provider subscribed to API Invoker events (API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED), receive the notifications when Invoker is onboarded, updated and removed respectively.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Subscribe Provider to API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED events. Enhanced_event_report active at supported features.</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Update Onboarding Information at CCF with a minor change on \"notificationDestination\"</li> <li>Offboard Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Event Subscription to API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED events:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['API_INVOKER_ONBOARDED', 'API_INVOKER_UPDATED', 'API_INVOKER_OFFBOARDED']</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Provider AMF Certificate</li> </ol> </li> <li>Perform invoker onboarding</li> <li>Update information of previously onboarded Invoker:<ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>\"notificationDestination\": \"http://host.docker.internal:8086/netapp_new_callback\",</li> </ul> </li> <li>Offboard:<ul> <li>Send DELETE to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Update Request (PUT) with minor change must contain:<ol> <li>200 OK response.</li> <li>notificationDestination on response must contain the new value</li> </ol> </li> <li>Response to Offboard Request (DELETE) must contain:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Three Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiInvokerIds in eventDetail parameter.<ol> <li>One Event should be API_INVOKER_ONBOARDED with eventDetail with modified apiInvokerId.</li> <li>One Event should be API_INVOKER_UPDATED with eventDetail with modified apiInvokerId.</li> <li>One Event should be API_INVOKER_OFFBOARDED with eventDetail with modified apiInvokerId.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-10-provider-subscribed-to-acl-update-event","title":"Test Case 10: Provider subscribed to ACL update event","text":"<p>Test ID: capif_api_events-10, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Provider subscribed to ACCESS_CONTROL_POLICY_UPDATE receive a notification when ACL Changes.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>API Invoker had a Security Context for the Service API published by provider.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Provider to ACCESS_CONTROL_POLICY_UPDATE event. Enhanced_event_report active at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Provider Retrieve ACL</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UPDATE event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UPDATE']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Provider AMF Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received event follow EventNotification data structure, with accCtrlPolListExt in eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UPDATE with eventDetail with accCtrlPolListExt including the apiId and apiInvokerPolicies.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-11-provider-receives-an-acl-unavailable-event-when-invoker-remove-security-context","title":"Test Case 11: Provider receives an ACL unavailable event when invoker remove Security Context.","text":"<p>Test ID: capif_api_events-11, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to ACCESS_CONTROL_POLICY_UNAVAILABLE will receive the notification when AEF remove Security Context created previously.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Invoker to ACCESS_CONTROL_POLICY_UNAVAILABLE event. Enhanced_event_report active at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Provider Retrieve ACL.</li> <li>Remove Security Context for Invoker.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UNAVAILABLE event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UNAVAILABLE']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li>Delete Security Context of Invoker by Provider:<ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Use AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> <li>Delete security context:<ol> <li>204 No Content response.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UNAVAILABLE without eventDetail.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-12-invoker-receives-an-invoker-authorization-revoked-and-acl-unavailable-event-when-provider-revoke-invoker-authorization","title":"Test Case 12: Invoker receives an Invoker Authorization Revoked and ACL unavailable event when Provider revoke Invoker Authorization.","text":"<p>Test ID: capif_api_events-12, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to API_INVOKER_AUTHORIZATION_REVOKED and ACCESS_CONTROL_POLICY_UNAVAILABLE receive both notification when AEF revoke invoker's authorization.   Enhanced Event Report feature must be active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Invoker to ACCESS_CONTROL_POLICY_UNAVAILABLE and API_INVOKER_AUTHORIZATION_REVOKED events.  Enhanced_event_report active at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Revoke Authorization by Provider.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UNAVAILABLE and API_INVOKER_AUTHORIZATION_REVOKED event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UNAVAILABLE','API_INVOKER_AUTHORIZATION_REVOKED']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Revoke Authorization by Provider:<ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/delete</li> <li>body security notification body</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>Revoke Authorization:<ol> <li>204 No Content response.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UNAVAILABLE without eventDetail.</li> <li>One Event should be API_INVOKER_AUTHORIZATION_REVOKED without eventDetail.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-13-creates-a-new-individual-capif-event-subscription-without-supported-features-attribute","title":"Test Case 13: Creates a new individual CAPIF Event Subscription without supported features attribute.","text":"<p>Test ID: capif_api_events-13</p> <p>Description:</p> <p>This test case will check error when CAPIF subscriber (Invoker or Publisher) Subscribe to Events without supported features attribute.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Subscribe to Events without supported features</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Event Subscription:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body<ol> <li>supportedFeatures NOT PRESENT.</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"supportedFeatures not present in request\".</li> <li>cause with message \"supportedFeatures not present\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-14-invoker-receives-service-api-invocation-events-without-enhanced-event-report","title":"Test Case 14: Invoker receives Service API Invocation events without Enhanced Event Report","text":"<p>Test ID: capif_api_events-14, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE, receive the notification when AEF Send TO logging service result of invocations to their APIs.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>API Provider had a Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE event filtering by aefId. Enhanced_event_report inactive at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Emulate Success and Failure on API invocation of provider by Invoker, using Invocation Logs API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_INVOCATION_SUCCESS','SERVICE_API_INVOCATION_FAILURE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Create Log Entry emulating provider receive Success and Failure api invocation from invoker:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body with:<ol> <li>aefId from provider published.</li> <li>apiInvokerId from invoker onboarded.</li> <li>apiId of published API</li> <li>apiName of published API</li> <li>200 and 400 results in two logs.</li> </ol> </li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to creation of log entry on CCF must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/api-invocation-logs/{apiVersion}/{aefId}/subscriptions/{logId}</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_INVOCATION_SUCCESS related with 200 result at Log.</li> <li>The other one must be SERVICE_API_INVOCATION_FAILURE related with 400 result at Log.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-15-invoker-subscribe-to-service-api-available-and-unavailable-events-without-enhanced-event-report","title":"Test Case 15: Invoker subscribe to Service API Available and Unavailable events without Enhanced Event Report","text":"<p>Test ID: capif_api_events-15, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, receive the notification when AEF publish and remove it.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE event filtering by aefId. Enhanced_event_report inactive at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header</li> <li>Provider publish new API.</li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Publish new Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_2</li> <li>Store serviceApiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Remove published Service API at CCF:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Mock Server received messages must accomplish:</p> <ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of service_2 published API.</li> <li>The other one must be SERVICE_API_UNAVAILABLE apiId of service_1 published API.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-16-invoker-subscribe-to-service-api-update-without-enhanced-event-report","title":"Test Case 16: Invoker subscribe to Service API Update without Enhanced Event Report","text":"<p>Test ID: capif_api_events-16, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to SERVICE_API_UPDATE, receive the notification when AEF Update some information on API Published.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered and published APIs.</li> <li>API Provider had a Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider and publish one API at CCF</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover published APIs and extract apiIds and apiNames</li> <li>Subscribe to SERVICE_API_UPDATE event filtering by aefId. Enhanced_event_report inactive at supported features.</li> <li>Retrieve {subscriberId} and {subscriptionId} from Location Header at event subscription</li> <li>Provider update information of Service API Published.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> <li>Store serviceApiId</li> </ul> </li> <li> <p>Perform invoker onboarding</p> </li> <li> <p>Discover published APIs:</p> <ul> <li>Get Api Ids And Api Names from response.</li> </ul> </li> <li> <p>Event Subscription to SERVICE_API_UPDATE of provider previously registered:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_UPDATE']</li> <li>eventFilter: only receive events from provider's aefId.</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>body [service api description] with overrided apiName to service_1_modified**</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Update Published Service API:<ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1_modified**</li> </ul> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received events follow EventNotification data structure, with serviceAPIDescriptions in eventDetail parameter.<ol> <li>Event should be SERVICE_API_UPDATE with eventDetail with modified apiName.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-17-provider-subscribe-to-api-invoker-events-without-enhanced-event-report","title":"Test Case 17: Provider subscribe to API Invoker events without Enhanced Event Report","text":"<p>Test ID: capif_api_events-17, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Provider subscribed to API Invoker events (API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED), receive the notifications when Invoker is onboarded, updated and removed respectively.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Subscribe Provider to API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED events. Enhanced_event_report inactive at supported features.</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Update Onboarding Information at CCF with a minor change on \"notificationDestination\"</li> <li>Offboard Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Event Subscription to API_INVOKER_ONBOARDED, API_INVOKER_UPDATED and API_INVOKER_OFFBOARDED events:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['API_INVOKER_ONBOARDED', 'API_INVOKER_UPDATED', 'API_INVOKER_OFFBOARDED']</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Provider AMF Certificate</li> </ol> </li> <li>Perform invoker onboarding</li> <li>Update information of previously onboarded Invoker:<ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>\"notificationDestination\": \"http://host.docker.internal:8086/netapp_new_callback\",</li> </ul> </li> <li>Offboard:<ul> <li>Send DELETE to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Update Request (PUT) with minor change must contain:<ol> <li>200 OK response.</li> <li>notificationDestination on response must contain the new value</li> </ol> </li> <li>Response to Offboard Request (DELETE) must contain:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Three Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be API_INVOKER_ONBOARDED</li> <li>One Event should be API_INVOKER_UPDATED</li> <li>One Event should be API_INVOKER_OFFBOARDED</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-18-provider-subscribed-to-acl-update-event-without-enhanced-event-report","title":"Test Case 18: Provider subscribed to ACL update event without Enhanced Event Report","text":"<p>Test ID: capif_api_events-18, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Provider subscribed to ACCESS_CONTROL_POLICY_UPDATE receive a notification when ACL Changes.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>API Invoker had a Security Context for the Service API published by provider.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Provider to ACCESS_CONTROL_POLICY_UPDATE event. Enhanced_event_report inactive at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Provider Retrieve ACL</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UPDATE event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UPDATE']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Provider AMF Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UPDATE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-19-provider-receives-an-acl-unavailable-event-when-invoker-remove-security-context-without-enhanced-event-report","title":"Test Case 19: Provider receives an ACL unavailable event when invoker remove Security Context without Enhanced Event Report","text":"<p>Test ID: capif_api_events-19, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to ACCESS_CONTROL_POLICY_UNAVAILABLE will receive the notification when AEF remove Security Context created previously.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Invoker to ACCESS_CONTROL_POLICY_UNAVAILABLE event. Enhanced_event_report inactive at supported features.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Provider Retrieve ACL.</li> <li>Remove Security Context for Invoker.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UNAVAILABLE event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UNAVAILABLE']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Provider Retrieve ACL<ul> <li>Send GET https://{CAPIF_HOSTNAME}/access-control-policy/v1/accessControlPolicyList/${serviceApiId}?aef-id=${aef_id}</li> <li>Use serviceApiId and aefId</li> <li>Use AEF Provider Certificate</li> </ul> </li> <li>Delete Security Context of Invoker by Provider:<ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Use AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>ACL Response:<ol> <li>200 OK Response.</li> <li>body returned must accomplish AccessControlPolicyList data structure.</li> <li>apiInvokerPolicies must:<ol> <li>contain only one object.</li> <li>apiInvokerId must match apiInvokerId registered previously.</li> </ol> </li> </ol> </li> <li>Delete security context:<ol> <li>204 No Content response.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UNAVAILABLE without eventDetail.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_events_service/#test-case-20-invoker-receives-an-invoker-authorization-revoked-and-acl-unavailable-event-when-provider-revoke-invoker-authorization-without-enhanced-event-report","title":"Test Case 20: Invoker receives an Invoker Authorization Revoked and ACL unavailable event when Provider revoke Invoker Authorization without Enhanced Event Report","text":"<p>Test ID: capif_api_events-20, mockserver</p> <p>Description:</p> <p>This test case will check that a CAPIF Invoker subscribed to API_INVOKER_AUTHORIZATION_REVOKED and ACCESS_CONTROL_POLICY_UNAVAILABLE receive both notification when AEF revoke invoker's authorization.   Enhanced Event Report feature must be inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered.</li> <li>API Provider had one Service API Published on CAPIF</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF.</li> <li>Publish a provider API with name service_1.</li> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Subscribe Invoker to ACCESS_CONTROL_POLICY_UNAVAILABLE and API_INVOKER_AUTHORIZATION_REVOKED events.</li> <li>Discover APIs filtered by aef_id</li> <li>Create Security Context for Invoker.</li> <li>Revoke Authorization by Provider.</li> </ol> <p>Information of Test:</p> <ol> <li>Check and Clean Mock Server</li> <li>Perform provider registration</li> <li>Perform invoker onboarding</li> <li>Event Subscription to ACCESS_CONTROL_POLICY_UNAVAILABLE and API_INVOKER_AUTHORIZATION_REVOKED event:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['ACCESS_CONTROL_POLICY_UNAVAILABLE','API_INVOKER_AUTHORIZATION_REVOKED']</li> <li>eventFilters: apiInvokerIds array with apiInvokerId of invoker</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Discover published APIs</li> <li>Create Security Context for Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Revoke Authorization by Provider:<ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/delete</li> <li>body security notification body</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> <li>Revoke Authorization:<ol> <li>204 No Content response.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events has been received.</li> <li>Validate received event follow EventNotification data structure, without eventDetail parameter.<ol> <li>One Event should be ACCESS_CONTROL_POLICY_UNAVAILABLE without eventDetail.</li> <li>One Event should be API_INVOKER_AUTHORIZATION_REVOKED without eventDetail.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/","title":"Test Plan for CAPIF Api Invoker Management","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_invoker_management/#test-case-1-onboard-network-app","title":"Test Case 1: Onboard Network App","text":"<p>Test ID: capif_api_invoker_management-1</p> <p>Description:</p> <p>This test will try to register new Network App at CAPIF Core.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was not registered previously</li> <li>Network App was not onboarded previously</li> <li>Preconditions: The administrator must have previously registered the User.</li> </ul> <p>Execution Steps:</p> <ol> <li>Retrieve access_token by User from register</li> <li>Onboard Invoker at CCF</li> <li>Store signed Certificate</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at invoker</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Onboard Invoker:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers</li> <li>Reference Request Body: invoker onboarding body</li> <li>\"onboardingInformation\"-&gt;\"apiInvokerPublicKey\": must contain public key generated by Invoker.</li> <li>Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-2-onboard-network-app-already-onboarded","title":"Test Case 2: Onboard Network App Already onboarded","text":"<p>Test ID: capif_api_invoker_management-2</p> <p>Description:</p> <p>This test will check second onboard of same Network App is not allowed.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Network App at CCF</li> <li>Onboard Network App at CCF</li> <li>Store signed Certificate at Network App</li> <li>Onboard Again the Network App at CCF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Repeat Onboard Invoker:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers</li> <li>Reference Request Body: invoker onboarding body</li> <li>\"onboardingInformation\"-&gt;\"apiInvokerPublicKey\": must contain public key generated by Invoker.</li> <li>Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Second Onboard of Network App must accomplish:<ol> <li>403 Forbidden</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 403</li> <li>title with message \"Forbidden\"</li> <li>detail with message \"Invoker Already registered\".</li> <li>cause with message \"Identical invoker public key\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-3-update-onboarded-network-app","title":"Test Case 3: Update Onboarded Network App","text":"<p>Test ID: capif_api_invoker_management-3</p> <p>Description:</p> <p>This test will try to update information of previous onboard Network App at CAPIF Core.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Update Onboarding Information at CCF with a minor change on \"notificationDestination\"</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Update information of previously onboarded Invoker:</p> <ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>\"notificationDestination\": \"http://host.docker.internal:8086/netapp_new_callback\",</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Update Request (PUT) with minor change must contain:<ol> <li>200 OK response.</li> <li>notificationDestination on response must contain the new value</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-4-update-not-onboarded-network-app","title":"Test Case 4: Update Not Onboarded Network App","text":"<p>Test ID: capif_api_invoker_management-4</p> <p>Description:</p> <p>This test will try to update information of not onboarded Network App at CAPIF Core.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was not onboarded previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Onboard Invoker at CCF</li> <li>Update Onboarding Information at CCF of not onboarded</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Update information of not onboarded Invoker:</p> <ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{INVOKER_NOT_REGISTERED}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> </ol> </li> <li>Response to Update Request (PUT) must contain:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Please provide an existing Network App ID\".</li> <li>cause with message \"Not exist Network App ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-5-offboard-network-app","title":"Test Case 5: Offboard Network App","text":"<p>Test ID: capif_api_invoker_management-5</p> <p>Description:</p> <p>This test case will check that a Registered Network App can be deleted.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Onboard Invoker at CCF</li> <li>Offboard Invoker at CCF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Offboard:</p> <ul> <li>Send DELETE to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> </ol> </li> <li>Response to Offboard Request (DELETE) must contain:<ol> <li>204 No Content</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-6-offboard-not-previsouly-onboarded-network-app","title":"Test Case 6: Offboard Not previsouly Onboarded Network App","text":"<p>Test ID: capif_api_invoker_management-6</p> <p>Description:</p> <p>This test case will check that a Non-Registered Network App cannot be deleted</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was not onboarded previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Offboard Invoker at CCF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Offboard:</p> <ul> <li>Send DELETE to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{INVOKER_NOT_REGISTERED}</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Offboard Request (DELETE) must contain:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Please provide an existing Network App ID\".</li> <li>cause with message \"Not exist Network App ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_invoker_management/#test-case-7-update-onboarded-network-app-certificate","title":"Test Case 7: Update Onboarded Network App Certificate","text":"<p>Test ID: capif_api_invoker_management-7</p> <p>Description:</p> <p>This test will try to update public key and get a new signed certificate by CAPIF Core.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId} and {public_key_1}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker at CCF</li> <li>Onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Update Onboarding Information at CCF with new public key</li> <li>Update Onboarding Information at CCF with minor change</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding with public_key_1.</p> </li> <li> <p>Create {public_key_2}</p> </li> <li> <p>Update information of previously onboarded Invoker:</p> <ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>[\"onboardingInformation\"][\"apiInvokerPublicKey\"]: {public_key_2},</li> <li>Store new certificate.</li> </ul> </li> <li> <p>Update information of previously onboarded Invoker Using new certificate:</p> <ul> <li>Send PUT to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers/{onboardingId}</li> <li>Reference Request Body is: [put invoker onboarding body]</li> <li>\"notificationDestination\": \"http://host.docker.internal:8086/netapp_new_callback\",</li> <li>Use new Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Update Request (PUT) with new public key:<ol> <li>200 OK response.</li> <li>apiInvokerCertificate with new certificate on response -&gt; store to use.</li> </ol> </li> <li>Response to Update Request (PUT) with minor change must contain:<ol> <li>200 OK response.</li> <li>notificationDestination on response must contain the new value</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_logging_service/","title":"Test Plan for CAPIF Api Logging Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_logging_service/#test-case-1-creates-a-new-individual-capif-log-entry","title":"Test Case 1: Creates a new individual CAPIF Log Entry.","text":"<p>Test ID: capif_api_logging-1</p> <p>Description:</p> <p>This test case will check that a CAPIF AEF can create log entry to Logging Service</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid aefId from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow InvocationLog data structure with:<ul> <li>aefId</li> <li>apiInvokerId</li> <li>logs</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invocation-logs/v1/{aefId}/logs/{logId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_logging_service/#test-case-2-creates-a-new-individual-capif-log-entry-with-invalid-aefid","title":"Test Case 2:  Creates a new individual CAPIF Log Entry with Invalid aefId","text":"<p>Test ID: capif_api_logging-2</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (AEF) cannot create Log Entry without valid aefId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is not pre-authorised (has not valid aefId from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{not-valid-aefId}/logs</li> <li>body log entry request body</li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Exposer not exist\".</li> <li>cause with message \"Exposer id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_logging_service/#test-case-3-creates-a-new-individual-capif-log-entry-with-invalid-serviceapi","title":"Test Case 3:  Creates a new individual CAPIF Log Entry with Invalid serviceAPI","text":"<p>Test ID: capif_api_logging-3</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (AEF) cannot create Log Entry without valid aefId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid aefId from CAPIF Authority)</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body [log entry request body with serviceAPI apiName apiId not valid]</li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not exist\".</li> <li>cause with message \"Invoker id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_logging_service/#test-case-4-creates-a-new-individual-capif-log-entry-with-invalid-apiinvokerid","title":"Test Case 4:  Creates a new individual CAPIF Log Entry with Invalid apiInvokerId","text":"<p>Test ID: capif_api_logging-4</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (AEF) cannot create Log Entry without valid aefId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid aefId from CAPIF Authority)</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body [log entry request body with invokerId not valid]</li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure.</li> <li>For each apiProvFuncs, we must check:<ol> <li>apiProvFuncId is set</li> <li>apiProvCert under regInfo is set properly</li> </ol> </li> <li>Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}</li> </ol> </li> <li> <p>Response to Logging Service must accomplish:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not exist\".</li> <li>cause with message \"Invoker id not found\".</li> </ul> </li> </ol> </li> <li> <p>Log Entry are not stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_logging_service/#test-case-5-creates-a-new-individual-capif-log-entry-with-invalid-aefid-in-body","title":"Test Case 5:  Creates a new individual CAPIF Log Entry with Invalid aefId in body","text":"<p>Test ID: capif_api_logging-5</p> <p>Description:</p> <p>This test case will check that a CAPIF subscriber (AEF) cannot create Log Entry without valid aefId in body</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF provider is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>Service exist in CAPIF</li> <li>Invoker exist in CAPIF</li> </ul> <p>Execution Steps:   1. Register Provider and Invoker CCF   2. Publish Service   3. Create Log Entry</p> <p>Information of Test:</p> <ol> <li> <p>Perform provider onboarding and invoker onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Log Entry:</p> <ol> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invocation-logs/v1/{aefId}/logs</li> <li>body [log entry request body with bad aefId] </li> <li>Use AEF Certificate</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Logging Service must accomplish:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"AEF id not matching in request and body\".</li> <li>cause with message \"Not identical AEF id\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/","title":"Test Plan for CAPIF Api Provider Management","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_provider_management/#test-case-1-register-api-provider","title":"Test Case 1: Register Api Provider","text":"<p>Test ID: capif_api_provider_management-1</p> <p>Description:</p> <p>This test case will check that Api Provider can be registered con CCF</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid certificate from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Create private and public key for provider and each function to register.</li> <li>Register Provider.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Register Provider at Provider Management:<ol> <li>201 Created response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure.</li> <li>For each apiProvFuncs, we must check:<ol> <li>apiProvFuncId is set</li> <li>apiProvCert under regInfo is set properly</li> </ol> </li> <li>Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-2-register-api-provider-already-registered","title":"Test Case 2: Register Api Provider Already registered","text":"<p>Test ID: capif_api_provider_management-2</p> <p>Description:</p> <p>This test case will check that a Api Provider previously registered cannot be re-registered</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was registered previously and there is a {registerId} for his Api Provider in the DB</li> </ul> <p>Execution Steps:</p> <ol> <li>Create private and public key for provider and each function to register.</li> <li>Register Provider.</li> <li>Re-Register Provider.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Re-Register Provider:</p> <ul> <li>Same regSec than Previous registration</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Re-Register Provider:<ol> <li>403 Forbidden response.</li> <li> <p>body returned must accomplish ProblemDetails data structure, with:</p> <ul> <li>status 403</li> <li>title with message \"Forbidden\"</li> <li>detail with message \"Provider already registered\".</li> <li>cause with message \"Identical provider reg sec\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-3-update-registered-api-provider","title":"Test Case 3: Update Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-3</p> <p>Description:</p> <p>This test case will check that a Registered Api Provider can be updated</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was registered previously and there is a {registerId} for his Api Provider in the DB</li> </ul> <p>Execution Steps:</p> <ol> <li>Create private and public key for provider and each function to register.</li> <li>Register Provider</li> <li>Update Provider</li> </ol> <p>Information of Test:</p> <ol> <li>Create public and private key at provider for provider itself and each function (apf, aef and amf)</li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Get Resource URL from Location</li> </ul> </li> <li> <p>Update Provider:</p> <ul> <li>Send PUT to Resource URL returned at registration https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{registrationId}</li> <li>body provider request body with apiProvDomInfo set to ROBOT_TESTING_MOD</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Register Provider:</p> <ol> <li>201 Created response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}</li> </ol> </li> <li> <p>Update Provider:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure, with:<ul> <li>apiProvDomInfo set to ROBOT_TESTING_MOD</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-4-update-not-registered-api-provider","title":"Test Case 4: Update Not Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-4</p> <p>Description:</p> <p>This test case will check that a Non-Registered Api Provider cannot be updated</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was not registered previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Update Not Registered Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Update Not Registered Provider:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{API_PROVIDER_NOT_REGISTERED}</li> <li>body provider request body</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Update Not Registered Provider:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Not Exist Provider Enrolment Details\".</li> <li>cause with message \"Not found registrations to Send THIS api provider details\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-5-partially-update-registered-api-provider","title":"Test Case 5: Partially Update Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-5</p> <p>Description:</p> <p>This test case will check that a Registered Api Provider can be partially updated</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was registered previously and there is a {registerId} for his Api Provider in the DB</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Register Provider</li> <li>Partial update provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Partial update provider:</p> <ul> <li>Send PATCH https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{registrationId}</li> <li>body provider request patch body</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Partial update provider at Provider Management:<ol> <li>200 OK response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure, with:<ul> <li>apiProvDomInfo with \"ROBOT_TESTING_MOD\"</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-6-partially-update-not-registered-api-provider","title":"Test Case 6: Partially Update Not Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-6</p> <p>Description:</p> <p>This test case will check that a Non-Registered Api Provider cannot be partially updated  </p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was not registered previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Register Provider</li> <li>Partial update provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Partial update Provider:</p> <ul> <li>Send PATCH https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{API_API_PROVIDER_NOT_REGISTERED}</li> <li>body provider request patch body</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Partial update provider:<ol> <li>404 Not Found response.</li> <li> <p>body returned must accomplish ProblemDetails data structure, with:</p> <ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Not Exist Provider Enrolment Details\".</li> <li>cause with message \"Not found registrations to Send THIS api provider details\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-7-delete-registered-api-provider","title":"Test Case 7: Delete Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-7</p> <p>Description:</p> <p>This test case will check that a Registered Api Provider can be deleted</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was registered previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Register Provider</li> <li>Delete Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Delete registered provider:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{registrationId}</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Delete Provider:<ol> <li>204 No Content response.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_provider_management/#test-case-8-delete-not-registered-api-provider","title":"Test Case 8: Delete Not Registered Api Provider","text":"<p>Test ID: capif_api_provider_management-8</p> <p>Description:</p> <p>This test case will check that a Non-Registered Api Provider cannot be deleted</p> <p>Pre-Conditions:</p> <ul> <li>Api Provider was not registered previously</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Delete Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Create public and private key at provider for provider itself and each function (apf, aef and amf)</p> </li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Authentication Bearer with access_token</li> <li>Store each cert in a file with according name.</li> </ul> </li> <li> <p>Delete registered provider at Provider Management:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{API_PROVIDER_NOT_REGISTERED}</li> <li>Use AMF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Delete Provider:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Not Exist Provider Enrolment Details\".</li> <li>cause with message \"Not found registrations to Send THIS api provider details\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/","title":"Test Plan for CAPIF Api Publish Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_publish_service/#test-case-1-publish-api-by-authorised-api-publisher","title":"Test Case 1: Publish API by Authorised API Publisher","text":"<p>Test ID: capif_api_publish_service-1</p> <p>Description:</p> <p>This test case will check that an API Publisher can Publish an API</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li> <p>Register Provider at CCF and store certificates.</p> </li> <li> <p>Publish Service API</p> </li> <li> <p>Retrieve {apiId} from body and Location header with new resource created from response</p> </li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> </li> <li> <p>Send POST to ccf_publish_url: https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</p> </li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Published Service API is stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-2-publish-api-by-non-authorised-api-publisher","title":"Test Case 2: Publish API by NON Authorised API Publisher","text":"<p>Test ID: capif_api_publish_service-2</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Publish an API withot valid apfId </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is NOT pre-authorised (has invalid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API with invalid APF ID</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API with invalid APF ID at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{APF_ID_NOT_VALID}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Publisher not existing\".</li> <li>cause with message \"Publisher id not found\".</li> </ul> </li> </ol> </li> <li> <p>Service API is NOT stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-3-retrieve-all-apis-published-by-authorised-apfid","title":"Test Case 3: Retrieve all APIs Published by Authorised apfId","text":"<p>Test ID: capif_api_publish_service-3</p> <p>Description:</p> <p>This test case will check that an API Publisher can Retrieve all API published</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>At least 2 service APIs are published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API service_1</li> <li>Retrieve {apiId1} from body and Location header with new resource created from response</li> <li>Publish Service API service_2</li> <li>Retrieve {apiId2} from body and Location header with new resource created from response</li> <li>Retrieve All published APIs and check if both are present.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Publish Other Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve all published APIs:</p> <ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to service 1 Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId1}</li> </ol> </li> <li> <p>Response to service 2 Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId2}</li> </ol> </li> <li> <p>Published Service APIs are stored in CAPIF Database</p> </li> <li> <p>Response to Retrieve all published APIs:</p> <ol> <li>200 OK</li> <li>Response body must return an array of ServiceAPIDescription data.</li> <li>Array must contain all previously published APIs.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-4-retrieve-all-apis-published-by-non-authorised-apfid","title":"Test Case 4: Retrieve all APIs Published by NON Authorised apfId","text":"<p>Test ID: capif_api_publish_service-4</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Retrieve API published when apfId is not authorised </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is NOT pre-authorised (has invalid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Retrieve All published APIs</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Retrieve all published APIs:</p> <ul> <li>Send GET to https://{CAPIF_HOSTNAME}/published-apis/v1/{APF_ID_NOT_VALID}/service-apis</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>401 Non Authorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Provider not existing\".</li> <li>cause with message \"Provider id not found\".</li> </ul> </li> </ol> </li> <li> <p>Service API is NOT stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-5-retrieve-single-apis-published-by-authorised-apfid","title":"Test Case 5: Retrieve single APIs Published by Authorised apfId","text":"<p>Test ID: capif_api_publish_service-5</p> <p>Description:</p> <p>This test case will check that an API Publisher can Retrieve API published one by one</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>At least 2 service APIs are published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API service_1.</li> <li>Retrieve {apiId1} from body and Location header with new resource created from response.</li> <li>Publish Service API service_2.</li> <li>Retrieve {apiId2} from body and Location header with new resource created from response.</li> <li>Retrieve service_1 API Detail.</li> <li>Retrieve service_2 API Detail.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Publish Other Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve service_1 published APIs detail:</p> <ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{apiId1}</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve service_2 published APIs detail:</p> <ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{apiId2}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to service 1 Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId1}</li> </ol> </li> <li> <p>Response to service 2 Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId2}</li> </ol> </li> <li> <p>Published Service APIs are stored in CAPIF Database</p> </li> <li> <p>Response to Retrieve service_1 published API using apiId1:</p> <ol> <li>200 OK</li> <li>Response body must return a ServiceAPIDescription data.</li> <li>Array must contain same information than service_1 published registration response.</li> </ol> </li> <li> <p>Response to Retrieve service_2 published API using apiId2:</p> <ol> <li>200 OK</li> <li>Response body must return a ServiceAPIDescription data.</li> <li>Array must contain same information than service_2 published registration response.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-6-retrieve-single-apis-non-published-by-authorised-apfid","title":"Test Case 6: Retrieve single APIs non Published by Authorised apfId","text":"<p>Test ID: capif_api_publish_service-6</p> <p>Description:</p> <p>This test case will check that an API Publisher try to get detail of not published api.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>No published api</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Retrieve not published API Detail.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration</li> <li>Retrieve not published APIs detail:<ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID_NOT_VALID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Retrieve for NOT published API must accomplish:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Service API not found\".</li> <li>cause with message \"No Service with specific credentials exists\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-7-retrieve-single-apis-published-by-non-authorised-apfid","title":"Test Case 7: Retrieve single APIs Published by NON Authorised apfId","text":"<p>Test ID: capif_api_publish_service-7</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Retrieve detailed API published when apfId is not authorised </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is NOT pre-authorised (has invalid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API at CCF</li> <li>Retrieve {apiId} from body and Location header with new resource created from response.</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Invoker Certificate</li> <li>Retrieve detailed published API acting as Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve detailed published APIs:</p> <ul> <li>Send GET to https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/${apiId}</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Retrieve Detailed published API acting as Invoker must accomplish:</p> <ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"User not authorized\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> <li> <p>Service API is NOT stored in CAPIF Database</p> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-8-update-api-published-by-authorised-apfid-with-valid-serviceapiid","title":"Test Case 8: Update API Published by Authorised apfId with valid serviceApiId","text":"<p>Test ID: capif_api_publish_service-8</p> <p>Description:</p> <p>This test case will check that an API Publisher can Update published API with a valid serviceApiId </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> <li>A service APIs is published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API</li> <li>Retrieve {apiId} from body and Location header with new resource url created from response</li> <li>Update published Service API.</li> <li>Retrieve detail of Service API</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>get resource url from location Header.</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>body service api description with overrided apiName to service_1_modified</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Retrieve detail of service API:</p> <ul> <li>Send GET to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>check apiName is service_1_modified</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Update Published Service API:</p> <ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1_modified</li> </ul> </li> </ol> </li> <li> <p>Response to Retrieve detail of Service API:</p> <ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1_modified.</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-9-update-apis-published-by-authorised-apfid-with-invalid-serviceapiid","title":"Test Case 9: Update APIs Published by Authorised apfId with invalid serviceApiId","text":"<p>Test ID: capif_api_publish_service-9</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Update published API with a invalid serviceApiId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Update published Service API.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID_NOT_VALID}</li> <li>body service api description with overrided apiName to service_1*_modified*</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Update Published Service API:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Service API not found\".</li> <li>cause with message \"Service API id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-10-update-apis-published-by-non-authorised-apfid","title":"Test Case 10: Update APIs Published by NON Authorised apfId","text":"<p>Test ID: capif_api_publish_service-10</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Update API published when apfId is not authorised</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is NOT pre-authorised (has invalid apfId from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API at CCF</li> <li>Retrieve {apiId} from body and Location header with new resource created from response.</li> <li>Register and onboard Invoker at CCF</li> <li>Store signed Invoker Certificate</li> <li>Update published API at CCF as Invoker</li> <li>Retrieve detail of Service API as publisher</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Update published API at CCF:</p> <ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>body service api description with overrided apiName to service_1*_modified*</li> <li>Use Invoker Certificate</li> </ul> </li> <li> <p>Retrieve detail of service API:</p> <ul> <li>Send GET to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>check apiName is service_1</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Update published API acting as Invoker must accomplish:</p> <ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"User not authorized\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> <li> <p>Response to Retrieve Detail of Service API:</p> <ol> <li>200 OK</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiName service_1.</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-11-delete-api-published-by-authorised-apfid-with-valid-serviceapiid","title":"Test Case 11: Delete API Published by Authorised apfId with valid serviceApiId","text":"<p>Test ID: capif_api_publish_service-11</p> <p>Description:</p> <p>This test case will check that an API Publisher can Delete published API with a valid serviceApiId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority).</li> <li>A service APIs is published.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Publish Service API</li> <li>Retrieve {apiId} from body and Location header with new resource created from response</li> <li>Remove published API at CCF</li> <li>Try to retreive deleted service API from CCF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Remove published Service API at CCF:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Use APF Certificate</li> </ul> </li> <li>Retrieve detail of service API:<ul> <li>Send GET to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{serivceApiId}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Published Service API is stored in CAPIF Database</p> </li> <li> <p>Response to Remove published Service API at CCF:</p> <ol> <li>204 No Content</li> </ol> </li> <li> <p>Response to Retrieve for DELETED published API must accomplish:</p> <ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Service API not found\".</li> <li>cause with message \"No Service with specific credentials exists\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-12-delete-apis-published-by-authorised-apfid-with-invalid-serviceapiid","title":"Test Case 12: Delete APIs Published by Authorised apfId with invalid serviceApiId","text":"<p>Test ID: capif_api_publish_service-12</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Delete with invalid serviceApiId</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority).</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Remove published API at CCF with invalid serviceId</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Remove published Service API at CCF with invalid serviceId:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID_NOT_VALID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Remove published Service API at CCF:<ol> <li>404 Not Found</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Service API not found\".</li> <li>cause with message \"Service API id not found\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-13-delete-apis-published-by-non-authorised-apfid","title":"Test Case 13: Delete APIs Published by NON Authorised apfId","text":"<p>Test ID: capif_api_publish_service-13</p> <p>Description:</p> <p>This test case will check that an API Publisher cannot Delete API published when apfId is not authorised</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority).</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF and store certificates.</li> <li>Register Invoker and onboard Invoker at CCF</li> <li>Remove published API at CCF with invalid serviceId as Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Remove published Service API at CCF with invalid serviceId as Invoker:</p> <ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID_NOT_VALID}</li> <li>Use Invoker Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Remove published Service API at CCF:<ol> <li>401 Unauthorized</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"User not authorized\".</li> <li>cause with message \"Certificate not authorized\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_publish_service/#test-case-14-check-two-published-apis-with-different-apfs-are-removed-when-provider-is-deleted","title":"Test Case 14: Check Two Published APIs with different APFs are removed when Provider is deleted","text":"<p>Test ID: capif_api_publish_service-13</p> <p>Description:</p> <p>This test case will check that a Provider registered with two APFs, with one API published with each APF are removed properly when provider is removed. </p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid apfId from CAPIF Authority).</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider with 2 APFs at CCF and store certificates.</li> <li>Publish service_1 API with APF_1</li> <li>Publish service_2 API with APF_2</li> <li>Retrieve APIs published by APF_1</li> <li>Retrieve APIs published by APF_2</li> <li>Remove Provider by AMF</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish service_1 Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId1}/service-apis</li> <li>body service api description with apiName service_1</li> <li>Get apiId</li> <li>Use APF_1 Certificate</li> </ul> </li> <li>Publish service_2 Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId2}/service-apis</li> <li>body service api description with apiName service_2</li> <li>Get apiId</li> <li>Use APF_2 Certificate</li> </ul> </li> <li>Retrieve all published APIs by APF_1:<ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId1}/service-apis</li> <li>Use APF_1 Certificate</li> </ul> </li> <li>Retrieve all published APIs by APF_2:<ul> <li>Send GET to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId2}/service-apis</li> <li>Use APF_2 Certificate</li> </ul> </li> <li>Get Number of services published by superadmin:<ol> <li>Store value obtained in services_present_on_ccf_after_publish</li> </ol> </li> <li>Delete registered provider:<ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations/{registrationId}</li> <li>Use AMF Certificate.</li> </ul> </li> <li>Get Number of services published by superadmin:<ol> <li>Store value obtained in services_present_on_ccf_after_delete_provider</li> </ol> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId1}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId2}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Retrieve all published APIs by APF_1:<ol> <li>200 OK</li> <li>Response body must return an array of ServiceAPIDescription data.</li> <li>Array must contain all previously published APIs by APF_1.</li> </ol> </li> <li>Response to Retrieve all published APIs by APF_2:<ol> <li>200 OK</li> <li>Response body must return an array of ServiceAPIDescription data.</li> <li>Array must contain all previously published APIs by APF_2.</li> </ol> </li> <li>Delete Provider:<ol> <li>204 No Content response.</li> </ol> </li> <li>Check two APIs where removed after remove provider:<ol> <li>services_present_on_ccf_after_publish - services_present_on_ccf_after_delete_provider = 2</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/","title":"Test Plan for CAPIF Api Security Service","text":"<p>At this documentation you will have all information and related files and examples of test plan for this API.</p>"},{"location":"testing/testplan/api_security_service/#test-case-1-create-a-security-context-for-an-api-invoker","title":"Test Case 1: Create a security context for an API invoker","text":"<p>Test ID: capif_security_api-1</p> <p>Description:</p> <p>This test case will check that an API Invoker can create a Security context</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Create Security Context for this Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Create security context:<ol> <li>201 Created response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> <li>Location Header must contain the new resource URL {apiRoot}/capif-security/v1/trustedInvokers/{apiInvokerId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-2-create-a-security-context-for-an-api-invoker-with-provider-role","title":"Test Case 2: Create a security context for an API invoker with Provider role","text":"<p>Test ID:: capif_security_api-2</p> <p>Description:</p> <p>This test case will check that an Provider cannot create a Security context with valid apiInvokerId.</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID), but user that create Security Context with Provider role</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker but using Provider certificate.</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Create security context using Provider certificate:</p> <ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be invoker\".</li> </ul> </li> </ol> </li> <li> <p>No context stored at DB</p> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-3-create-a-security-context-for-an-api-invoker-with-provider-entity-role-and-invalid-apiinvokerid","title":"Test Case 3: Create a security context for an API invoker with Provider entity role and invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-3</p> <p>Description:</p> <p>This test case will check that an Provider cannot create a Security context with invalid apiInvokerID.</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID), but user that create Security Context with Provider role</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Create Security Context for this not valid apiInvokerId and using Provider certificate.</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>body service security body</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Create security context using Provider certificate:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be invoker\".</li> </ul> </li> </ol> </li> <li>No context stored at DB</li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-4-create-a-security-context-for-an-api-invoker-with-invoker-entity-role-and-invalid-apiinvokerid","title":"Test Case 4: Create a security context for an API invoker with Invoker entity role and invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-4</p> <p>Description:</p> <p>This test case will check that an Invoker cannot create a Security context with valid apiInvokerId.</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID), but user that create Security Context with invalid apiInvokerId</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Create Security Context using Provider certificate</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>body service security body</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Create security context using Provider certificate:</p> <ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> <li> <p>No context stored at DB</p> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-5-retrieve-the-security-context-of-an-api-invoker","title":"Test Case 5: Retrieve the Security Context of an API Invoker","text":"<p>Test ID:: capif_security_api-5</p> <p>Description:</p> <p>This test case will check that an provider can retrieve the Security context of an API Invoker</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority) and API Invoker has created a valid Security Context</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> <li>Retrieve Security Context by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker.</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Retrieve security context:<ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-6-retrieve-the-security-context-of-an-api-invoker-with-invalid-apiinvokerid","title":"Test Case 6: Retrieve the Security Context of an API Invoker with invalid apiInvokerID","text":"<p>Test ID:: capif_security_api-6</p> <p>Description:</p> <p>This test case will check that an provider can retrieve the Security context of an API Invoker</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority) and API Invoker has created a valid Security Context</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> <li>Retrieve Security Context by Provider of invalid invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Retrieve Security Context of invalid Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Retrieve security context:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-7-retrieve-the-security-context-of-an-api-invoker-with-invalid-apfid","title":"Test Case 7: Retrieve the Security Context of an API Invoker with invalid apfId","text":"<p>Test ID:: capif_security_api-7</p> <p>Description:</p> <p>This test case will check that an Provider cannot retrieve the Security context of an API Invoker without valid apfId</p> <p>Pre-Conditions:</p> <ul> <li>API Exposure Function is not pre-authorised (has invalid apfId)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Store signed Certificate</li> <li>Create Security Context</li> <li>Retrieve Security Context as Provider.</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Retrieve Security Context as Invoker role:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Create security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be aef\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-8-delete-the-security-context-of-an-api-invoker","title":"Test Case 8: Delete the Security Context of an API Invoker","text":"<p>Test ID:: capif_security_api-8</p> <p>Description:</p> <p>This test case will check that an Provider can delete a Security context</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority) and API Invoker has created a valid Security Context</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> <li>Delete Security Context by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker but using Provider certificate.</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using AEF Certificate</li> </ul> </li> <li> <p>Delete Security Context of Invoker by Provider:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Use AEF Certificate</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Delete security context:</p> <ol> <li>204 No Content response.</li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Security context not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-9-delete-the-security-context-of-an-api-invoker-with-invoker-entity-role","title":"Test Case 9: Delete the Security Context of an API Invoker with Invoker entity role","text":"<p>Test ID:: capif_security_api-9</p> <p>Description:</p> <p>This test case will check that an Invoker cannot delete a Security context</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority) and API Invoker has created a valid Security Context</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Create Security Context using Provider certificate</li> <li>Delete Security Context by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Delete Security Context of Invoker:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Delete security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be aef\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-10-delete-the-security-context-of-an-api-invoker-with-invoker-entity-role-and-invalid-apiinvokerid","title":"Test Case 10: Delete the Security Context of an API Invoker with Invoker entity role and invalid apiInvokerID","text":"<p>Test ID:: capif_security_api-10</p> <p>Description:</p> <p>This test case will check that an Invoker cannot delete a Security context with invalid </p> <p>Pre-Conditions:</p> <ul> <li>Invoker is pre-authorised.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Delete Security Context by invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Invoker Onboarding</p> </li> <li> <p>Delete Security Context of Invoker:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Delete security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be aef\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-11-delete-the-security-context-of-an-api-invoker-with-invalid-apiinvokerid","title":"Test Case 11: Delete the Security Context of an API Invoker with invalid apiInvokerID","text":"<p>Test ID:: capif_security_api-11</p> <p>Description:</p> <p>This test case will check that an Provider cannot delete a Security context of invalid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>Provider is pre-authorised (has valid apfId from CAPIF Authority).</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Delete Security Context by provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Delete Security Context of Invoker by Provider:</p> <ul> <li>Send DELETE https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}</li> <li>Use AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Retrieve security context:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-12-update-the-security-context-of-an-api-invoker","title":"Test Case 12: Update the Security Context of an API Invoker","text":"<p>Test ID:: capif_security_api-12</p> <p>Description:</p> <p>This test case will check that an API Invoker can update a Security context</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context By Invoker</li> <li>Update Security Context By Invoker</li> <li>Retrieve Security Context By Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Update Security Context of Invoker:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/update</li> <li>body service security body but with notification destination modified to http://robot.testing2</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Update security context:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.</li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.<ol> <li>Check is this returned object match with modified one.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-13-update-the-security-context-of-an-api-invoker-with-provider-entity-role","title":"Test Case 13: Update the Security Context of an API Invoker with Provider entity role","text":"<p>Test ID:: capif_security_api-13</p> <p>Description:</p> <p>This test case will check that an Provider cannot update a Security context</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized.</li> <li>Invoker has created the Security Context previously.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context</li> <li>Update Security Context as Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Update Security Context of Invoker by Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/update</li> <li>body service security body but with notification destination modified to http://robot.testing2</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Update security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be invoker\". </li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-14-update-the-security-context-of-an-api-invoker-with-aef-entity-role-and-invalid-apiinvokerid","title":"Test Case 14: Update the Security Context of an API Invoker with AEF entity role and invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-14</p> <p>Description:</p> <p>This test case will check that an Provider cannot update a Security context of invalid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized.</li> <li>Invoker has created the Security Context previously.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF</li> <li>Update Security Context as Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration</p> </li> <li> <p>Update Security Context of Invoker by Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}/update</li> <li>body service security body</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Update security context:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be invoker\". </li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-15-update-the-security-context-of-an-api-invoker-with-invalid-apiinvokerid","title":"Test Case 15: Update the Security Context of an API Invoker with invalid apiInvokerID","text":"<p>Test ID:: capif_security_api-15</p> <p>Description:</p> <p>This test case will check that an API Invoker cannot update a Security context not valid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Update Security Context</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Update Security Context of Invoker:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}/update</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Retrieve security context:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-16-revoke-the-authorization-of-the-api-invoker-for-apis","title":"Test Case 16: Revoke the authorization of the API invoker for APIs.","text":"<p>Test ID:: capif_security_api-16</p> <p>Description:</p> <p>This test case will check that a Provider can revoke the authorization for APIs</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context by Invoker</li> <li>Revoke Security Context by Provider</li> <li>Retrieve Security Context by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context By Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Revoke Authorization by Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/delete</li> <li>body security notification body</li> <li>Using AEF Certificate.</li> </ul> </li> <li> <p>Retrieve Security Context by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Revoke Authorization:</p> <ol> <li>204 No Content response.</li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Security context not found\".</li> <li>cause with message \"API Invoker has no security context\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-17-revoke-the-authorization-of-the-api-invoker-for-apis-without-valid-apfid","title":"Test Case 17: Revoke the authorization of the API invoker for APIs without valid apfID.","text":"<p>Test ID:: capif_security_api-17</p> <p>Description:</p> <p>This test case will check that an Invoker can't revoke the authorization for APIs</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context</li> <li>Revoke Security Context by invoker</li> <li>Retrieve Security Context</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Revoke Authorization by invoker:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}/delete</li> <li>body security notification body</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>Using Provider Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Revoke Security Context by invoker:</p> <ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 401</li> <li>title with message \"Unauthorized\"</li> <li>detail with message \"Role not authorized for this API route\".</li> <li>cause with message \"User role must be provider\". </li> </ul> </li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.<ol> <li>Check is this returned object match with created one.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-18-revoke-the-authorization-of-the-api-invoker-for-apis-with-invalid-apiinvokerid","title":"Test Case 18: Revoke the authorization of the API invoker for APIs with invalid apiInvokerId.","text":"<p>Test ID:: capif_security_api-18</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot revoke the authorization for APIs for invalid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register and onboard Invoker at CCF</li> <li>Register Provider at CCF</li> <li>Create Security Context</li> <li>Revoke Security Context by Provider</li> <li>Retrieve Security Context</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Create Security Context for this Invoker:</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> </ul> </li> <li> <p>Revoke Authorization by Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/trustedInvokers/{API_INVOKER_NOT_VALID}/delete</li> <li>body security notification body</li> <li>Using AEF Certificate.</li> </ul> </li> <li> <p>Retrieve Security Context of Invoker by Provider:</p> <ul> <li>Send GET https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}?authenticationInfo=true&amp;authorizationInfo=true</li> <li>This request will ask with parameter to retrieve authenticationInfo and authorizationInfo</li> <li>Using AEF Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Revoke Security Context by invoker:</p> <ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"Invoker not found\".</li> <li>cause with message \"API Invoker not exists or invalid ID\".</li> </ul> </li> </ol> </li> <li> <p>Retrieve security context:</p> <ol> <li>200 OK response.</li> <li>body returned must accomplish ServiceSecurity data structure.<ol> <li>Check is this return one object that match with created one.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-19-retrieve-access-token","title":"Test Case 19: Retrieve access token","text":"<p>Test ID:: capif_security_api-19</p> <p>Description:</p> <p>This test case will check that an API Invoker can retrieve a security access token OAuth 2.0.</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerId)</li> <li>Service API of Provider is published</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token:</li> <li>body access token req body and example example</li> <li>securityId is apiInvokerId.</li> <li>grant_type=client_credentials.</li> <li>Create Scope properly for request: 3gpp#{aef_id}:{api_name}</li> <li>Using Invoker Certificate.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>200 OK</li> <li>body must follow AccessTokenRsp with:<ol> <li>access_token present</li> <li>token_type=Bearer</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-20-retrieve-access-token-by-provider","title":"Test Case 20: Retrieve access token by Provider","text":"<p>Test ID:: capif_security_api-20</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot revoke the authorization for APIs for invalid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerID from CAPIF Authority) and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by provider:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token:</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error unauthorized_client</li> <li>error_description=Role not authorized for this API route</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-21-retrieve-access-token-by-provider-with-invalid-apiinvokerid","title":"Test Case 21: Retrieve access token by Provider with invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-21</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token without valid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Provider</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by provider:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{API_INVOKER_NOT_VALID}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>Using AEF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>401 Unauthorized response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error unauthorized_client</li> <li>error_description=Role not authorized for this API route</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-22-retrieve-access-token-with-invalid-apiinvokerid","title":"Test Case 22: Retrieve access token with invalid apiInvokerId","text":"<p>Test ID:: capif_security_api-22</p> <p>Description:</p> <p>This test case will check that an API Invoker can't retrieve a security access token without valid apiInvokerId</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised (has valid apiInvokerId)</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs not filtered:<ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li>Create Security Context for this Invoker<ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li>Request Access Token by invoker:<ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{API_INVOKER_NOT_VALID}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>404 Not Found response.</li> <li>body returned must accomplish ProblemDetails29571 data structure, with:<ul> <li>status 404</li> <li>title Not Found</li> <li>detail Security context not found</li> <li>cause API Invoker has no security context</li> </ul> </li> </ol> </li> </ol> <p>NOTE: ProblemDetails29571 is the definition present for this request at swagger of ProblemDetails, and this is different from definition of ProblemDetails across other CAPIF Services</p>"},{"location":"testing/testplan/api_security_service/#test-case-23-retrieve-access-token-with-invalid-client_id","title":"Test Case 23: Retrieve access token with invalid client_id","text":"<p>Test ID:: capif_security_api-23</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token without valid client_id at body</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>client_id is not-valid </li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error invalid_client</li> <li>error_description=Client Id not found</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-24-retrieve-access-token-with-unsupported-grant_type","title":"Test Case 24: Retrieve access token with unsupported grant_type","text":"<p>Test ID:: capif_security_api-24</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token with unsupported grant_type</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=not_valid</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish ProblemDetails data structure, with:<ul> <li>title=Bad Request</li> <li>detail='not_valid' is not one of \\['client_credentials', 'authorization_code'\\] - 'grant_type'</li> <li>status=400</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-25-retrieve-access-token-with-invalid-scope","title":"Test Case 25: Retrieve access token with invalid scope","text":"<p>Test ID:: capif_security_api-25</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token with complete invalid scope</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>scope=not-valid-scope</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error invalid_scope</li> <li>error_description=The first characters must be '3gpp'</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-26-retrieve-access-token-with-invalid-aefid-at-scope","title":"Test Case 26: Retrieve access token with invalid aefid at scope","text":"<p>Test ID:: capif_security_api-26</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token with invalid aefId at scope</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>scope=3gpp#1234:*service_1*</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error invalid_scope</li> <li>error_description=One of aef_id not belongs of your security context</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_security_service/#test-case-27-retrieve-access-token-with-invalid-apiname-at-scope","title":"Test Case 27: Retrieve access token with invalid apiName at scope","text":"<p>Test ID:: capif_security_api-27</p> <p>Description:</p> <p>This test case will check that an API Exposure Function cannot retrieve a security access token with invalid apiName at scope</p> <p>Pre-Conditions:</p> <ul> <li>API Invoker is pre-authorised and Provider is also authorized</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates and Publish Service API service_1 at CCF</li> <li>Register and onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker.</li> <li>Create Security Context According to Service APIs discovered.</li> <li>Request Access Token by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li> <p>Perform Provider Registration and Invoker Onboarding</p> </li> <li> <p>Publish Service API at CCF:</p> <ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body [service api description] with apiName service_1</li> <li>Use APF Certificate</li> </ul> </li> <li> <p>Request Discover Published APIs not filtered:</p> <ul> <li>Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}</li> <li>Param api-invoker-id is mandatory</li> <li>Using Invoker Certificate</li> </ul> </li> <li> <p>Create Security Context for this Invoker</p> <ul> <li>Send PUT https://{CAPIF_HOSTNAME}/trustedInvokers/{apiInvokerId}</li> <li>body service security body</li> <li>Using Invoker Certificate.</li> <li>Create Security Information Body with one securityInfo for each aef present at each serviceAPIDescription present at Discover.</li> </ul> </li> <li> <p>Request Access Token by invoker:</p> <ul> <li>Sent POST https://{CAPIF_HOSTNAME}/securities/{securityId}/token.</li> <li>body access token req body</li> <li>securityId is apiInvokerId</li> <li>grant_type=client_credentials</li> <li>scope=3gpp#{aef_id}:not-valid</li> <li>Using Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Request of Access Token:<ol> <li>400 Bad Request response.</li> <li>body returned must accomplish AccessTokenErr data structure, with:<ul> <li>error invalid_scope</li> <li>error_description=One of the api names does not exist or is not associated with the aef id provided</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/","title":"Test Plan for API Status Feature","text":"<p>At this documentation you will have all information and related files and examples of test plan for this feature.</p>"},{"location":"testing/testplan/api_status/#test-case-1-publish-without-apistatus-feature-receive-eventdetails-with-serviceapidescription","title":"Test Case 1: Publish without apiStatus feature receive eventDetails with serviceAPIDescription","text":"<p>Test ID: api_status-1</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing apiIds and serviceAPIDescription at eventDetails, and the same when api is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report and apiStatusMonitoring active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains the apiStatus keys</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-2-publish-without-apistatus-feature-receive-eventdetails-without-serviceapidescription","title":"Test Case 2: Publish without apiStatus feature receive eventDetails without serviceAPIDescription","text":"<p>Test ID: api_status-2</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with only Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing apiIds at eventDetails, and the same when api is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report active at supported features (binary 0100-&gt; string 4)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains the apiStatus keys</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-3-publish-without-apistatus-feature-receive-eventdetails-without-eventdetails-apimonitoringstatus-active","title":"Test Case 3: Publish without apiStatus feature receive eventDetails without eventDetails (apiMonitoringStatus active)","text":"<p>Test ID: api_status-3</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with only apiStatusMonitoring active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1000-&gt; string 8)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1000 -&gt; string 8</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains the apiStatus keys</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-4-publish-without-apistatus-feature-receive-eventdetails-without-eventdetails","title":"Test Case 4: Publish without apiStatus feature receive eventDetails without eventDetails","text":"<p>Test ID: api_status-4</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report not active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 0000-&gt; string 0)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains the apiStatus keys</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-5-publish-with-apistatus-present-but-apistatusmonitoring-inactive-receive-bad-request","title":"Test Case 5: Publish with apiStatus present but apiStatusMonitoring inactive receive bad Request","text":"<p>Test ID: api_status-5</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report not active, receive Bad Request when api is published by a provider.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring and  Enhanced_event_report inactive at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -&gt; string 000)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 0</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed\".</li> <li>cause with message \"apiStatus can't be set if apiStatusMonitoring is inactive\".</li> </ul> </li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>No Events have been received.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-6-publish-with-apistatus-feature-active-receive-eventdetails-with-serviceapidescription","title":"Test Case 6: Publish with apiStatus feature active receive eventDetails with serviceAPIDescription","text":"<p>Test ID: api_status-6</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification including apiIds and serviceAPIDescriptions.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-7-publish-with-apistatus-active-feature-receive-eventdetails-without-serviceapidescription","title":"Test Case 7: Publish with apiStatus active feature receive eventDetails without serviceAPIDescription","text":"<p>Test ID: api_status-7</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring inactive and Enhanced_event_report active, receive event notification including only apiIds.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report active and apiStatusMonitoring inactive at supported features (binary 0100-&gt; string 4)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 0100 -&gt; string 4</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with only apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-8-publish-with-apistatus-active-feature-receive-eventdetails-without-eventdetails-with-apistatus-apimonitoringstatus-active","title":"Test Case 8: Publish with apiStatus active feature receive eventDetails without eventDetails with apiStatus (apiMonitoringStatus active)","text":"<p>Test ID: api_status-8</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring active and Enhanced_event_report inactive, receive event notification without eventDetails.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report inactive and apiStatusMonitoring active at supported features (binary 1000-&gt; string 8)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1000 -&gt; string 8</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-9-publish-with-apistatus-active-feature-receive-eventdetails-without-eventdetails","title":"Test Case 9: Publish with apiStatus active feature receive eventDetails without eventDetails","text":"<p>Test ID: api_status-9</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report inactive, receive event notification without eventDetails.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report and apiStatusMonitoring inactive at supported features (binary 0000-&gt; string 0)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with aefId1 inside array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 0000 -&gt; string 0</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, without eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>The other one must be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-10-publish-with-apistatus-feature-active-no-aefid-active-receive-eventdetails-with-serviceapidescription-with-apistatus-empty-array","title":"Test Case 10: Publish with apiStatus feature active no aefId active receive eventDetails with serviceAPIDescription with apiStatus empty array","text":"<p>Test ID: api_status-10</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification SERVICE_API_UNAVAILABLE including apiIds and serviceAPIDescriptions when API is published containing apiStatus with empty array.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with empty aefIds array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with empty aefIds array. </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>One Event has been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>Only one SERVICE_API_UNAVAILABLE event.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-11-publish-with-apistatus-not-present-but-apistatusmonitoring-feature-active-receive-eventdetails-with-serviceapidescription-without-apistatus","title":"Test Case 11: Publish with apiStatus not present but apiStatusMonitoring feature active receive eventDetails with serviceAPIDescription without apiStatus","text":"<p>Test ID: api_status-11</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE including apiIds and serviceAPIDescriptions when API is published wihtout apiStatus.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API not includes \"API Status\" information at service API Description.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus not present. </li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus key.</li> </ul> </li> </ol> </li> <li>Response to Remove published Service API at CCF:<ol> <li>204 No Content</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>First SERVICE_API_AVAILABLE event.</li> <li>Other with SERVICE_API_UNAVAILABLE event.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-12-update-published-api-without-apistatus-and-apistatusmonitoring-inactive","title":"Test Case 12: Update published API without apiStatus and apiStatusMonitoring inactive","text":"<p>Test ID: api_status-12</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to not present.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus Not present</li> <li>aipStatusMonitoring feature not active (binary 0 0000 0000 -&gt; string 0)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 0</li> <li>2 profiles, one with each aef.</li> <li>apiStatus not present.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Update published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of published API with eventDetail with apiIds and serviceAPIDescription.</li> <li>The other one must be SERVICE_API_UPDATE apiId published API with eventDetail containing serviceAPIDescription updated.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-13-update-published-api-with-apistatus-empty-and-apistatusmonitoring-inactive","title":"Test Case 13: Update published API with apiStatus empty and apiStatusMonitoring inactive","text":"<p>Test ID: api_status-13</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to empty aefIds array with ApiStatusMonitoring inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus present with empty aefIds array.</li> <li>apiStatusMonitoring feature not active (binary 0 0000 0000 -&gt; string 0)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 0</li> <li>2 profiles, one with each aef.</li> <li>apiStatus present with empty aefIds array.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li> <p>Response to Update request must accomplish:</p> <ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed\".</li> <li>cause with message \"apiStatus can't be set if apiStatusMonitoring is inactive\".</li> </ul> </li> </ol> </li> <li> <p>Mock Server received messages must accomplish:</p> <ol> <li>One Event have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-14-update-published-api-with-apistatus-empty-and-apistatusmonitoring-active","title":"Test Case 14: Update published API with apiStatus empty and apiStatusMonitoring active","text":"<p>Test ID: api_status-14</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, SERVICE_API_UPDATE and SERVICE_API_UNAVAILABLE after update apiStatus to empty aefIds array with ApiStatusMonitoring active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus present with empty aefIds array.</li> <li>apiStatusMonitoring feature active (binary 0 0010 0000 -&gt; string 20)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 20</li> <li>2 profiles, one with each aef.</li> <li>apiStatus present with empty aefIds array.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Update published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Event have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>One should be SERVICE_API_UPDATE.</li> <li>One should be SERVICE_API_UNAVAILABLE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-15-update-published-api-with-apistatus-only-aef2-and-apistatusmonitoring-active","title":"Test Case 15: Update published API with apiStatus only aef2 and apiStatusMonitoring active","text":"<p>Test ID: api_status-15</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails and SERVICE_API_UPDATE after update apiStatus to aefId2 array with ApiStatusMonitoring active.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus present with empty aefIds array.</li> <li>apiStatusMonitoring feature active (binary 0 0010 0000 -&gt; string 20)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 20</li> <li>2 profiles, one with each aef.</li> <li>apiStatus present with aefId2 in aefIds array.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Update published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Event have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE.</li> <li>One should be SERVICE_API_UPDATE.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-16-published-api-without-aefs-available-updated-to-one-aef-available","title":"Test Case 16: Published API without aefs available updated to one aef available","text":"<p>Test ID: api_status-16</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_UNAVAILABLE in mockserver when api is published with apiStatus empty by a provider containing eventDetails, SERVICE_API_UPDATE and SERVICE_API_AVAILABLE after update apiStatus to aefId2 array with ApiStatusMonitoring active, and SERVICE_API_UNAVAILABLE when API is unpublished.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with empty aefIds array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Update Published API:<ol> <li>apiStatus present with aefId2 in aefIds array.</li> <li>apiStatusMonitoring feature active (binary 0 0010 0000 -&gt; string 20)</li> </ol> </li> <li>Provider remove published API.</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with empty aefIds array.</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 20</li> <li>2 profiles, one with each aef.</li> <li>apiStatus present with aefId2 in aefIds array.</li> </ul> </li> <li>Remove published Service API:<ul> <li>Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Update published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Event have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.<ol> <li>One should be SERVICE_API_UNAVAILABLE aefIds array inside apiStatus empty.</li> <li>One should be SERVICE_API_UPDATE aefIds array inside apiStatus contains apfId2.</li> <li>One should be SERVICE_API_AVAILABLE aefIds array inside apiStatus contains apfId2.</li> <li>One should be SERVICE_API_UNAVAILABLE aefIds array inside apiStatus contains apfId2.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-17-patch-published-apistatusmonitoring-active-api-with-apistatus-only-aefid2","title":"Test Case 17: Patch published (apiStatusMonitoring active) API with apiStatus only aefId2","text":"<p>Test ID: api_status-17</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE after patch with apfId2 in apiStatus array.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Patch Published API:<ol> <li>apiStatus present with aefId2 in array.</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description patch and realted with aefId1 and aefId2.</li> <li>apiStatus present with aefId2.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Patch published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> <li>The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-18-patch-published-apistatusmonitoring-active-api-with-apistatus-aef1-and-aef2","title":"Test Case 18: Patch published (apiStatusMonitoring active) API with apiStatus aef1 and aef2","text":"<p>Test ID: api_status-18</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE after patch with apfId1 and apfId2 in apiStatus array.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Patch Published API:<ol> <li>apiStatus present with aefId1 and aefId2 in array.</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description patch and realted with aefId1 and aefId2.</li> <li>apiStatus present with aefId1 and aefId2.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Patch published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> <li>The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-19-patch-published-apistatusmonitoring-inactive-api-with-apistatus-aefid1-and-aefid2","title":"Test Case 19: Patch published (apiStatusMonitoring inactive) API with apiStatus aefId1 and aefId2","text":"<p>Test ID: api_status-19</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring inactive), containing eventDetails, and NO SERVICE_API_UPDATE after patch with apfId1 and apfId2 in apiStatus array, because apiStatusMonitoring in publish is inactive.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0000 0000 -&gt; string 000)</li> <li>This API includes \"API Status\" information at service API Description with only aefId1.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Patch Published API:<ol> <li>apiStatus present with aefId1 and aefId2 in array.</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 000</li> <li>2 profiles, one with each aef.</li> <li>apiStatus with aefId1 inside array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Event Subscription must accomplish:</p> <ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed\".</li> <li>cause with message \"apiStatus can't be set if apiStatusMonitoring is inactive\".</li> </ul> </li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>No Events have been received.</li> </ol> </li> </ol>"},{"location":"testing/testplan/api_status/#test-case-20-patch-published-without-aefs-available-api-with-apistatus-only-aef2","title":"Test Case 20: Patch published without aefs available API with apiStatus only aef2","text":"<p>Test ID: api_status-20</p> <p>Description:</p> <p>This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_UNAVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE and SERVICE_API_AVAILABLE after patch with apfId1 and apfId2 in apiStatus array, becasue change from unavailable to available and also serviceAPIDescription is updated.</p> <p>Pre-Conditions:</p> <ul> <li>CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)</li> <li>CAPIF provider is correctly registered with 2 aefs.</li> <li>Mock Server is up and running to receive requests.</li> <li>Mock Server is clean.</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Invoker and Onboard Invoker at CCF.</li> <li>Register Provider at CCF with 2 aefs.</li> <li>Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-&gt; string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -&gt; string 020)</li> <li>This API includes \"API Status\" information at service API Description with empty array.</li> </ol> </li> <li>Discover Service APIs by Invoker<ol> <li>includes filter by query parameter aef-id</li> </ol> </li> <li>Patch Published API:<ol> <li>apiStatus present with aefId1 and aefId2 in array.</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Invoker Onboarding</li> <li>Perform Provider Registration with 2 aefs</li> <li>Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:<ol> <li>Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions</li> <li>body event subscription request body with:<ol> <li>events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']</li> <li>supportedFeatures: binary 1100 -&gt; string C</li> </ol> </li> <li>Use Invoker Certificate</li> </ol> </li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.</li> <li>supportedFeatures 020</li> <li>2 profiles, one with each aef.</li> <li>apiStatus empty array</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> <li>Update published Service API:<ul> <li>Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}</li> <li>Use APF Certificate</li> <li>body service api description patch and realted with aefId1 and aefId2.</li> <li>apiStatus present with aefId1 and aefId2.</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Onboard request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Event Subscription must accomplish:<ol> <li>201 Created</li> <li>The URI of the created resource shall be returned in the \"Location\" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}</li> <li>Response Body must follow EventSubscription data structure.</li> </ol> </li> <li>Response to Publish request must accomplish:<ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> <li>2 profiles with:</li> <li>resourceName resource_1 and aefId1</li> <li>resourceName resource_2 and aefId2</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the apiStatus with aefId1</li> </ul> </li> </ol> </li> <li>Response to Patch published Service API at CCF:<ol> <li>200 OK</li> <li>Store response with updated serviceAPIDescription.</li> </ol> </li> <li>Mock Server received messages must accomplish:<ol> <li>Two Events have been received.</li> <li>Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.<ol> <li>One should be SERVICE_API_UNAVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> <li>The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.</li> <li>Last one should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.</li> </ol> </li> </ol> </li> </ol>"},{"location":"testing/testplan/common_operations/","title":"Common Operations","text":""},{"location":"testing/testplan/common_operations/#default-supported-features","title":"Default Supported Features","text":"<p>By default all required supported features on POST Request will be present and set to \"0\" unless test define it with other value. Also it can be set to NONE is we want to test supported features not present.</p>"},{"location":"testing/testplan/common_operations/#register-new-user","title":"Register new user","text":"<p>In order to use OpenCAPIF we must add a new user. This new user can onboard/register any Invokers or Providers.</p> <p>That new user must be created by administrator of Register Service and with the credentials shared by administrator, the new user can get the access_token by requesting it to Register service.</p> <p>The steps to register a new user at Register Service are:</p>"},{"location":"testing/testplan/common_operations/#admin-create-user","title":"Admin create User","text":"<p>1) Login as Admin to get access_token:</p> <ul> <li>Send POST to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/login<ul> <li>Include basic Auth Header with Admin credentials</li> </ul> </li> <li>Get access_token and refresh_token from response</li> </ul> <p></p> <p>2) Create User:</p> <ul> <li>Send POST to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/createUser<ul> <li>Include Admin access_token in Authorization Bearer Header</li> <li>Body user_registration_body</li> </ul> </li> </ul> <p></p>"},{"location":"testing/testplan/common_operations/#user-retrieve-access-token-and-other-information","title":"User Retrieve access token and other information","text":"<p>1) Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth<ul> <li>Include basic Auth Header with User credentials</li> </ul> </li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> <p></p>"},{"location":"testing/testplan/common_operations/#onboard-an-invoker","title":"Onboard an Invoker","text":""},{"location":"testing/testplan/common_operations/#steps-to-perform-operation","title":"Steps to perform operation","text":"<p>Preconditions: The administrator must have previously registered the User.</p> <ol> <li>Create public and private key at invoker</li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Onboard Invoker:     </p> <ul> <li>Send POST to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers</li> <li>Reference Request Body: invoker onboarding body</li> <li>\"onboardingInformation\"-&gt;\"apiInvokerPublicKey\": must contain public key generated by Invoker.</li> <li>Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})</li> </ul> </li> </ol>"},{"location":"testing/testplan/common_operations/#checks-to-ensure-onboarding","title":"Checks to ensure onboarding","text":"<ol> <li> <p>Response to Get Auth:</p> <ol> <li>200 OK</li> <li>access_token returned.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/common_operations/#example-flow","title":"Example Flow","text":""},{"location":"testing/testplan/common_operations/#register-a-provider","title":"Register a Provider","text":""},{"location":"testing/testplan/common_operations/#steps-to-perform-operation_1","title":"Steps to Perform operation","text":"<ol> <li>Create public and private key at provider for provider itself and each function (apf, aef and amf)</li> <li> <p>Retrieve access_token by User:</p> <ul> <li>Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth</li> <li>Include basic Auth Header with Admin user/password</li> <li>Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example</li> </ul> </li> <li> <p>Register Provider:</p> <ul> <li>Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations</li> <li>body provider request body</li> <li>Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})</li> <li>Store each cert in a file with according name.</li> </ul> </li> </ol>"},{"location":"testing/testplan/common_operations/#checks-to-ensure-provider-registration","title":"Checks to ensure provider registration","text":"<ol> <li> <p>Response to Register:</p> <ol> <li>201 Created</li> </ol> </li> <li> <p>Response to Get Auth:</p> <ol> <li>200 OK</li> <li>access_token returned.</li> </ol> </li> <li> <p>Register Provider at Provider Management:</p> <ol> <li>201 Created response.</li> <li>body returned must accomplish APIProviderEnrolmentDetails data structure.</li> <li>For each apiProvFuncs, we must check:<ol> <li>apiProvFuncId is set</li> <li>apiProvCert under regInfo is set properly</li> </ol> </li> <li>Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}</li> </ol> </li> </ol>"},{"location":"testing/testplan/common_operations/#example-flow_1","title":"Example Flow","text":""},{"location":"testing/testplan/vendor_extensibility/","title":"Test Plan for Vendor Extensibility Feature","text":"<p>At this documentation you will have all information and related files and examples of test plan for this feature.</p>"},{"location":"testing/testplan/vendor_extensibility/#test-case-1-published-api-with-vendor-extensibility","title":"Test Case 1: Published API with vendor extensibility","text":"<p>Test ID: vendor_extensibility-1</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag active and vendorSpecific, can be discovered by invoker with all vendorSpecific fields.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 1 0000 0000 -&gt; string 100)</li> <li>This API includes \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker<ol> <li>includes supported-features with VendSpecQueryParams active (binary 010 -&gt; string 2)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>include vendor specific service in root of service api description.</li> <li>include vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 100</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}&amp;supported-features=2</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if contains the vendorSpecific keys</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-2-published-api-with-vendor-extensibility-and-discover-with-vendspecqueryparams-disabled","title":"Test Case 2: Published API with vendor extensibility and discover with VendSpecQueryParams disabled","text":"<p>Test ID: vendor_extensibility-2</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag active and vendorSpecific, but discovered filter only APIs without vendorSpecific parameter</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 1 0000 0000 -&gt; string 100)</li> <li>This API includes \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>include vendor specific service in root of service api description.</li> <li>include vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 100</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}&amp;supported-features=0</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-3-publish-api-with-vendorext-active-and-discover-without-supported-features-filter","title":"Test Case 3: Publish API with vendorExt active and discover without supported features filter","text":"<p>Test ID: vendor_extensibility-3</p> <p>Description:</p> <p>This test case will check if a published API with vendor extensions can be discovered by invoker but without verdorSpecific parameters if supported-features query parameter is not set properly</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 1 0000 0000 -&gt; string 100)</li> <li>This API includes \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>include vendor specific service in root of service api description.</li> <li>include vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 100</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li>Response to Discover Request By Invoker:<ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check NOT contains the vendorSpecific keys</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-4-publish-api-with-vendorext-active-but-without-vendorspecifics","title":"Test Case 4: Publish API with vendorExt active but without vendorSpecifics","text":"<p>Test ID: vendor_extensibility-4</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag active and without vendorSpecific gets a 400 Bad Request, because is not allowed by definition.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 1 0000 0000 -&gt; string 100)</li> <li>This API NOT includes any \"Vendor Specific\" information.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>NOT INCLUDED vendor specific service in root of service api description.</li> <li>NOT INCLUDED vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 100</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"If and only if VendorExt feature is enabled, then vendor-specific fields should be defined\".</li> <li>cause with message \"Vendor extensibility misconfiguration\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-5-publish-api-with-vendorext-inactive-but-with-vendorspecifics","title":"Test Case 5: Publish API with vendorExt inactive but with vendorSpecifics","text":"<p>Test ID: vendor_extensibility-5</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag inactive and with vendorSpecific gets a 400 Bad Request, because is not allowed by definition.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 0 0000 0000 -&gt; string 000)</li> <li>This API includes any \"Vendor Specific\" information.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>include vendor specific service in root of service api description.</li> <li>include vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 000</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"If and only if VendorExt feature is enabled, then vendor-specific fields should be defined\".</li> <li>cause with message \"Vendor extensibility misconfiguration\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-6-published-api-without-vendor-extensibility-discover-with-vendspecqueryparams-enabled","title":"Test Case 6: Published API without vendor extensibility discover with VendSpecQueryParams enabled","text":"<p>Test ID: vendor_extensibility-6</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag inactive and vendorSpecific no presnet, but discovered filter only APIs with vendorSpecific parameter</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 0 0000 0000 -&gt; string 000)</li> <li>This API NOT includes \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker<ol> <li>Supported-features: binary 010 -&gt; string 2</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>NOT INCLUDED vendor specific service in root of service api description.</li> <li>NOT INCLUDED vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 00</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}&amp;supported-features=2</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must NOT include any \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>404 Not Found response.</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 404</li> <li>title with message \"Not Found\"</li> <li>detail with message \"API Invoker {api_invoker_id} has no API Published that accomplish filter conditions\".</li> <li>cause with message \"No API Published accomplish filter conditions\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-7-published-api-without-vendor-extensibility-and-discover-with-vendspecqueryparams-disabled","title":"Test Case 7: Published API without vendor extensibility and discover with vendSpecQueryParams disabled","text":"<p>Test ID: vendor_extensibility-7</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag inactive and no vendorSpecific, can be discovered by invoker filtering by vendSpecQueryParams.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 0 0000 0000 -&gt; string 0)</li> <li>This API NOT includes any \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker<ol> <li>includes supported-features with VendSpecQueryParams active (binary 000 -&gt; string 0)</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>NOT INCLUDE vendor specific service in root of service api description.</li> <li>NOT INCLUDE vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 0</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}&amp;supported-features=0</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must NOT include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains any vendorSpecific keys</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-8-published-api-without-vendor-extensibility-and-discover-without-supported-features-query-parameter","title":"Test Case 8: Published API without vendor extensibility and discover without supported-features query parameter","text":"<p>Test ID: vendor_extensibility-8</p> <p>Description:</p> <p>This test case will check if a published API with vendorExt flag inactive and no vendorSpecific, can be discovered by invoker without filtering by vendSpecQueryParams.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with vendorExt flag active (binary 0 0000 0000 -&gt; string 000)</li> <li>This API NOT includes any \"Vendor Specific\" information at service API Description and inside AEF Profile.</li> </ol> </li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker<ol> <li>NOT includes supported-features</li> </ol> </li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>NOT INCLUDE vendor specific service in root of service api description.</li> <li>NOT INCLUDE vendor specific aef profile in one AEFProfile inside aefProfiles key.</li> <li>supportedFeatures 000</li> <li>Use APF Certificate</li> </ul> </li> <li>Request Discover Published APIs:<ul> <li>Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&amp;aef-id=${aefId}</li> <li>Param api-invoker-id is mandatory</li> <li>Use Invoker Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li> <p>Response to Publish request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow ServiceAPIDescription data structure with:<ul> <li>apiId</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}</li> <li>Response must NOT include \"vendorSpecific\" keys inside root and at AEF Profile.</li> </ol> </li> <li> <p>Response to Onboard request must accomplish:</p> <ol> <li>201 Created</li> <li>Response Body must follow APIInvokerEnrolmentDetails data structure with:<ul> <li>apiInvokerId</li> <li>onboardingInformation-&gt;apiInvokerCertificate must contain the public key signed.</li> </ul> </li> <li>Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}</li> </ol> </li> <li> <p>Response to Discover Request By Invoker:</p> <ol> <li>200 OK response.</li> <li>Response body must follow DiscoveredAPIs data structure:<ul> <li>Check if DiscoveredAPIs contains the API Published previously</li> <li>Check if NOT contains any vendorSpecific keys</li> </ul> </li> </ol> </li> </ol>"},{"location":"testing/testplan/vendor_extensibility/#test-case-9-publish-api-without-supportedfeatures","title":"Test Case 9: Publish API without supportedFeatures","text":"<p>Test ID: vendor_extensibility-9</p> <p>Description:</p> <p>This test case will check if a published API without supportedFeatures receives the 400 Bad Request, because is not allowed by definition.</p> <p>Pre-Conditions:</p> <ul> <li>Network App was registered previously</li> <li>Network App was onboarded previously with {onboardingId}</li> </ul> <p>Execution Steps:</p> <ol> <li>Register Provider at CCF, store certificates.</li> <li>Publish Service API at CCF.</li> <li>Register Invoker and Onboard Invoker at CCF</li> <li>Discover Service APIs by Invoker</li> </ol> <p>Information of Test:</p> <ol> <li>Perform Provider Registration and Invoker Onboarding</li> <li>Publish Service API at CCF:<ul> <li>Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis</li> <li>body service api description with apiName service_1</li> <li>without supportedFeatures parameter.</li> <li>Use APF Certificate</li> </ul> </li> </ol> <p>Expected Result:</p> <ol> <li>Response to Publish request must accomplish:<ol> <li>400 Bad Request</li> <li>Error Response Body must accomplish with ProblemDetails data structure with:<ul> <li>status 400</li> <li>title with message \"Bad Request\"</li> <li>detail with message \"supportedFeatures not present in request\".</li> <li>cause with message \"supportedFeatures not present\".</li> </ul> </li> </ol> </li> </ol>"},{"location":"vendor-ext/vendor-ext/","title":"Vendor Extensibility","text":"<p>Mechanism for the APIs to re-use, extend their functionalities and data models and engage with third-party API frameworks (e.g. ETSI MEC)</p> <p>Vendor specific extensions are defined on 3GPP TS 29.122 (section 5.2.13) and 29.500 (section 6.6.3) and is tightly connected with \"supported-features\u201d and \"feature negotiation\" procedures.</p>"},{"location":"vendor-ext/vendor-ext/#vendor-extensibility-in-capif","title":"Vendor Extensibility in CAPIF:","text":"<p>Vendor Extensibility is a feature focused on the APIs that are published and exposed via CAPIF.  As a result, the feature is supported by the ServiceAPIDescription object (and any other objects embeded on it e.g. AefProfile). In the figure below, depicting all supported features of ServiceAPIDescription,  VendExt feature is noted, which enables vendor-specific extension in the body of the specific object.</p> <p></p> <p>Vendor extensibility feature can be enabled and leveraged in 2 CAPIF APIs, Publish and Discover.</p>"},{"location":"vendor-ext/vendor-ext/#vendor-extensibility-in-capif-apis","title":"Vendor Extensibility in CAPIF APIs","text":""},{"location":"vendor-ext/vendor-ext/#publish-api","title":"Publish API","text":"<p>A vendor can extend the ServiceAPIDescription object by adding additional member elements. However, in order to avoid duplication of member names inside a same object  it is necessary to comply with a naming scheme for vendor-specific data elements, to avoid clashing names between vendors. Vendor-specific member names in JSON objects shall be named in the following manner:</p> <pre><code>  \"vendorSpecific-nnnnnnnnn\": {\n        ...\n        }\n</code></pre> <p>where the value \"nnnnnn\" can be:</p> <ol> <li>6-digit IANA-assigned enterprise code:</li> </ol> <pre><code>  \"vendorSpecific-010415\": {\n        ...\n        }\n</code></pre> <ol> <li>domain name:</li> </ol> <pre><code>\"vendorSpecific-3gpp.org\": {\n        ...\n        }\n</code></pre> <ol> <li>URN:</li> </ol> <pre><code>\"vendorSpecific-urn:3gpp:example\": {\n        ...\n        }\n</code></pre> <p>A concrete example of vendor-specific extensibility exists on section 9 of ETSI GS MEC 011 V3.2.1, where ETSI MEC extends the ServiceAPIDescription as depicted on the following two figures.</p> <p></p> <p></p> <p>Example:</p> <p>ServiceAPIDescription vendorSpecific looks like:</p> <pre><code>\"vendorSpecific-urn:etsi:mec:capifext:service-info\": {\n    \"serializer\": \"JSON\",\n    \"state\": \"ACTIVE\",\n    \"scopeOfLocality\": \"MEC_SYSTEM\",\n    \"consumedLocalOnly\": \"True\",\n    \"isLocal\": \"True\",\n    \"category\": {\n        \"href\": \"https://www.location.com\",\n        \"id\": \"location_1\",\n        \"name\": \"Location\",\n        \"version\": \"1.0\"\n    }\n}\n</code></pre> <p>AEFProfile vendorSpecific looks like:</p> <pre><code>\"vendorSpecific-urn:etsi:mec:capifext:transport-info\": {\n    \"name\": \"trasport1\",\n    \"description\": \"Transport Info 1\",\n    \"type\": \"REST_HTTP\",\n    \"protocol\": \"HTTP\",\n    \"version\": \"2\",\n    \"security\": {\n        \"grantTypes\": \"OAUTH2_CLIENT_CREDENTIALS\",\n        \"tokenEndpoint\": \"https://token-endpoint/\"\n    }\n}\n</code></pre> <p>Complete ETSI MEC ServiceAPIDescription with vendor extensibility would be like this:</p> <pre><code>{\n    \"apiName\": \"service_1\",\n    \"vendorSpecific-urn:etsi:mec:capifext:service-info\": {\n      \"serializer\": \"JSON\",\n      \"state\": \"ACTIVE\",\n      \"scopeOfLocality\": \"MEC_SYSTEM\",\n      \"consumedLocalOnly\": \"True\",\n      \"isLocal\": \"True\",\n      \"category\": {\n          \"href\": \"https://www.location.com\",\n          \"id\": \"location_1\",\n          \"name\": \"Location\",\n          \"version\": \"1.0\"\n      }\n    },\n    \"aefProfiles\": [\n      {\n        \"aefId\": \"string\",\n        \"vendorSpecific-urn:etsi:mec:capifext:transport-info\": {\n            \"name\": \"trasport1\",\n            \"description\": \"Transport Info 1\",\n            \"type\": \"REST_HTTP\",\n            \"protocol\": \"HTTP\",\n            \"version\": \"2\",\n            \"security\": {\n                \"grantTypes\": \"OAUTH2_CLIENT_CREDENTIALS\",\n                \"tokenEndpoint\": \"https://token-endpoint/\"\n                }\n        },\n        \"versions\": [\n            {}\n        ],\n        \"protocol\": \"HTTP_1_1\",\n        \"dataFormat\": \"JSON\",\n        \"securityMethods\": [\"PSK\"],\n        \"interfaceDescriptions\": [\n          {\n            \"ipv4Addr\": \"string\",\n            \"port\": 65535,\n            \"securityMethods\": [\"PSK\"]\n          }\n        ]\n      }\n    ],\n    \"description\": \"string\",\n    \"supportedFeatures\": \"0\",\n    \"shareableInfo\": {\n      \"isShareable\": true,\n      \"capifProvDoms\": [\n        \"string\"\n      ]\n    },\n    \"serviceAPICategory\": \"string\",\n    \"apiSuppFeats\": \"fffff\",\n    \"pubApiPath\": {\n      \"ccfIds\": [\n        \"string\"\n      ]\n    },\n    \"ccfId\": \"string\"\n}\n</code></pre>"},{"location":"vendor-ext/vendor-ext/#discover-api","title":"Discover API","text":"<p>In order to use vendor-specific fields as filters in Discover API, vendor-specific query parameter shall be encoded as follows:</p> <pre><code>https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}?\n       ...\n       vend-spec-&lt;query parameter name&gt;={\n          \"target\": &lt;string that contains the JSON pointer to the attribute in the resource representation&gt;, \n          \"value\": &lt;query parameter value&gt;\n}\n</code></pre> <p>Example:</p> <pre><code>    https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}?\n           ...\n           vend-spec-type={\n              \"target\": \"/vendorSpecific-urn:etsi:mec:capifext:transport-info\", \n              \"value\": \"REST_HTTP\"\n    }\n</code></pre>"}]}
\ No newline at end of file
diff --git a/public/develop/sitemap.xml b/public/develop/sitemap.xml
index 15c35013..592a56d5 100644
--- a/public/develop/sitemap.xml
+++ b/public/develop/sitemap.xml
@@ -2,106 +2,106 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
     <url>
          <loc>https://ocf.etsi.org/develop/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/FAQ/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/architecture/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/releasenotes/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/api-status/api-status/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/contribute/documenting/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/example-clients/example-clients/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/gettingstarted/howtorun/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/gettingstarted/repository/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/sdk/sdk/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/postman/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/robotframework/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_access_control_policy/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_auditing_service/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_discover_service/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_events_service/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_invoker_management/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_logging_service/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_provider_management/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_publish_service/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_security_service/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/api_status/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/common_operations/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/testing/testplan/vendor_extensibility/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
     <url>
          <loc>https://ocf.etsi.org/develop/vendor-ext/vendor-ext/</loc>
-         <lastmod>2025-01-22</lastmod>
+         <lastmod>2025-01-30</lastmod>
     </url>
 </urlset>
\ No newline at end of file
diff --git a/public/develop/sitemap.xml.gz b/public/develop/sitemap.xml.gz
index b2f8fbe6bea032ca52d8da71051580e8f282afb9..fd8240b261a417e9abd4e97af4b10bf5527f6d42 100644
GIT binary patch
literal 461
zcmV;;0W$s{iwFn+!J20R|8r?{Wo=<_E_iKh0L_<8Z=5g?hVS_mEAC*Ds#06+67`aM
zrS^=x_5`dLkL4L)_uqG5qiCg^+JnIo@&{(#$76f2kI$FEA0|lTFr13VsxA%?3|beu
zQ}O5bOZlyMZXS+f@&tU4&Vf!v&m4a!HP3TJj$zP|DomXs(@TZad!wqW??v-)khB=M
zmDY6hXqv?ei5WDn6)?HggoOz_Ms-w6m-{a?@qo5@s-M1=^<(*^mM-sYHwpEj@y}{6
zKYwLb)XDVXCBtKa%+d)wXo7$YlzY_CmBgAyx-aHsFc>(w^T?nqnsI=@ve+|2z(o(y
zLutGdefm_-OVa@_K9K213|93xGo~?YOOYU=1QJZw%p7Fj)+ev3Y{qpR%Ak4BVI%c~
zXXMwU2beK!<$@)Tels6@$V-T7wJ|`{u0aER8__#+-38ca-O}0;q{$iB1Cw=RP!1D&
zVv=_fQ1?XS!h~<)B-!P<gXRCT2P%(Ux3lFG6Hd<V&Qozbdq@4AJVju}<oLQPrY#P4
zpGXW21BMnOB+YWi*&Im1k;T-)g&~kTJ1^6gndyd53c`KyzZup{ZimfZPI;1sO%4D6
DgL~rs

literal 461
zcmV;;0W$s{iwFn+HIQcl|8r?{Wo=<_E_iKh0L_<8Z=)~}hVT6q5qEGJX{Fs&Le)#}
zmAYr-*i*1-JeFsG<lpZ=swz@Xy9a|M<PXfekH_|4AD=G0-;I#SVK^0!)xOw4Flb$9
zPsN|Nm-1)vR6iVt<Oz5uodcbUjye8TYMQ2s97C@oRhU{urjrV(&qlSceiik@PSR}P
zR$9{0qp4>rBxcaOSHR>J6Bb7B7}ZhDUGBfo#68;jus{4L_mAb_AYDG&ZW8KC<Db=D
zo?kO7>SQ|clHnmiX6XbTG(kWH%024nN@C3e-52vR7z~`;d0<c$&Co+&S?rl1;G+BJ
zp)}r!K7Fg_rD=g@AINkh2CF)p7}F5erAQD_0tu#TW)89+%ad1CHsi7mWzgK~u#$Sh
zGxB@VJxrL^a>1NOznTxe<RwHk+87{emY{*YiRhiVZUStuZf<P|(&!9qfyp{DD2ItH
zG08g#s9Pd(VZ;w{lI(Kb!u<c)0+q+M-Pm%92}fr)=czcHy`yeRo+2<qa(vws(;A1n
zZzKl$9z%l>l4iN%tPUjM$YN^X!Vt)votJ6L%ydI21>wH<-waD8x5N4`8oi$rO%4D6
DCGg=Y

diff --git a/public/develop/vendor-ext/vendor-ext/index.html b/public/develop/vendor-ext/vendor-ext/index.html
index 9df9607a..01379f04 100644
--- a/public/develop/vendor-ext/vendor-ext/index.html
+++ b/public/develop/vendor-ext/vendor-ext/index.html
@@ -447,6 +447,17 @@
         
       
       
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  <span class="md-ellipsis">
+    Vendor Extensibility
+  </span>
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
       <a href="./" class="md-nav__link md-nav__link--active">
         
   
@@ -457,6 +468,67 @@
 
       </a>
       
+        
+
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      Table of contents
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#vendor-extensibility-in-capif" class="md-nav__link">
+    <span class="md-ellipsis">
+      Vendor Extensibility in CAPIF:
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#vendor-extensibility-in-capif-apis" class="md-nav__link">
+    <span class="md-ellipsis">
+      Vendor Extensibility in CAPIF APIs
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Vendor Extensibility in CAPIF APIs">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#publish-api" class="md-nav__link">
+    <span class="md-ellipsis">
+      Publish API
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#discover-api" class="md-nav__link">
+    <span class="md-ellipsis">
+      Discover API
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
     </li>
   
 
@@ -824,6 +896,56 @@
     
   
   
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      Table of contents
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#vendor-extensibility-in-capif" class="md-nav__link">
+    <span class="md-ellipsis">
+      Vendor Extensibility in CAPIF:
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#vendor-extensibility-in-capif-apis" class="md-nav__link">
+    <span class="md-ellipsis">
+      Vendor Extensibility in CAPIF APIs
+    </span>
+  </a>
+  
+    <nav class="md-nav" aria-label="Vendor Extensibility in CAPIF APIs">
+      <ul class="md-nav__list">
+        
+          <li class="md-nav__item">
+  <a href="#publish-api" class="md-nav__link">
+    <span class="md-ellipsis">
+      Publish API
+    </span>
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
+  <a href="#discover-api" class="md-nav__link">
+    <span class="md-ellipsis">
+      Discover API
+    </span>
+  </a>
+  
+</li>
+        
+      </ul>
+    </nav>
+  
+</li>
+      
+    </ul>
+  
 </nav>
                   </div>
                 </div>
@@ -838,7 +960,157 @@
 
 
 <h1 id="vendor-extensibility">Vendor Extensibility</h1>
-<p>DOC:Work in Progress</p>
+<p>Mechanism for the APIs to re-use, extend their functionalities and data models and engage with third-party API frameworks (e.g. ETSI MEC)</p>
+<p>Vendor specific extensions are defined on 3GPP TS 29.122 (section 5.2.13) and 29.500 (section 6.6.3) and is tightly connected with "supported-features” and "feature negotiation" procedures.</p>
+<h2 id="vendor-extensibility-in-capif">Vendor Extensibility in CAPIF:</h2>
+<p>Vendor Extensibility is a feature focused on the APIs that are published and exposed via CAPIF. 
+As a result, the feature is supported by the ServiceAPIDescription object (and any other objects embeded on it e.g. AefProfile). In the figure below, depicting all supported features of ServiceAPIDescription, 
+VendExt feature is noted, which enables vendor-specific extension in the body of the specific object.</p>
+<p><img alt="Publish Supported Features" src="../../images/vendor-ext/publish_supported_features_2.png" /></p>
+<p>Vendor extensibility feature can be enabled and leveraged in 2 CAPIF APIs, Publish and Discover.</p>
+<h2 id="vendor-extensibility-in-capif-apis">Vendor Extensibility in CAPIF APIs</h2>
+<h3 id="publish-api">Publish API</h3>
+<p>A vendor can extend the ServiceAPIDescription object by adding additional member elements. However, in order to avoid duplication of member names inside a same object 
+it is necessary to comply with a naming scheme for vendor-specific data elements, to avoid clashing names between vendors.
+Vendor-specific member names in JSON objects shall be named in the following manner:</p>
+<pre><code>  &quot;vendorSpecific-nnnnnnnnn&quot;: {
+        ...
+        }
+</code></pre>
+<p>where the value "nnnnnn" can be:</p>
+<ol>
+<li>6-digit IANA-assigned enterprise code:</li>
+</ol>
+<pre><code>  &quot;vendorSpecific-010415&quot;: {
+        ...
+        }
+</code></pre>
+<ol>
+<li>domain name:</li>
+</ol>
+<pre><code>&quot;vendorSpecific-3gpp.org&quot;: {
+        ...
+        }
+</code></pre>
+<ol>
+<li>URN:</li>
+</ol>
+<pre><code>&quot;vendorSpecific-urn:3gpp:example&quot;: {
+        ...
+        }
+</code></pre>
+<p>A concrete example of vendor-specific extensibility exists on section 9 of ETSI GS MEC 011 V3.2.1, where ETSI MEC extends the ServiceAPIDescription as depicted on the following two figures.</p>
+<p><img alt="Service API Description" src="../../images/vendor-ext/service_api_description_2.png" /></p>
+<p><img alt="AEF Profile" src="../../images/vendor-ext/aef_profile_2.png" /></p>
+<p><strong>Example:</strong></p>
+<p>ServiceAPIDescription vendorSpecific looks like:</p>
+<pre><code class="language-json">&quot;vendorSpecific-urn:etsi:mec:capifext:service-info&quot;: {
+    &quot;serializer&quot;: &quot;JSON&quot;,
+    &quot;state&quot;: &quot;ACTIVE&quot;,
+    &quot;scopeOfLocality&quot;: &quot;MEC_SYSTEM&quot;,
+    &quot;consumedLocalOnly&quot;: &quot;True&quot;,
+    &quot;isLocal&quot;: &quot;True&quot;,
+    &quot;category&quot;: {
+        &quot;href&quot;: &quot;https://www.location.com&quot;,
+        &quot;id&quot;: &quot;location_1&quot;,
+        &quot;name&quot;: &quot;Location&quot;,
+        &quot;version&quot;: &quot;1.0&quot;
+    }
+}
+</code></pre>
+<p>AEFProfile vendorSpecific looks like:</p>
+<pre><code class="language-json">&quot;vendorSpecific-urn:etsi:mec:capifext:transport-info&quot;: {
+    &quot;name&quot;: &quot;trasport1&quot;,
+    &quot;description&quot;: &quot;Transport Info 1&quot;,
+    &quot;type&quot;: &quot;REST_HTTP&quot;,
+    &quot;protocol&quot;: &quot;HTTP&quot;,
+    &quot;version&quot;: &quot;2&quot;,
+    &quot;security&quot;: {
+        &quot;grantTypes&quot;: &quot;OAUTH2_CLIENT_CREDENTIALS&quot;,
+        &quot;tokenEndpoint&quot;: &quot;https://token-endpoint/&quot;
+    }
+}
+</code></pre>
+<p>Complete ETSI MEC ServiceAPIDescription with vendor extensibility would be like this:</p>
+<pre><code class="language-json">{
+    &quot;apiName&quot;: &quot;service_1&quot;,
+    &quot;vendorSpecific-urn:etsi:mec:capifext:service-info&quot;: {
+      &quot;serializer&quot;: &quot;JSON&quot;,
+      &quot;state&quot;: &quot;ACTIVE&quot;,
+      &quot;scopeOfLocality&quot;: &quot;MEC_SYSTEM&quot;,
+      &quot;consumedLocalOnly&quot;: &quot;True&quot;,
+      &quot;isLocal&quot;: &quot;True&quot;,
+      &quot;category&quot;: {
+          &quot;href&quot;: &quot;https://www.location.com&quot;,
+          &quot;id&quot;: &quot;location_1&quot;,
+          &quot;name&quot;: &quot;Location&quot;,
+          &quot;version&quot;: &quot;1.0&quot;
+      }
+    },
+    &quot;aefProfiles&quot;: [
+      {
+        &quot;aefId&quot;: &quot;string&quot;,
+        &quot;vendorSpecific-urn:etsi:mec:capifext:transport-info&quot;: {
+            &quot;name&quot;: &quot;trasport1&quot;,
+            &quot;description&quot;: &quot;Transport Info 1&quot;,
+            &quot;type&quot;: &quot;REST_HTTP&quot;,
+            &quot;protocol&quot;: &quot;HTTP&quot;,
+            &quot;version&quot;: &quot;2&quot;,
+            &quot;security&quot;: {
+                &quot;grantTypes&quot;: &quot;OAUTH2_CLIENT_CREDENTIALS&quot;,
+                &quot;tokenEndpoint&quot;: &quot;https://token-endpoint/&quot;
+                }
+        },
+        &quot;versions&quot;: [
+            {}
+        ],
+        &quot;protocol&quot;: &quot;HTTP_1_1&quot;,
+        &quot;dataFormat&quot;: &quot;JSON&quot;,
+        &quot;securityMethods&quot;: [&quot;PSK&quot;],
+        &quot;interfaceDescriptions&quot;: [
+          {
+            &quot;ipv4Addr&quot;: &quot;string&quot;,
+            &quot;port&quot;: 65535,
+            &quot;securityMethods&quot;: [&quot;PSK&quot;]
+          }
+        ]
+      }
+    ],
+    &quot;description&quot;: &quot;string&quot;,
+    &quot;supportedFeatures&quot;: &quot;0&quot;,
+    &quot;shareableInfo&quot;: {
+      &quot;isShareable&quot;: true,
+      &quot;capifProvDoms&quot;: [
+        &quot;string&quot;
+      ]
+    },
+    &quot;serviceAPICategory&quot;: &quot;string&quot;,
+    &quot;apiSuppFeats&quot;: &quot;fffff&quot;,
+    &quot;pubApiPath&quot;: {
+      &quot;ccfIds&quot;: [
+        &quot;string&quot;
+      ]
+    },
+    &quot;ccfId&quot;: &quot;string&quot;
+}
+</code></pre>
+<h3 id="discover-api">Discover API</h3>
+<p>In order to use vendor-specific fields as filters in Discover API, vendor-specific query parameter shall be encoded as follows:</p>
+<pre><code class="language-json">https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}?
+       ...
+       vend-spec-&lt;query parameter name&gt;={
+          &quot;target&quot;: &lt;string that contains the JSON pointer to the attribute in the resource representation&gt;, 
+          &quot;value&quot;: &lt;query parameter value&gt;
+}
+</code></pre>
+<p><strong>Example:</strong></p>
+<pre><code class="language-json">    https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}?
+           ...
+           vend-spec-type={
+              &quot;target&quot;: &quot;/vendorSpecific-urn:etsi:mec:capifext:transport-info&quot;, 
+              &quot;value&quot;: &quot;REST_HTTP&quot;
+    }
+</code></pre>
 
 
 
-- 
GitLab