Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# OpenCAPIF SDK Configuration
Before starting the configuration process, it is required that both the [requirements](../README.md) and the [installation](./sdk_developers.md) sections are completed.
## Table of Contents
- [Configuration via capif_sdk_config.json](#configuration-via-capif_sdk_configjson)
- [As a Network App Invoker](#network-app-invoker)
- [As a Network App Provider](#network-app-provider)
- [Descriptions of capif_sdk_config Fields](#descriptions-of-capif_sdk_config-fields)
- [Configuration via capif-sdk-register.json](#configuration-via-capif-sdk-registerjson)
## Configuration via `capif_sdk_config.json`
A sample configuration file can be found [here](../samples/config_sample.json).
### Common Fields for Invoker and Provider
Regardless of the role (Invoker or Provider), the following fields are mandatory:
- `capif_host`
- `register_host`
- `capif_https_port`
- `capif_register_port`
- `capif_username`
- `capif_password`
- `debug_mode`
### Network App Invoker
When configuring the SDK as a **Network App Invoker**, the following fields must be provided:
- `invoker_folder`
- `capif_callback_url`
- `cert_generation` (fields such as `csr_common_name`, `csr_country_name`, etc.)
**Optional:**
To enable the discovery of specific APIs, the fields under [`discover_filter`](#configuration-of-discover_filter) can be configured.
### Network App Provider
For SDK configuration as a **Network App Provider**, the following fields are required:
- `provider_folder`
- `cert_generation` (fields such as `csr_common_name`, `csr_country_name`, etc.)
- `APFs`
- `AEFs`
- [`publish_req`](#configuration-of-publish_req)
- `api_description_path`
## Configuration of `discover_filter`
The `discover_filter` section adheres to the parameters defined in the GET request schema of the [Discover Services API](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Discover_Service_API.yaml).
To utilize the service discovery functionality, the `discover_filter` fields should be populated with the desired filters. It is important to note that fields such as `api-name` must contain only one object of each type (i.e., no lists are allowed).
Before running the Invoker Service Discovery Functionality, the Invoker must be onboarded to CAPIF.
## Configuration of `publish_req`
This section is mandatory when using the [CAPIF Publish Service API](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Publish_Service_API.yaml). The following fields are required:
- `service_api_id`: Example: `"02eff6e1b3a8f7c8044a92ee8a30bd"`
- `publisher_apf_id`: Example: `"APFa165364a379035d14311deadc04332"`
- `publisher_aefs_ids`: An array of selected AEF IDs. Example: `["AEFfa38f0e855bffb420e4994ecbc8fb9", "AEFe8bfa711f4f0c95ba0b382508e6382"]`
The `api_description_path` must point to the Publish API to be shared, and it should follow the [ServiceAPIDescription](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Publish_Service_API.yaml) schema.
If the `publisher_aefs_ids` do not match the `aefProfiles` in the API description, an error will be raised by the SDK.
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
## Descriptions of `capif_sdk_config` Fields
This file can also be populated using [environment variables](../samples/enviroment_variables_sample.txt).
- `invoker_folder`: The path (relative or absolute) where invoker information (certificates, keys, etc.) is stored.
- `provider_folder`: The path (relative or absolute) where provider information is stored.
- `capif_host`: The domain name of the CAPIF host.
- `register_host`: The domain name of the register host.
- `capif_https_port`: The CAPIF host port number.
- `capif_register_port`: The register host port number.
- `capif_callback_url`: The URL used by CAPIF to send invoker notifications ([currently unavailable](sdk-issues.md)).
- `cert_generation`: Fields for certificate generation, with `csr_country_name` requiring a two-letter country code.
- `capif_username`: The CAPIF username.
- `capif_password`: The CAPIF password.
- `apfs`: The number of APFs to be onboarded as a provider (e.g., `5`).
- `aefs`: The number of AEFs to be onboarded as a provider (e.g., `2`).
- `debug_mode`: A boolean value to enable or disable SDK logs (e.g., `True` or `False`).
- [`discover_filter`](#configuration-of-discover_filter): Fields for configuring invoker service discovery.
- [`publish_req`](#configuration-of-publish_req): Fields required for API publishing.
- `api_description_path`: The path to the [ServiceAPIDescription](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Publish_Service_API.yaml) JSON file.
## Configuration via `capif_sdk_register.json`
To use this SDK in a local environment for creating and removing users, the following fields must be populated. Note that this feature is not included in the SDK, but instructions can be found in the [CAPIF official repository](https://labs.etsi.org/rep/ocf/capif/-/tree/REL1?ref_type=heads).
- `register_host`: The domain name of the register host.
- `capif_register_port`: The port number of the register host.
- `capif_register_username`: The CAPIF admin username.
- `capif_register_password`: The CAPIF admin password.
- `capif_username`: The CAPIF user username.
- `capif_password`: The CAPIF user password.
- `config_path`: The absolute path to the configuration files folder.
- `uuid`: The UUID required for deregistering a user (only mandatory for deregistration).
This file is used for the following functionalities:
- Register and login.
- Deregister and login.
All fields are required except for `uuid`, which is only mandatory for deregistration. It is recommended to store the `uuid` returned from the registration process for future use.