Skip to content

# Common Operations

## Register new user

In order to use OpenCAPIF we must add a new user. This new user can onboard/register any Invokers or Providers.

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.

The steps to register a new user at Register Service are:

### Admin create User

1) Login as Admin to get access_token:

- Send POST to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/login
  - Include basic Auth Header with Admin credentials
- Get access_token and refresh_token from response

2) Create User:

- Send POST to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/createUser
  - Include Admin access_token in Authorization Bearer Header
  - Body user_registration_body

### User Retrieve access token and other information

1) Retrieve access_token by User:

- Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth
  - Include basic Auth Header with User credentials
- Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example

## Onboard an Invoker

### Steps to perform operation

Preconditions: The administrator must have previously registered the User.

1. Create public and private key at invoker

2. Retrieve access_token by User:

   - Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth
   - Include basic Auth Header with Admin user/password
   - Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example

3. Onboard Invoker:

   - Send POST to https://{CAPIF_HOSTNAME}/api-invoker-management/v1/onboardedInvokers
   - Reference Request Body: invoker onboarding body
   - "onboardingInformation"->"apiInvokerPublicKey": must contain public key generated by Invoker.
   - Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})

### Checks to ensure onboarding

1. Response to Get Auth:

   1. 200 OK
   2. access_token returned.

2. Response to Onboard request must accomplish:

   1. 201 Created
   2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      - apiInvokerId
      - onboardingInformation->apiInvokerCertificate must contain the public key signed.
   3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}

### Example Flow

## Register a Provider

### Steps to Perform operation

1. Create public and private key at provider for provider itself and each function (apf, aef and amf)

2. Retrieve access_token by User:

   - Send GET to https://${CAPIF_REGISTER}:${CAPIF_REGISTER_PORT}/getauth
   - Include basic Auth Header with Admin user/password
   - Retrieve access_token and the urls needed for next requests from response body user_getauth_response_body_example

3. Register Provider:

   - Send POST https://{CAPIF_HOSTNAME}/api-provider-management/v1/registrations
   - body provider request body
   - Send in Authorization Header the Bearer access_token obtained previously (Authorization:Bearer ${access_token})
   - Store each cert in a file with according name.

### Checks to ensure provider registration

1. Response to Register:

   1. 201 Created

2. Response to Get Auth:

   1. 200 OK
   2. access_token returned.

3. Register Provider at Provider Management:

   1. 201 Created response.
   2. body returned must accomplish APIProviderEnrolmentDetails data structure.
   3. For each apiProvFuncs, we must check:
      1. apiProvFuncId is set
      2. apiProvCert under regInfo is set properly
   4. Location Header must contain the new resource URL {apiRoot}/api-provider-management/v1/registrations/{registrationId}

### Example Flow