@@ -8,9 +8,9 @@ This document describes how to create a topic, publish to it and listen to it.
#### 1. Create Event Grid Topic.
Following this will enable creation of topic in all data partitions.
1. Create a Topic. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/blob/master/infra/templates/osdu-r3-mvp/data_partition/main.tf#L301)
2. Assign the Service Principals of the service the role of subscription contributor. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/32)
2. Assign the Service Principals of service the role "EventGrid EventSubscription Contributor". [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/32)
3. Create secrets in Common Resources Key Vault that helps your service identify the event grid topic end point. [Reference](https://community.opengroup.org/osdu/platform/deployment-and-operations/infra-azure-provisioning/-/merge_requests/30/diffs)
Make sure you name them in the fashion "eventgrid-<nameoftopic>topic" and "eventgrid-<nameoftopic>topic-accesskey"
Make sure you name them in the format "eventgrid-\<nameoftopic\>topic" and "eventgrid-\<nameoftopic\>topic-accesskey". For example, if the topic name alias is "testtopic", the keys should look like "eventgrid-testtopic-accesskey" and "eventgrid-testtopic". "eventgrid-test" is not a valid key.
#### 2. Make partition service aware of the new topic.
Partition service maintains the configuration for each infrastructure component.
...
...
@@ -21,11 +21,8 @@ This is to be done per deployment.
#### 3. Make Register service aware of the new Topic
1. Add the topic alias to [topics.json](https://community.opengroup.org/osdu/platform/system/register/-/blob/master/provider/register-azure/src/main/resources/topics.json). If your key is named "eventgrid-testtopic", alias will be "testtopic". Make sure you fill in the values of description, state and examples to ensure that the get Topic API contract is not broken.
Note: The topics.json file mechanism will change soon.
#### 4. Publish to Event Grid Topic.
Use the Event Grid Store to publish the message. [Reference](https://community.opengroup.org/osdu/platform/system/storage/-/blob/master/provider/storage-azure/src/main/java/org/opengroup/osdu/storage/provider/azure/MessageBusImpl.java#L67)
Use the Event Grid Store**class, using core-lib-azure to publish the message. [Reference](https://community.opengroup.org/osdu/platform/system/storage/-/blob/master/provider/storage-azure/src/main/java/org/opengroup/osdu/storage/provider/azure/MessageBusImpl.java#L67)
#### 5. Steps to Subscribe
1. Register your subscriber with Register Service. You will need to expose two endpoints
...
...
@@ -34,8 +31,8 @@ Use the Event Grid Store to publish the message. [Reference](https://community.o
__Post Endpoint__: for receiving notifications. [Reference](https://community.opengroup.org/osdu/platform/system/register/-/blob/master/register-core/src/main/java/org/opengroup/osdu/register/api/test/SubscriberListenerApi.java#L65)
2.Initiate a handshake for each tenant, to register service. Which means for onboarding a service, you have to initiate a handshake, per data partition.
3.Whitelist the endpoints from Istio. Make sure you are not calling entitlements service for the same.
2.For onboarding a service, you have to initiate a handshake, per data partition.
3.The authZ mechanism for the Get endpoint, isn't done by entitlement service.The secret used during the handshake should be used by the service to authorize the jwt.
### Security compliance
1. Please refrain from printing fully qualified topic name in the logs.
...
...
@@ -54,4 +51,7 @@ Not today.
If the nature of messages and subscribers overlap completely with an existing topic, re-use it.
4. __Are there different Topics for OSDU Platform and it's consumers?__
The need is getting evaluated.
\ No newline at end of file
The need is getting evaluated.
5. __The topics.json isn't scalable model__
We are evaluating the need for the bringing up a store.