diff --git a/doc/architecture.md b/doc/architecture.md index ef7fcf9a38faa9536fdd57260489b48507513c07..ea7072e9d8b280a2f1801a8905c1e2bb44c7a2da 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -1,5 +1,41 @@ drawing -# Architecture +# **Architecture** +The CAPIF architecture has three main components, Register Service, Vault and CCF, which are represented in the following image: + +![New Architecture](./images/architecture/New_Architecture.png) + +Each component is separated into different namespaces and all communications between them use Rest APIs. + +Apart from the communication between components, there are 2 other entities that can use them: + +- **Admin/superadmin**: Responsible for managing users with the Register or carrying out special operations in the CCF. +- **Users**: They are those who want to use CAPIF, registering as a user in the Register and as Invoker or Provider in the CCF. + +## **Register NS** + +This namespace belongs to the Register service, and we find 2 components: + +- **Register Service**: It is responsible for managing all users who use CAPIF, in addition to providing the necessary information for its use. +- **Register MONGO DATABASE**: It is the Register database, in it we store all the information about registered users. + +## **Vault NS** + +This namespace belongs to Vault. + +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. + +## **Mon NS** + +This is the main namespace of CAPIF, since it contains all the CCF services in addition to other components: + +- **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. +- **REDIS**: Used for internal communication of services. +- **CAPIF MONGO DATABASE**: CAPIF database, where all information related to CAPIF services such as invokers, registered providers or published services is stored. +- **HELPER**: Service that simplifies integration with third parties such as external management portals. + +## **New Architecture** + +You can check the details of all these changes in the conversation on the [OCF wiki](https://labs.etsi.org/rep/ocf/community/-/wikis/New%20architecture). diff --git a/doc/images/architecture/New_Architecture.png b/doc/images/architecture/New_Architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef7755c59136332a25d9c4ac735fa0784d24442 Binary files /dev/null and b/doc/images/architecture/New_Architecture.png differ