Is it required to use Protocol Server as a network adaptor?
No, network participants can develop and use their own network adaptor as well.
Can i make customization in the protocol server?
Yes, customizations are allowed. As protocol server is a reference implementation and open source adaptors, features can be contributed.
can i deploy protocol server other than in docker?
Protocol server can be deployed as PM2 deployment as well.
Can i use existing redis, mongodb, rabbitmq servers?
Yes, existing redis, mongodb, rabbitmq servers can be used.
default-bap-client.yml, default-bap-network.yml, default-bpp-client.yml, default-bpp-network.yml should be inside or outside the protocol server folder?
configuration files should be outside the protocol server folder.
How do we install the provider side of the protocol server?
In default-bap-client.yml and default-bpp-client.yml, set app.mode: BPP
How do we install the seeker side of the protocol server?
In default-bap-client.yml and default-bpp-client.yml, set app.mode: BAP
can i run the protocol server on some context path instead of base path "/"?
In deploy-bap.sh and deploy-bpp.sh, change the $HOME to the required context path and run the scripts.
What are the default ports for BAP client and network servers?
5001 and 5002
What are the default ports for BPP client and network servers?
6001 and 6002
Can i use other than default ports for Network and Client server?
Yes, can be changed in the default.yml file.
Do we need to expose both network and client server ip with a domain name?
Only network server IP should be exposed with a domain name, as it receives the requests.
How to connect the Protocol server to the Provider system?
In default-bap-client.yml, set the provider system end point as webhook url.
What is webhook URL in config?
It is the endpoint of BAP/BPP internal System API (POST), to which protocol server will send the API payload.
Does the protocol server append the API action as a path to the webhook URL when it invokes the same?
No, action is available as part of the context object.
What should be done if a participant want to be on multiple domains (learning-experiences / work-opportunities / financial-support / expert-connect) and/or multiple roles (seeker/provider)?
Protocol Server with same role will work for multiple domains. Register with same participant ID in required domains and use the same in protocol server configuration.
How does network server and client server connects together?
Network and client server communicates through RabbitMQ.
How to generate public and private keys?
Protocol server provides a script to generate the keys. Go to the protocol server folder and execute this command: npm run generate-keys.
How to get the subscriber id and url?
Using the registry lookup API, users can fetch the participant details, which includes the subscriber id and url.
Based on what criteria does the protocol server caches the request?
protocol server caches only the search requests based on msg id. If a search request with the same msg id is made a second time, the response is returned from the cache.
What kind of schema validation does the protocol server will do?
below are the validations done by protocol server:
1. for the context object, it checks for schema (well-formedness) , mandatory fields, data types (incase if the field is populated) as per schema
2. for message object, it only checks for the schema (well-formedness) and data types (incase if the field is populated).