Add Security Service to diagrams
[nonrtric/plt/sme.git] / capifcore / docs / diagrams / registerpoviderandpublishservice.plantuml
1 @startuml Register Provider
2 actor rAppCatalogue
3 actor rApp
4 participant rAppManager
5 box "CAPIF Internal"
6 participant capifcore
7 participant providermanager
8 participant helmmanager
9 participant publishservice
10 participant invokerservice
11 participant discoverservice
12 participant securityservice
13 end box
14
15 rAppCatalogue->rAppManager: Start rApp, with rApp\n descriptor specifying which\n services to expose and consume
16 alt#paleGreen #paleGreen Provider Enrolment
17     rAppManager->capifcore: Register provider with\n APIProviderEnrolmentDetails
18     capifcore->providermanager:Register provider
19     providermanager->providermanager: Create apiProvDomId\n and apiProvFuncIds\n for provided functions
20     providermanager->capifcore: Provider with\n apfId and aefIds
21     capifcore->rAppManager: Provider with\n apfId and aefIds
22 end
23 alt#LightBlue #LightBlue Publish Service
24     rAppManager->capifcore: Publish services\n with providerId\n andServiceAPIDescription
25     capifcore->publishservice: Publish services
26     publishservice->providermanager: Are AEFs are\n registered for provider?
27     providermanager->publishservice: Ok
28     publishservice->publishservice: Create apiId
29     publishservice->helmmanager: Install chart
30     note right: Optional and not decided yet
31     helmmanager->publishservice: Ok
32     publishservice->capifcore: ServiceAPIDescription\n with apiId
33     capifcore->rAppManager: ServiceAPIDescription\n with apiId
34 end
35 alt#coral #coral Register Invoker
36     rAppManager->capifcore: Register invoker with\n APIInvokerEnrolmentDetails
37     capifcore->invokerservice: Register invoker
38     invokerservice->invokerservice: Create apiInvokerId and\n onboardingSecret
39     invokerservice->publishservice: Get available services
40     publishservice->invokerservice: Available services
41     invokerservice->capifcore: Services available\n for the invoker
42     capifcore->rAppManager: Invoker with invokerId\n and available services
43 end
44 rAppManager->rAppCatalogue: Ok
45
46 alt#Yellow #Yellow Discover Services
47     rAppManager->capifcore: Discover services for an\n invoker with apiInvokerId\n and filter parameters
48     capifcore->discoverservice: Get services available\n for the invoker
49     discoverservice->invokerservice: Get services available\n for the invoker
50     invokerservice->publishservice: Get available services
51     publishservice->invokerservice: Available services
52     invokerservice->discoverservice: Services available \nfor the invoker
53     discoverservice->capifcore: Services available for the\n invoker matching the\n filter parameters
54     capifcore->rAppManager: Services available for the\n invoker and matching the\n filter parameters
55 end
56
57 alt#Pink #Pink Security Service
58     rApp->securityservice: Request token\n for service with\n AccessTokenReq
59     securityservice->invokerservice: Is invoker registered?
60     invokerservice->securityservice: Ok
61     securityservice->invokerservice: Is secret valid?
62     invokerservice->securityservice: Ok
63     securityservice->providermanager: Is function providing\n service registered?
64     providermanager->securityservice: Ok
65     securityservice->publishservice: Is service published?
66     publishservice->securityservice: Ok
67     securityservice->rApp: AccessTokenRsp with\n token
68 end
69 @enduml