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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 znO⁡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	ZyQ>}1n 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℘G=|_EE((B3S?a8w>d}N%|Rl>iI}gg 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�PP5XIR*hsxxFKj|6PlBloC?k}a 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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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⋘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\h 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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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<AUKm{}bqHVm6j`V#D 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	ptNF!c;E=z8HV% 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�_c)fc&v-MECm@|7Nb;X%Qg_gE&V=%gz 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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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	Vu<Rst9pDGu&dfS&wkU^`1$MY1fD2J#2$P$ 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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://<Mongo CAPIF Express Host IP>: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://<Mongo Register Express Host IP>: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:<organization>:<field name>\": {\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-<query parameter name>={\n \"target\": <string that contains the JSON pointer to the attribute in the resource representation>, \n \"value\": <query parameter value>\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 <username> <password>\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 <name>\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 <service file route>\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 <api name>\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 <username> <password>\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 <name>\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 <api name>\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 <api name>\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 <api name> <method> <endpoint> <body route>\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 <admin username> <admin password>\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 <options>\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 <options>\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 <options>\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 <Service>\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 <Service>\npip3 install -r requirements.txt\npython3 -m <service>\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 <TAG>\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 <TAG> --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><PATH_TO_REPOSITORY>=path in local machine to repository cloned.\n<PATH_RESULT_FOLDER>=path to a folder on local machine to store results of Robot Framework execution.\n<CAPIF_HOSTNAME>=Is the hostname set when run.sh is executed, by default it is capifcore.\n<CAPIF_HTTP_PORT>=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<CAPIF_HTTPS_PORT>=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<CAPIF_REGISTER>=This is the hostname of register service deployed. By default it is register.\n<CAPIF_REGISTER_PORT>=This is the port to be used to reach register service deployed. By default it is 8084.\n<CAPIF_VAULT>=This is the hostname of vault service. By default it is vault.\n<CAPIF_VAULT_PORT>=This is the port to be used to reach vault service. By default it is 8200.\n<CAPIF_VAULT_TOKEN>=Vault token to be used on request through vault. By default it is \"read-ca-token\".\n<MOCK_SERVER_URL>=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 <PATH_TO_REPOSITORY>/tests:/opt/robot-tests/tests \\\n -v <PATH_RESULT_FOLDER>:/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<TAG>=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 <PATH_TO_REPOSITORY>/tests:/opt/robot-tests/tests \\\n -v <PATH_RESULT_FOLDER>:/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 <TAG>\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}&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}&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}&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}&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}&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}&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}&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}&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}&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}&api-invoker-id={api-invoker-id}&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}&api-invoker-id={api-invoker-id}&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->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->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->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}&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->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}&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->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->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->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->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->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->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->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 -> 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 -> 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 -> 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 -> 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->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 -> 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 -> 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 -> 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->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 -> 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 -> 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 -> 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 -> 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->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 -> 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 -> 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\"->\"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->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\"->\"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->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->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->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 -> 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&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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string 4)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string 8)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string 0)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string 4)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string 8)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string 0)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0000 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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\"->\"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->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 -> 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 -> 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}&aef-id=${aefId}&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->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 -> 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}&aef-id=${aefId}&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->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 -> 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}&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->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 -> 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 -> 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 -> 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 -> 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}&aef-id=${aefId}&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->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 -> 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 -> 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}&aef-id=${aefId}&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->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 -> 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}&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->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://<Mongo CAPIF Express Host IP>: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://<Mongo Register Express Host IP>: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:<organization>:<field name>\": {\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-<query parameter name>={\n \"target\": <string that contains the JSON pointer to the attribute in the resource representation>, \n \"value\": <query parameter value>\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 <username> <password>\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 <name>\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 <service file route>\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 <api name>\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 <username> <password>\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 <name>\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 <api name>\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 <api name>\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 <api name> <method> <endpoint> <body route>\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 <admin username> <admin password>\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 <options>\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 <options>\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 <options>\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 <Service>\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 <Service>\npip3 install -r requirements.txt\npython3 -m <service>\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 <TAG>\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 <TAG> --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><PATH_TO_REPOSITORY>=path in local machine to repository cloned.\n<PATH_RESULT_FOLDER>=path to a folder on local machine to store results of Robot Framework execution.\n<CAPIF_HOSTNAME>=Is the hostname set when run.sh is executed, by default it is capifcore.\n<CAPIF_HTTP_PORT>=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<CAPIF_HTTPS_PORT>=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<CAPIF_REGISTER>=This is the hostname of register service deployed. By default it is register.\n<CAPIF_REGISTER_PORT>=This is the port to be used to reach register service deployed. By default it is 8084.\n<CAPIF_VAULT>=This is the hostname of vault service. By default it is vault.\n<CAPIF_VAULT_PORT>=This is the port to be used to reach vault service. By default it is 8200.\n<CAPIF_VAULT_TOKEN>=Vault token to be used on request through vault. By default it is \"read-ca-token\".\n<MOCK_SERVER_URL>=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 <PATH_TO_REPOSITORY>/tests:/opt/robot-tests/tests \\\n -v <PATH_RESULT_FOLDER>:/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<TAG>=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 <PATH_TO_REPOSITORY>/tests:/opt/robot-tests/tests \\\n -v <PATH_RESULT_FOLDER>:/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 <TAG>\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}&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}&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}&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}&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}&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}&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}&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}&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}&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}&api-invoker-id={api-invoker-id}&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}&api-invoker-id={api-invoker-id}&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->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->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->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}&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->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}&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->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->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->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->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->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->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->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 -> 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 -> 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 -> 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 -> 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->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 -> 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 -> 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 -> 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->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 -> 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 -> 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 -> 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 -> 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->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 -> 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 -> 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\"->\"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->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\"->\"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->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->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->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 -> 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&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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string 4)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string 8)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string 0)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string 4)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string 8)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string 0)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0000 0000 -> 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 -> 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}&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->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-> string C)</li> <li>Publish Service API at CCF:<ol> <li>Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> 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 -> 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}&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->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\"->\"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->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 -> 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 -> 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}&aef-id=${aefId}&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->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 -> 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}&aef-id=${aefId}&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->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 -> 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}&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->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 -> 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 -> 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 -> 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 -> 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}&aef-id=${aefId}&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->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 -> 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 -> 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}&aef-id=${aefId}&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->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 -> 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}&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->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-<query parameter name>={\n \"target\": <string that contains the JSON pointer to the attribute in the resource representation>, \n \"value\": <query parameter value>\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> "vendorSpecific-nnnnnnnnn": { + ... + } +</code></pre> +<p>where the value "nnnnnn" can be:</p> +<ol> +<li>6-digit IANA-assigned enterprise code:</li> +</ol> +<pre><code> "vendorSpecific-010415": { + ... + } +</code></pre> +<ol> +<li>domain name:</li> +</ol> +<pre><code>"vendorSpecific-3gpp.org": { + ... + } +</code></pre> +<ol> +<li>URN:</li> +</ol> +<pre><code>"vendorSpecific-urn:3gpp:example": { + ... + } +</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">"vendorSpecific-urn:etsi:mec:capifext:service-info": { + "serializer": "JSON", + "state": "ACTIVE", + "scopeOfLocality": "MEC_SYSTEM", + "consumedLocalOnly": "True", + "isLocal": "True", + "category": { + "href": "https://www.location.com", + "id": "location_1", + "name": "Location", + "version": "1.0" + } +} +</code></pre> +<p>AEFProfile vendorSpecific looks like:</p> +<pre><code class="language-json">"vendorSpecific-urn:etsi:mec:capifext:transport-info": { + "name": "trasport1", + "description": "Transport Info 1", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2", + "security": { + "grantTypes": "OAUTH2_CLIENT_CREDENTIALS", + "tokenEndpoint": "https://token-endpoint/" + } +} +</code></pre> +<p>Complete ETSI MEC ServiceAPIDescription with vendor extensibility would be like this:</p> +<pre><code class="language-json">{ + "apiName": "service_1", + "vendorSpecific-urn:etsi:mec:capifext:service-info": { + "serializer": "JSON", + "state": "ACTIVE", + "scopeOfLocality": "MEC_SYSTEM", + "consumedLocalOnly": "True", + "isLocal": "True", + "category": { + "href": "https://www.location.com", + "id": "location_1", + "name": "Location", + "version": "1.0" + } + }, + "aefProfiles": [ + { + "aefId": "string", + "vendorSpecific-urn:etsi:mec:capifext:transport-info": { + "name": "trasport1", + "description": "Transport Info 1", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2", + "security": { + "grantTypes": "OAUTH2_CLIENT_CREDENTIALS", + "tokenEndpoint": "https://token-endpoint/" + } + }, + "versions": [ + {} + ], + "protocol": "HTTP_1_1", + "dataFormat": "JSON", + "securityMethods": ["PSK"], + "interfaceDescriptions": [ + { + "ipv4Addr": "string", + "port": 65535, + "securityMethods": ["PSK"] + } + ] + } + ], + "description": "string", + "supportedFeatures": "0", + "shareableInfo": { + "isShareable": true, + "capifProvDoms": [ + "string" + ] + }, + "serviceAPICategory": "string", + "apiSuppFeats": "fffff", + "pubApiPath": { + "ccfIds": [ + "string" + ] + }, + "ccfId": "string" +} +</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-<query parameter name>={ + "target": <string that contains the JSON pointer to the attribute in the resource representation>, + "value": <query parameter value> +} +</code></pre> +<p><strong>Example:</strong></p> +<pre><code class="language-json"> https://{{CAPIF_HOSTNAME}}:{{CAPIF_PORT}}/{{DISCOVER_URL}}? + ... + vend-spec-type={ + "target": "/vendorSpecific-urn:etsi:mec:capifext:transport-info", + "value": "REST_HTTP" + } +</code></pre> -- GitLab