diff --git a/.github/workflows/netlify.yml b/.github/workflows/netlify.yml index 1ec0e6ab..1afc440a 100644 --- a/.github/workflows/netlify.yml +++ b/.github/workflows/netlify.yml @@ -22,7 +22,7 @@ jobs: - name: Checkout Current Commit uses: actions/checkout@master with: - ref: ${{ github.head_ref }} + ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 path: main diff --git a/codelabs/ep-connect-ep-broker/codelab.json b/codelabs/ep-connect-ep-broker/codelab.json new file mode 100644 index 00000000..a69d8adb --- /dev/null +++ b/codelabs/ep-connect-ep-broker/codelab.json @@ -0,0 +1,26 @@ +{ + "environment": "web", + "format": "html", + "prefix": "https://storage.googleapis.com", + "mainga": "UA-49880327-14", + "updated": "2024-07-15T11:08:52Z", + "id": "ep-connect-ep-broker", + "duration": 83, + "title": "Connecting Event Portal to a runtime Event Broker", + "summary": "Establishes connectivity between Event Portal, Pub Sub+ Event Broker (the runtime component) and the Event Management Agent. This in turn enables config push", + "source": "main/markdown/ep-connect-ep-broker/ep-connect-ep-broker.md", + "theme": "", + "status": [ + "published" + ], + "category": [ + "solace", + "eventportal" + ], + "tags": [ + "eventportal", + "web" + ], + "feedback": "https://github.com/SolaceDev/solace-dev-codelabs/blob/master/markdown/ep-connect-ep-broker", + "url": "ep-connect-ep-broker" +} diff --git a/codelabs/ep-connect-ep-broker/img/151f911ca6ed9a8c.png b/codelabs/ep-connect-ep-broker/img/151f911ca6ed9a8c.png new file mode 100644 index 00000000..f9decb9b Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/151f911ca6ed9a8c.png differ diff --git a/codelabs/ep-connect-ep-broker/img/2065b4e743188980.png b/codelabs/ep-connect-ep-broker/img/2065b4e743188980.png new file mode 100644 index 00000000..4fcacf3e Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/2065b4e743188980.png differ diff --git a/codelabs/ep-connect-ep-broker/img/24128d44be60d9d1.png b/codelabs/ep-connect-ep-broker/img/24128d44be60d9d1.png new file mode 100644 index 00000000..c28f0fa1 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/24128d44be60d9d1.png differ diff --git a/codelabs/ep-connect-ep-broker/img/2bb759c37467b29d.png b/codelabs/ep-connect-ep-broker/img/2bb759c37467b29d.png new file mode 100644 index 00000000..29c20d15 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/2bb759c37467b29d.png differ diff --git a/codelabs/ep-connect-ep-broker/img/2de2daf031ffdfe4.png b/codelabs/ep-connect-ep-broker/img/2de2daf031ffdfe4.png new file mode 100644 index 00000000..c9223be3 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/2de2daf031ffdfe4.png differ diff --git a/codelabs/ep-connect-ep-broker/img/2fba6ff189407105.png b/codelabs/ep-connect-ep-broker/img/2fba6ff189407105.png new file mode 100644 index 00000000..f8b6739c Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/2fba6ff189407105.png differ diff --git a/codelabs/ep-connect-ep-broker/img/318a6c4730d78659.png b/codelabs/ep-connect-ep-broker/img/318a6c4730d78659.png new file mode 100644 index 00000000..6cfd171a Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/318a6c4730d78659.png differ diff --git a/codelabs/ep-connect-ep-broker/img/44f356558033e250.gif b/codelabs/ep-connect-ep-broker/img/44f356558033e250.gif new file mode 100644 index 00000000..5364f91e Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/44f356558033e250.gif differ diff --git a/codelabs/ep-connect-ep-broker/img/4d2c013e2cdf06cd.png b/codelabs/ep-connect-ep-broker/img/4d2c013e2cdf06cd.png new file mode 100644 index 00000000..07ff31bc Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/4d2c013e2cdf06cd.png differ diff --git a/codelabs/ep-connect-ep-broker/img/52a34201b45f1865.png b/codelabs/ep-connect-ep-broker/img/52a34201b45f1865.png new file mode 100644 index 00000000..067c4299 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/52a34201b45f1865.png differ diff --git a/codelabs/ep-connect-ep-broker/img/6a1e5c2d3dc3f3e.png b/codelabs/ep-connect-ep-broker/img/6a1e5c2d3dc3f3e.png new file mode 100644 index 00000000..98546526 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/6a1e5c2d3dc3f3e.png differ diff --git a/codelabs/ep-connect-ep-broker/img/6e2e573afd5eb882.png b/codelabs/ep-connect-ep-broker/img/6e2e573afd5eb882.png new file mode 100644 index 00000000..4f71fa37 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/6e2e573afd5eb882.png differ diff --git a/codelabs/ep-connect-ep-broker/img/71beac5b37e5a024.png b/codelabs/ep-connect-ep-broker/img/71beac5b37e5a024.png new file mode 100644 index 00000000..c15d6a53 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/71beac5b37e5a024.png differ diff --git a/codelabs/ep-connect-ep-broker/img/74eb622af73b83ee.png b/codelabs/ep-connect-ep-broker/img/74eb622af73b83ee.png new file mode 100644 index 00000000..48dc4258 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/74eb622af73b83ee.png differ diff --git a/codelabs/ep-connect-ep-broker/img/79206bc54af0b2d8.png b/codelabs/ep-connect-ep-broker/img/79206bc54af0b2d8.png new file mode 100644 index 00000000..1726ca97 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/79206bc54af0b2d8.png differ diff --git a/codelabs/ep-connect-ep-broker/img/967b8e81145dd7d3.png b/codelabs/ep-connect-ep-broker/img/967b8e81145dd7d3.png new file mode 100644 index 00000000..b890db87 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/967b8e81145dd7d3.png differ diff --git a/codelabs/ep-connect-ep-broker/img/988e2f385b27d15c.png b/codelabs/ep-connect-ep-broker/img/988e2f385b27d15c.png new file mode 100644 index 00000000..56d0a815 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/988e2f385b27d15c.png differ diff --git a/codelabs/ep-connect-ep-broker/img/a8155ca3d8ed56e0.png b/codelabs/ep-connect-ep-broker/img/a8155ca3d8ed56e0.png new file mode 100644 index 00000000..1acfc624 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/a8155ca3d8ed56e0.png differ diff --git a/codelabs/ep-connect-ep-broker/img/ab0797a7e1af34de.png b/codelabs/ep-connect-ep-broker/img/ab0797a7e1af34de.png new file mode 100644 index 00000000..d825764f Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/ab0797a7e1af34de.png differ diff --git a/codelabs/ep-connect-ep-broker/img/ac671c39e4af26d3.png b/codelabs/ep-connect-ep-broker/img/ac671c39e4af26d3.png new file mode 100644 index 00000000..cecff3f4 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/ac671c39e4af26d3.png differ diff --git a/codelabs/ep-connect-ep-broker/img/b5b70e4539c3292a.png b/codelabs/ep-connect-ep-broker/img/b5b70e4539c3292a.png new file mode 100644 index 00000000..f1ed3164 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/b5b70e4539c3292a.png differ diff --git a/codelabs/ep-connect-ep-broker/img/c13dcb7cf15bf0b8.png b/codelabs/ep-connect-ep-broker/img/c13dcb7cf15bf0b8.png new file mode 100644 index 00000000..f1e23d9a Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/c13dcb7cf15bf0b8.png differ diff --git a/codelabs/ep-connect-ep-broker/img/c602076eca3bdab8.png b/codelabs/ep-connect-ep-broker/img/c602076eca3bdab8.png new file mode 100644 index 00000000..b1c85371 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/c602076eca3bdab8.png differ diff --git a/codelabs/ep-connect-ep-broker/img/d40fe8d16d4d8a1e.png b/codelabs/ep-connect-ep-broker/img/d40fe8d16d4d8a1e.png new file mode 100644 index 00000000..977f9364 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/d40fe8d16d4d8a1e.png differ diff --git a/codelabs/ep-connect-ep-broker/img/d4e9cb042ed73a13.png b/codelabs/ep-connect-ep-broker/img/d4e9cb042ed73a13.png new file mode 100644 index 00000000..a191389b Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/d4e9cb042ed73a13.png differ diff --git a/codelabs/ep-connect-ep-broker/img/d50a135d405cb909.png b/codelabs/ep-connect-ep-broker/img/d50a135d405cb909.png new file mode 100644 index 00000000..0d99ca1d Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/d50a135d405cb909.png differ diff --git a/codelabs/ep-connect-ep-broker/img/d8a1c70cfa9f8b31.png b/codelabs/ep-connect-ep-broker/img/d8a1c70cfa9f8b31.png new file mode 100644 index 00000000..6accbd0c Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/d8a1c70cfa9f8b31.png differ diff --git a/codelabs/ep-connect-ep-broker/img/db0733ae1b8a522f.png b/codelabs/ep-connect-ep-broker/img/db0733ae1b8a522f.png new file mode 100644 index 00000000..46d52197 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/db0733ae1b8a522f.png differ diff --git a/codelabs/ep-connect-ep-broker/img/dd2a4855a8f7d870.png b/codelabs/ep-connect-ep-broker/img/dd2a4855a8f7d870.png new file mode 100644 index 00000000..a75d8dab Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/dd2a4855a8f7d870.png differ diff --git a/codelabs/ep-connect-ep-broker/img/e30b7cbb0cd4f8a3.png b/codelabs/ep-connect-ep-broker/img/e30b7cbb0cd4f8a3.png new file mode 100644 index 00000000..e37078be Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/e30b7cbb0cd4f8a3.png differ diff --git a/codelabs/ep-connect-ep-broker/img/ee17bd7beeb48610.png b/codelabs/ep-connect-ep-broker/img/ee17bd7beeb48610.png new file mode 100644 index 00000000..9fc9a7f3 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/ee17bd7beeb48610.png differ diff --git a/codelabs/ep-connect-ep-broker/img/f0ce240df6deffec.png b/codelabs/ep-connect-ep-broker/img/f0ce240df6deffec.png new file mode 100644 index 00000000..7a0e4afb Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/f0ce240df6deffec.png differ diff --git a/codelabs/ep-connect-ep-broker/img/f4adb3b2e3f1cd20.png b/codelabs/ep-connect-ep-broker/img/f4adb3b2e3f1cd20.png new file mode 100644 index 00000000..ec08dbd5 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/f4adb3b2e3f1cd20.png differ diff --git a/codelabs/ep-connect-ep-broker/img/fc261df67c816ac5.png b/codelabs/ep-connect-ep-broker/img/fc261df67c816ac5.png new file mode 100644 index 00000000..ee608861 Binary files /dev/null and b/codelabs/ep-connect-ep-broker/img/fc261df67c816ac5.png differ diff --git a/codelabs/ep-connect-ep-broker/index.html b/codelabs/ep-connect-ep-broker/index.html new file mode 100644 index 00000000..3e918fdf --- /dev/null +++ b/codelabs/ep-connect-ep-broker/index.html @@ -0,0 +1,200 @@ + + + + + + + + + Connecting Event Portal to a runtime Event Broker + + + + + + + + + + +

Delivering innovative event-driven features to the hands of users means moving micro-integrations from development to production. That means getting the right event infrastructure in the right environment at the right time. The PubSub+ Event Portal makes that easier, faster and more resilient.

+

This codelab establishes connectivity between Event Portal, PubSub+ Event Broker (the runtime event broker that moves events around) and the Event Management Agent. Once you've established that connectivity, the next codelab explores reusing events you already have, automating event access and auto-generating code for Event Driven applications..

+ + + +
+ + + + + + + + +

Start a cloud event broker

+
    +
  1. Login to PubSub+ Cloud and click on Cluster Manager

    Image

  2. +
  3. Click on Create Service

    Image

  4. +
  5. In the Create Service window, name your service aks-centralus-prod and pick the developer service type. Then click on the green Create Service button.

    Image

  6. +
  7. After a few minutes, the deployment of the service completes and you should see something like this.

    Image

    That's all it takes to create a running event broker.
  8. +
+

Get connection info

+

To connect your runtime event broker to your design time model in Event Portal you'll need some information later. It's easier to get it now.

+
    +
  1. Click on the newly created aks-centralus-prod Service button
  2. +
  3. Click on the Manage tab (1), then expand the SEMP - REST API section (2)

    Image

  4. +
  5. Copy the following values into a text editor URL to the SEMP API (1) Message VPN name (2) Username (3) Password (4)

    Image
  6. +
+ + + +
+ + +

Get an Event Portal Access Token

+
    +
  1. Log into your newly created Solace Platform Account
  2. +
  3. Go to Token Management in Event Portal
    <Image

  4. +
  5. Create a token
    Image

  6. +
  7. Name the token Demo Setup
  8. +
  9. Give the token full Read and Write access to:
    Event Portal 2.0
    Event Portal
    Account Management
    Environments
  10. +
  11. Click on Create Token

    Image

  12. +
  13. Confirm that your token has the following permissions:
    Image

  14. +
  15. Copy the token value and save it in a text file on your desktop.
  16. +
+ +

Import scripts into Postman

+
    +
  1. Launch the desktop Postman application
  2. +
  3. Download the Postman Collection and Environment files below:
    Environment file
    Script to populate Event Portal
    Script to remove all objects from Event Portal
  4. +
  5. Drag the files from your hard drive to the left-hand column of Postman to import
    Image

  6. +
+

Configure Postman with your Event Portal token

+
    +
  1. Open the environment variables tab (1), select the Event Portal Environment and (2) set it as the active Environment.
    Image

  2. +
+ +
    +
  1. Fill in the CURRENT VALUE column for api_key with the token you just generated in Event Portal.
    Image

  2. +
  3. Save the environment variables.
    Image

  4. +
+

Run the Postman script

+
    +
  1. Switch back to the Collections tab, hit the three dots next to "Generate and populate Event Portal demo", then click "Run collection"
    Image

  2. +
  3. On the next screen, click on Run Generate and populate Event Portal
    Image

  4. +
  5. Wait for the script to complete. Be patient, there are a lot of commands to run!
  6. +
+ + + +
+ + +
    +
  1. To guide application promotion, Event Portal models all of your runtime environments. To do this, go to the profile icon in the lower left hand side, then click on Environments.
    Image

  2. +
  3. To allow Event Portal to configure the runtime environment, click on the three dots, then select Enable Runtime Configuration. Do this for both Test and Prod.
    Image

  4. +
+ + +
+ + + +
    +
  1. Open the Runtime Event Manager (1), then go to the Event Management Agent tab (2). Click on the 3 dots next to your Event Management Agent (the script created one for you). Then click on Edit Connection Details (4).
    Image

  2. +
  3. On the next screen, click on the three dots next to the PROD-solace event broker, then click on "Edit Connection Details"
    Image

  4. +
  5. Update the Message VPN (1), SEMP username (2) and SEMP URL (3) to point to your cloud broker. You will recall you saved them to a text pad in a previous step. You will use the admin password later. Once properly configured, click on Save Changes (4)
    Image

  6. +
+

Click on the Save & Create connection file button as shown : 16.a.png

+ + +
+ + + + + +

Now it's time to connect the Event Portal model and the runtime broker using the Event Management Agent.

+
    +
  1. From the main Runtime Event Manager tab, click on the three dots and go to Install Event Management Agent
    Image

  2. +
  3. Click on the download button and save the file to your hard drive.
    Image

  4. +
  5. Execute the following commands at the command line:
  6. +
+
export PASSWORD_ENV_VAR_1=envVarPassword1
+export PASSWORD_ENV_VAR_2=envVarPassword2
+docker run -d -p 8180:8180 -v /absolute/path/to/your/ema/config.yml:/config/ema.yml \
+--env PRODsolace_SOLACE_SEMP_PASSWORD=${PASSWORD_ENV_VAR_1} \
+--env TESTsolace_SOLACE_SEMP_PASSWORD=${PASSWORD_ENV_VAR_2} \
+--name event-management-agent solace/event-management-agent:latest
+
+

where PASSWORD_ENV_VAR_1 is the password for your cloud broker and /absolute/path/to/your/ema/config.yml points to your downloaded EMA configuration.

+
    +
  1. Confirm the connection by running:
    docker logs -f event-management-agent
  2. +
+

The last line should be: Started event-management agent
Image

+ +
    +
  1. Further confirm by going back to the Event Management Agents tab. Look to see your EMA has a green "Connected" label
    Image

  2. +
+ + +
+ + +

Since the EMA is used for both audit and for config push, we will confirm broker connectivity by running an audit.

+
    +
  1. Go to Runtime Event Manager, then click on the us-central-solace-Prod modelled event mesh.
    Image

  2. +
  3. Click on Audit, then "Run Discovery Scan"
    Image

  4. +
  5. Confirm you want to run a Discovery Scan
    Image

  6. +
  7. If you see this message, you've successfully created a connection between the EMA and your event broker.
    Image

  8. +
+

You are done!

+ + +
+ + +

Delivering innovative event-driven features to the hands of users means moving micro-integrations from development to production. That means getting the right event infrastructure in the right environment at the right time. Event Portal makes that easier, faster and more resilient.

+

Now that you've established that connectivity, you can explore how Event Portal reuses events you already have, automates event access and auto-generates code for Event Driven applications..

+

Soly Image Caption

+

Thanks for participating in this codelab! Let us know what you thought in the Solace Community Forum! If you found any issues along the way we'd appreciate it if you'd raise them by clicking the Report a mistake button at the bottom left of this codelab.

+ + +
+ +
+ + + + + + + + + diff --git a/codelabs/ep-lifecycle/codelab.json b/codelabs/ep-lifecycle/codelab.json new file mode 100644 index 00000000..32f28419 --- /dev/null +++ b/codelabs/ep-lifecycle/codelab.json @@ -0,0 +1,26 @@ +{ + "environment": "web", + "format": "html", + "prefix": "https://storage.googleapis.com", + "mainga": "UA-49880327-14", + "updated": "2024-07-15T11:13:36Z", + "id": "ep-lifecycle", + "duration": 71, + "title": "Event Portal: event-driven innovation that's faster, easier, more resilient", + "summary": "See how Event Portal can guide you on a smooth path from fantastic idea to the hands of your users", + "source": "main/markdown/ep-lifecycle/ep-lifecycle.md", + "theme": "", + "status": [ + "published" + ], + "category": [ + "solace", + "eventportal" + ], + "tags": [ + "eventportal", + "web" + ], + "feedback": "https://github.com/SolaceDev/solace-dev-codelabs/blob/master/markdown/ep-lifecycle", + "url": "ep-lifecycle" +} diff --git a/codelabs/ep-lifecycle/img/102b52ace447c71a.png b/codelabs/ep-lifecycle/img/102b52ace447c71a.png new file mode 100644 index 00000000..9003aa7f Binary files /dev/null and b/codelabs/ep-lifecycle/img/102b52ace447c71a.png differ diff --git a/codelabs/ep-lifecycle/img/125cf0adc0cc19ff.png b/codelabs/ep-lifecycle/img/125cf0adc0cc19ff.png new file mode 100644 index 00000000..173964ae Binary files /dev/null and b/codelabs/ep-lifecycle/img/125cf0adc0cc19ff.png differ diff --git a/codelabs/ep-lifecycle/img/1957279cbbe4b7a6.png b/codelabs/ep-lifecycle/img/1957279cbbe4b7a6.png new file mode 100644 index 00000000..b46331ef Binary files /dev/null and b/codelabs/ep-lifecycle/img/1957279cbbe4b7a6.png differ diff --git a/codelabs/ep-lifecycle/img/1e318c0daed7f9ac.png b/codelabs/ep-lifecycle/img/1e318c0daed7f9ac.png new file mode 100644 index 00000000..af1ed284 Binary files /dev/null and b/codelabs/ep-lifecycle/img/1e318c0daed7f9ac.png differ diff --git a/codelabs/ep-lifecycle/img/2e47349569e9e01a.png b/codelabs/ep-lifecycle/img/2e47349569e9e01a.png new file mode 100644 index 00000000..764d129f Binary files /dev/null and b/codelabs/ep-lifecycle/img/2e47349569e9e01a.png differ diff --git a/codelabs/ep-lifecycle/img/2e66b21246e885f4.png b/codelabs/ep-lifecycle/img/2e66b21246e885f4.png new file mode 100644 index 00000000..fa39a752 Binary files /dev/null and b/codelabs/ep-lifecycle/img/2e66b21246e885f4.png differ diff --git a/codelabs/ep-lifecycle/img/3663fe923281af2e.png b/codelabs/ep-lifecycle/img/3663fe923281af2e.png new file mode 100644 index 00000000..95f19e10 Binary files /dev/null and b/codelabs/ep-lifecycle/img/3663fe923281af2e.png differ diff --git a/codelabs/ep-lifecycle/img/3cd61532045d8f80.png b/codelabs/ep-lifecycle/img/3cd61532045d8f80.png new file mode 100644 index 00000000..a14dc92c Binary files /dev/null and b/codelabs/ep-lifecycle/img/3cd61532045d8f80.png differ diff --git a/codelabs/ep-lifecycle/img/40d226b48da3c9fc.png b/codelabs/ep-lifecycle/img/40d226b48da3c9fc.png new file mode 100644 index 00000000..a51ca253 Binary files /dev/null and b/codelabs/ep-lifecycle/img/40d226b48da3c9fc.png differ diff --git a/codelabs/ep-lifecycle/img/44f356558033e250.gif b/codelabs/ep-lifecycle/img/44f356558033e250.gif new file mode 100644 index 00000000..5364f91e Binary files /dev/null and b/codelabs/ep-lifecycle/img/44f356558033e250.gif differ diff --git a/codelabs/ep-lifecycle/img/45845665c652df8b.png b/codelabs/ep-lifecycle/img/45845665c652df8b.png new file mode 100644 index 00000000..cd386770 Binary files /dev/null and b/codelabs/ep-lifecycle/img/45845665c652df8b.png differ diff --git a/codelabs/ep-lifecycle/img/4803dd349d035167.png b/codelabs/ep-lifecycle/img/4803dd349d035167.png new file mode 100644 index 00000000..d1fece94 Binary files /dev/null and b/codelabs/ep-lifecycle/img/4803dd349d035167.png differ diff --git a/codelabs/ep-lifecycle/img/55d14220f35a54fc.png b/codelabs/ep-lifecycle/img/55d14220f35a54fc.png new file mode 100644 index 00000000..a0526e88 Binary files /dev/null and b/codelabs/ep-lifecycle/img/55d14220f35a54fc.png differ diff --git a/codelabs/ep-lifecycle/img/59cd71233a8d1e3b.png b/codelabs/ep-lifecycle/img/59cd71233a8d1e3b.png new file mode 100644 index 00000000..0dbac95b Binary files /dev/null and b/codelabs/ep-lifecycle/img/59cd71233a8d1e3b.png differ diff --git a/codelabs/ep-lifecycle/img/62fca0935cdf69d7.png b/codelabs/ep-lifecycle/img/62fca0935cdf69d7.png new file mode 100644 index 00000000..c4a8b69e Binary files /dev/null and b/codelabs/ep-lifecycle/img/62fca0935cdf69d7.png differ diff --git a/codelabs/ep-lifecycle/img/6758deaa5e458a7c.png b/codelabs/ep-lifecycle/img/6758deaa5e458a7c.png new file mode 100644 index 00000000..30173251 Binary files /dev/null and b/codelabs/ep-lifecycle/img/6758deaa5e458a7c.png differ diff --git a/codelabs/ep-lifecycle/img/6a5d14e6e1059385.png b/codelabs/ep-lifecycle/img/6a5d14e6e1059385.png new file mode 100644 index 00000000..53bf0bb1 Binary files /dev/null and b/codelabs/ep-lifecycle/img/6a5d14e6e1059385.png differ diff --git a/codelabs/ep-lifecycle/img/6cc75765efa9c122.png b/codelabs/ep-lifecycle/img/6cc75765efa9c122.png new file mode 100644 index 00000000..24e4eb11 Binary files /dev/null and b/codelabs/ep-lifecycle/img/6cc75765efa9c122.png differ diff --git a/codelabs/ep-lifecycle/img/6d9bc4480858f78a.png b/codelabs/ep-lifecycle/img/6d9bc4480858f78a.png new file mode 100644 index 00000000..bcdbe51a Binary files /dev/null and b/codelabs/ep-lifecycle/img/6d9bc4480858f78a.png differ diff --git a/codelabs/ep-lifecycle/img/72752449d31f6e23.png b/codelabs/ep-lifecycle/img/72752449d31f6e23.png new file mode 100644 index 00000000..e39d0afd Binary files /dev/null and b/codelabs/ep-lifecycle/img/72752449d31f6e23.png differ diff --git a/codelabs/ep-lifecycle/img/77ea68c336e1f4ca.png b/codelabs/ep-lifecycle/img/77ea68c336e1f4ca.png new file mode 100644 index 00000000..8146f848 Binary files /dev/null and b/codelabs/ep-lifecycle/img/77ea68c336e1f4ca.png differ diff --git a/codelabs/ep-lifecycle/img/788e417964665cba.png b/codelabs/ep-lifecycle/img/788e417964665cba.png new file mode 100644 index 00000000..67b31a45 Binary files /dev/null and b/codelabs/ep-lifecycle/img/788e417964665cba.png differ diff --git a/codelabs/ep-lifecycle/img/78d3721cf1042ad6.png b/codelabs/ep-lifecycle/img/78d3721cf1042ad6.png new file mode 100644 index 00000000..655c3ae6 Binary files /dev/null and b/codelabs/ep-lifecycle/img/78d3721cf1042ad6.png differ diff --git a/codelabs/ep-lifecycle/img/7b5c691d210d1902.png b/codelabs/ep-lifecycle/img/7b5c691d210d1902.png new file mode 100644 index 00000000..06489a0d Binary files /dev/null and b/codelabs/ep-lifecycle/img/7b5c691d210d1902.png differ diff --git a/codelabs/ep-lifecycle/img/7ba297766a146259.png b/codelabs/ep-lifecycle/img/7ba297766a146259.png new file mode 100644 index 00000000..67fda9c4 Binary files /dev/null and b/codelabs/ep-lifecycle/img/7ba297766a146259.png differ diff --git a/codelabs/ep-lifecycle/img/7c43288445fdd720.png b/codelabs/ep-lifecycle/img/7c43288445fdd720.png new file mode 100644 index 00000000..537d2ffa Binary files /dev/null and b/codelabs/ep-lifecycle/img/7c43288445fdd720.png differ diff --git a/codelabs/ep-lifecycle/img/7dbde4c236f5e050.png b/codelabs/ep-lifecycle/img/7dbde4c236f5e050.png new file mode 100644 index 00000000..67eda278 Binary files /dev/null and b/codelabs/ep-lifecycle/img/7dbde4c236f5e050.png differ diff --git a/codelabs/ep-lifecycle/img/81400a01072c8c1e.png b/codelabs/ep-lifecycle/img/81400a01072c8c1e.png new file mode 100644 index 00000000..b876e621 Binary files /dev/null and b/codelabs/ep-lifecycle/img/81400a01072c8c1e.png differ diff --git a/codelabs/ep-lifecycle/img/834967177754e04c.png b/codelabs/ep-lifecycle/img/834967177754e04c.png new file mode 100644 index 00000000..6a9dd504 Binary files /dev/null and b/codelabs/ep-lifecycle/img/834967177754e04c.png differ diff --git a/codelabs/ep-lifecycle/img/84e519bc8f391e2.png b/codelabs/ep-lifecycle/img/84e519bc8f391e2.png new file mode 100644 index 00000000..7ff21218 Binary files /dev/null and b/codelabs/ep-lifecycle/img/84e519bc8f391e2.png differ diff --git a/codelabs/ep-lifecycle/img/8b6fff5cc1162a08.png b/codelabs/ep-lifecycle/img/8b6fff5cc1162a08.png new file mode 100644 index 00000000..b49bb11d Binary files /dev/null and b/codelabs/ep-lifecycle/img/8b6fff5cc1162a08.png differ diff --git a/codelabs/ep-lifecycle/img/8e49785f6ff483f0.png b/codelabs/ep-lifecycle/img/8e49785f6ff483f0.png new file mode 100644 index 00000000..5b6a9aa6 Binary files /dev/null and b/codelabs/ep-lifecycle/img/8e49785f6ff483f0.png differ diff --git a/codelabs/ep-lifecycle/img/8ef3b966a07f490e.png b/codelabs/ep-lifecycle/img/8ef3b966a07f490e.png new file mode 100644 index 00000000..2a98946a Binary files /dev/null and b/codelabs/ep-lifecycle/img/8ef3b966a07f490e.png differ diff --git a/codelabs/ep-lifecycle/img/90b4d605d8af0802.png b/codelabs/ep-lifecycle/img/90b4d605d8af0802.png new file mode 100644 index 00000000..52f52bc5 Binary files /dev/null and b/codelabs/ep-lifecycle/img/90b4d605d8af0802.png differ diff --git a/codelabs/ep-lifecycle/img/9253a58dc34a70db.png b/codelabs/ep-lifecycle/img/9253a58dc34a70db.png new file mode 100644 index 00000000..f31a70bf Binary files /dev/null and b/codelabs/ep-lifecycle/img/9253a58dc34a70db.png differ diff --git a/codelabs/ep-lifecycle/img/93de13a57e3dfa49.png b/codelabs/ep-lifecycle/img/93de13a57e3dfa49.png new file mode 100644 index 00000000..fdb06451 Binary files /dev/null and b/codelabs/ep-lifecycle/img/93de13a57e3dfa49.png differ diff --git a/codelabs/ep-lifecycle/img/9abc3041cad5cec8.png b/codelabs/ep-lifecycle/img/9abc3041cad5cec8.png new file mode 100644 index 00000000..65b751b3 Binary files /dev/null and b/codelabs/ep-lifecycle/img/9abc3041cad5cec8.png differ diff --git a/codelabs/ep-lifecycle/img/9d0e79a073179cb.png b/codelabs/ep-lifecycle/img/9d0e79a073179cb.png new file mode 100644 index 00000000..3a1d8ff7 Binary files /dev/null and b/codelabs/ep-lifecycle/img/9d0e79a073179cb.png differ diff --git a/codelabs/ep-lifecycle/img/a37a27ca0d1395fa.png b/codelabs/ep-lifecycle/img/a37a27ca0d1395fa.png new file mode 100644 index 00000000..a616abfa Binary files /dev/null and b/codelabs/ep-lifecycle/img/a37a27ca0d1395fa.png differ diff --git a/codelabs/ep-lifecycle/img/a47a45c90ec29441.png b/codelabs/ep-lifecycle/img/a47a45c90ec29441.png new file mode 100644 index 00000000..aa945964 Binary files /dev/null and b/codelabs/ep-lifecycle/img/a47a45c90ec29441.png differ diff --git a/codelabs/ep-lifecycle/img/a730bde567da17aa.png b/codelabs/ep-lifecycle/img/a730bde567da17aa.png new file mode 100644 index 00000000..290d6163 Binary files /dev/null and b/codelabs/ep-lifecycle/img/a730bde567da17aa.png differ diff --git a/codelabs/ep-lifecycle/img/ac81d0a15233f367.png b/codelabs/ep-lifecycle/img/ac81d0a15233f367.png new file mode 100644 index 00000000..03337b1d Binary files /dev/null and b/codelabs/ep-lifecycle/img/ac81d0a15233f367.png differ diff --git a/codelabs/ep-lifecycle/img/b05c2a11bd7ff6d7.png b/codelabs/ep-lifecycle/img/b05c2a11bd7ff6d7.png new file mode 100644 index 00000000..e8e07274 Binary files /dev/null and b/codelabs/ep-lifecycle/img/b05c2a11bd7ff6d7.png differ diff --git a/codelabs/ep-lifecycle/img/b36f4136605e5aff.png b/codelabs/ep-lifecycle/img/b36f4136605e5aff.png new file mode 100644 index 00000000..a5e48e89 Binary files /dev/null and b/codelabs/ep-lifecycle/img/b36f4136605e5aff.png differ diff --git a/codelabs/ep-lifecycle/img/b4e02fca4e3213a5.png b/codelabs/ep-lifecycle/img/b4e02fca4e3213a5.png new file mode 100644 index 00000000..f2f30abb Binary files /dev/null and b/codelabs/ep-lifecycle/img/b4e02fca4e3213a5.png differ diff --git a/codelabs/ep-lifecycle/img/b5f64b5a5c8ec2b8.png b/codelabs/ep-lifecycle/img/b5f64b5a5c8ec2b8.png new file mode 100644 index 00000000..2de7a890 Binary files /dev/null and b/codelabs/ep-lifecycle/img/b5f64b5a5c8ec2b8.png differ diff --git a/codelabs/ep-lifecycle/img/b7a472d3ead7d064.png b/codelabs/ep-lifecycle/img/b7a472d3ead7d064.png new file mode 100644 index 00000000..4be5e9e0 Binary files /dev/null and b/codelabs/ep-lifecycle/img/b7a472d3ead7d064.png differ diff --git a/codelabs/ep-lifecycle/img/b99a319bc01c88d2.png b/codelabs/ep-lifecycle/img/b99a319bc01c88d2.png new file mode 100644 index 00000000..261cdd2c Binary files /dev/null and b/codelabs/ep-lifecycle/img/b99a319bc01c88d2.png differ diff --git a/codelabs/ep-lifecycle/img/babddc5fef3b6600.png b/codelabs/ep-lifecycle/img/babddc5fef3b6600.png new file mode 100644 index 00000000..8e9b7efa Binary files /dev/null and b/codelabs/ep-lifecycle/img/babddc5fef3b6600.png differ diff --git a/codelabs/ep-lifecycle/img/c5e164e0967289ae.png b/codelabs/ep-lifecycle/img/c5e164e0967289ae.png new file mode 100644 index 00000000..9d4dff90 Binary files /dev/null and b/codelabs/ep-lifecycle/img/c5e164e0967289ae.png differ diff --git a/codelabs/ep-lifecycle/img/c6602818e35f2f98.png b/codelabs/ep-lifecycle/img/c6602818e35f2f98.png new file mode 100644 index 00000000..154848a2 Binary files /dev/null and b/codelabs/ep-lifecycle/img/c6602818e35f2f98.png differ diff --git a/codelabs/ep-lifecycle/img/c72b5c990c5c1a09.png b/codelabs/ep-lifecycle/img/c72b5c990c5c1a09.png new file mode 100644 index 00000000..00dc64db Binary files /dev/null and b/codelabs/ep-lifecycle/img/c72b5c990c5c1a09.png differ diff --git a/codelabs/ep-lifecycle/img/d11457e94cb10feb.png b/codelabs/ep-lifecycle/img/d11457e94cb10feb.png new file mode 100644 index 00000000..592f28f7 Binary files /dev/null and b/codelabs/ep-lifecycle/img/d11457e94cb10feb.png differ diff --git a/codelabs/ep-lifecycle/img/d660b25ba821037.png b/codelabs/ep-lifecycle/img/d660b25ba821037.png new file mode 100644 index 00000000..877b6d2d Binary files /dev/null and b/codelabs/ep-lifecycle/img/d660b25ba821037.png differ diff --git a/codelabs/ep-lifecycle/img/d7ef471b9fd0a054.png b/codelabs/ep-lifecycle/img/d7ef471b9fd0a054.png new file mode 100644 index 00000000..09e2c190 Binary files /dev/null and b/codelabs/ep-lifecycle/img/d7ef471b9fd0a054.png differ diff --git a/codelabs/ep-lifecycle/img/d99b0caa38a9d74.png b/codelabs/ep-lifecycle/img/d99b0caa38a9d74.png new file mode 100644 index 00000000..81ba63c9 Binary files /dev/null and b/codelabs/ep-lifecycle/img/d99b0caa38a9d74.png differ diff --git a/codelabs/ep-lifecycle/img/ddcea2555636e59a.png b/codelabs/ep-lifecycle/img/ddcea2555636e59a.png new file mode 100644 index 00000000..510f8b81 Binary files /dev/null and b/codelabs/ep-lifecycle/img/ddcea2555636e59a.png differ diff --git a/codelabs/ep-lifecycle/img/de68f31ebe50ebdb.png b/codelabs/ep-lifecycle/img/de68f31ebe50ebdb.png new file mode 100644 index 00000000..eae28801 Binary files /dev/null and b/codelabs/ep-lifecycle/img/de68f31ebe50ebdb.png differ diff --git a/codelabs/ep-lifecycle/img/e1006862542e84ec.png b/codelabs/ep-lifecycle/img/e1006862542e84ec.png new file mode 100644 index 00000000..e00cd262 Binary files /dev/null and b/codelabs/ep-lifecycle/img/e1006862542e84ec.png differ diff --git a/codelabs/ep-lifecycle/img/e5b5d6710fbf8d8f.png b/codelabs/ep-lifecycle/img/e5b5d6710fbf8d8f.png new file mode 100644 index 00000000..b9544b02 Binary files /dev/null and b/codelabs/ep-lifecycle/img/e5b5d6710fbf8d8f.png differ diff --git a/codelabs/ep-lifecycle/img/e90b36a4225f8f60.png b/codelabs/ep-lifecycle/img/e90b36a4225f8f60.png new file mode 100644 index 00000000..81868cf6 Binary files /dev/null and b/codelabs/ep-lifecycle/img/e90b36a4225f8f60.png differ diff --git a/codelabs/ep-lifecycle/img/e9dcd70ee5db90ce.png b/codelabs/ep-lifecycle/img/e9dcd70ee5db90ce.png new file mode 100644 index 00000000..aa826a7f Binary files /dev/null and b/codelabs/ep-lifecycle/img/e9dcd70ee5db90ce.png differ diff --git a/codelabs/ep-lifecycle/img/ee476ad18f9a8639.png b/codelabs/ep-lifecycle/img/ee476ad18f9a8639.png new file mode 100644 index 00000000..0eedb7cb Binary files /dev/null and b/codelabs/ep-lifecycle/img/ee476ad18f9a8639.png differ diff --git a/codelabs/ep-lifecycle/img/f2918fbe04d96cb8.png b/codelabs/ep-lifecycle/img/f2918fbe04d96cb8.png new file mode 100644 index 00000000..02a87b3d Binary files /dev/null and b/codelabs/ep-lifecycle/img/f2918fbe04d96cb8.png differ diff --git a/codelabs/ep-lifecycle/img/f6350c4e9b2be11c.png b/codelabs/ep-lifecycle/img/f6350c4e9b2be11c.png new file mode 100644 index 00000000..86c00c58 Binary files /dev/null and b/codelabs/ep-lifecycle/img/f6350c4e9b2be11c.png differ diff --git a/codelabs/ep-lifecycle/img/f89539c6296a49f0.png b/codelabs/ep-lifecycle/img/f89539c6296a49f0.png new file mode 100644 index 00000000..3b6b1c23 Binary files /dev/null and b/codelabs/ep-lifecycle/img/f89539c6296a49f0.png differ diff --git a/codelabs/ep-lifecycle/img/ffd44ada7f57a5f9.png b/codelabs/ep-lifecycle/img/ffd44ada7f57a5f9.png new file mode 100644 index 00000000..f711e807 Binary files /dev/null and b/codelabs/ep-lifecycle/img/ffd44ada7f57a5f9.png differ diff --git a/codelabs/ep-lifecycle/index.html b/codelabs/ep-lifecycle/index.html new file mode 100644 index 00000000..c94995fa --- /dev/null +++ b/codelabs/ep-lifecycle/index.html @@ -0,0 +1,237 @@ + + + + + + + + + Event Portal: event-driven innovation that's faster, easier, more resilient + + + + + + + + + + +

Delivering innovative event-driven features to the hands of users means moving micro-integrations from development to production. That means getting the right event infrastructure in the right environment at the right time. Event Portal makes that easier, faster and more resilient.

+

This code lab takes you through the lifecycle of a new event-driven application, from finding relevant events to jump start development, to generating rock-solid code, to automated event configuration with your existing CICD pipeline.

+ + +
+ + +

For all sections, you'll need to:

+ +

For config push and CICD integration sections, you will also need to:

+ + + +
+ + +

Find interesting events to use in your solution

+
    +
  1. In the home screen of Solace Cloud, click on Catalog.
    Image

  2. +
  3. Within Catalog, click on the Events tab, then search for customer in the search box. You'll note that there are two existing customer events that would be perfect.
    Image

  4. +
  5. Also, look for order related events by searching for order
    Image

  6. +
+ + +
+ + +

Create an Application Domain to house your application, event and schema

+
    +
  1. Now that we have candidate events, click on the Designer icon in the left bar (1), then Create Application Domain. (2)
    Image

  2. +
  3. Configure the domain:
    Name (1): Customer360
    Description (2): collect customer behavior from across domains
    Add a Solace (3) topic domain of acmeretail/c360 (4)
    Select all 3 checkboxes, enforcing topic uniqueness (5), enforcing topic domain (6) and allowing descriptions to be edited (7)
  4. +
+

Then click on OK
Image

+

Graphically create your application

+
    +
  1. Go into the newly created Customer360 domain.

  2. +
  3. Click on Add Objects and drag "New Application" to the canvas and name it Customer 360.
    Image

  4. +
  5. Again click on Add Objects, and drag a Shared Event to the canvas
    Image

  6. +
  7. In the popup, select Customer Updated, then click on Add.
  8. +
  9. Repeat this process to add the Customer Created shared event, which you discovered in the catalog earlier.
  10. +
  11. To define which events Customer 360 subscribes to, hover over the Customer Created event and drag the arrow to the Customer360 application. Repeat for the Customer Updated event.
    Image

  12. +
  13. Drag a "New Event" onto the canvas and call it Customer Insight Generated.
  14. +
  15. To define the event Customer 360 publishes, hover over the Customer360 application and drag the arrow to the Customer Insight Generated event.
    Image

  16. +
+

Add an event directly from the catalog

+
    +
  1. Navigate back to the catalog (1), click on the Events tab (2), select Order Created (3).
    Image

  2. +
  3. In the right hand column, click on the latest version
    Image

  4. +
  5. Click on Associate with Application
    Image

  6. +
  7. Select the Customer360 domain (1), the latest Customer360 version (2), and specify that you want to subscribe to the event (3). Then click on Save.
    Image

  8. +
+

Create consumers for your application

+
    +
  1. In the resulting screen, scroll down to the Referenced By section, click on the three dots next to Customer 360, and then Open Application
    Image

  2. +
  3. Click on Edit This Version
    Image

  4. +
  5. Click on the Consumers tab (1), then on Add Consumer (2)
    Image

  6. +
  7. Name the queue C360.ORDERS (1)
    give it a type of Solace Event Queue (2)
    Click on Set Configuration (3) to use the default configuration Then click on Add Subscriptions (4)
    Image

  8. +
  9. In the resulting screen, select the Order Created event, which will prefill the subscription. Then click on Add Subscription
    Image

  10. +
  11. Repeat the process to create the consumer for the two Customer events, naming the queue C360.CUSTOMERS When you click on Add Subscriptions, select both of the Customer events and a subscription for both.
    Image

  12. +
  13. To save your changes, click on Save & Close.
    Image

  14. +
+

Create a new Customer Insight Generated event

+
    +
  1. You will use this schema file for the payload of the event. Download it and save it to your hard drive. Schema file
  2. +
  3. Click on the Schemas tab (1)for the Customer360 domain, then click on Create Schema(2)
    Image
  4. +
  5. Name the schema Customer Insight, then the Import from File button. Navigate to the customerinsight.json schema file you just downloaded.
    Image
  6. +
  7. Click on Save and Close.
  8. +
  9. Click on the Events tab (1) at the top of the screen, then click on Customer Insight Generated (2).
    Image
  10. +
  11. Click on Edit This Version
    Image
  12. +
  13. Define the Topic Address. Start by clicking on the field and selecting the acmeretail/c360 topic domain
    Image
  14. +
  15. Type in the remainder of the topic address, using brackets for parameters. The final result should be: acmeretail/c360/customerinsight/generated/v1/{insighttype}/{customerid}
    Image
  16. +
  17. Scroll down further and click on Select Schema.
    Image
  18. +
  19. Select the Customer Insight schema you just created.
    Image
  20. +
+ + + +
+ + +

AsyncAPI export

+
    +
  1. Click on Applications (1) in the top menu, then on Customer360(2)
    Image

  2. +
  3. Click on the three dots next to version 0.1.0 and click on Download AsyncAPI. Save the file on your hard drive.
    Image

  4. +
  5. In a web browser, navigate to AsyncAPI Studio at https://studio.asyncapi.com
    Image

  6. +
  7. Click on the three dots in main panel (1), then on Import File. (2)
    Image

  8. +
  9. In the resulting pop up, change the conversion to version 2.6.0, then click on Convert.
    Image

  10. +
  11. Now that the AsyncAPI is loaded you can browse it, and also look through the autocreated documentation.
  12. +
  13. When you're finished browsing, click again on the three dots (1), then click on Generate code/docs.(2)
    Image

  14. +
  15. In the popup window, select Java Spring Cloud Stream Project, then click on Generate.
  16. +
  17. Save the resulting .zip file to your hard drive.
  18. +
+ + + +
+ + +

Assign your application to an environment/event broker

+
    +
  1. Click on Applications, then on Customer360.
    Image

  2. +
  3. Click on the Runtime tab.
    Image

  4. +
  5. Expand the Prod environment, then click on the three dots next to PROD-solace, then on Manage Credentials.
    Image

  6. +
  7. For the Username enter c360 (1). For the Password enter c360 (2). Click on Save. (3)
    Image

  8. +
  9. Back in the main screen, expand the Prod environment (1) again click on the three dots, and then "Add Application" (2)
    Image

  10. +
  11. The resulting popup previews the changes that will occur. Expand out the credentials (1) and queues (2) to see more details. Then click on Add (3)
    Image

  12. +
+ +

Confirm EP provisioned your queues and access

+
    +
  1. Go to the management console of your cloud broker by clicking Cluster Manager in the left hand column, then clicking on your Event Broker.
    Image

  2. +
  3. Click on the Manage tab (1), then Queues (2).
    Image

  4. +
  5. You should see the two queues you defined earlier, C360.CUSTOMERS and C360.ORDERS. Clicking on each, you should see that they are owned by c360, only the owner is allowed to access the queue and the subscriptions you defined are in place.
    Image

  6. +
  7. Click on Access Control (1), the Client Usernames tab (2), and you should see the c360 client username. (3)
    Image

  8. +
  9. Click on the ACL Profiles tab (1) and you should see the ACL associated with your user. (2)
    Image

  10. +
+

View the updated event flow for Production

+
    +
  1. Click on the Runtime Event Manager icon on the left hand side (1), then on the us-central-solace-Prod event mesh. (2)
    Image

  2. +
  3. Scroll down the list of applications in the left column to find Customer360, then click on the three dots (1). Then select Center on Graph. (2) This highlights the Customer360 on the graph.
    Image

  4. +
  5. To highlight only the direct dependencies for Customer360 in Production, click on the three dots (1), then Show Relationships(2).
    Image

  6. +
+

Remove application from runtime event broker and modelled event Mesh

+
    +
  1. Click on the Customer360 link in the left hand column.
    Image

  2. +
  3. In the resulting popup, click on Open in Designer.
    Image

  4. +
  5. Click on the Runtime tab.
    Image

  6. +
  7. Expand the Prod tab (1), click the three dots(2), the click on Remove Application.(3)
    Image

  8. +
  9. In the popup, review the details of what queues will be removed. Then click on Remove
    Image

  10. +
+ + +
+ + + +

Create new repository with Event Portal GitHub Actions

+
    +
  1. Make sure you are logged into GitHub and go to the Import Existing Repository page.
  2. +
  3. Use https://github.com/SolaceLabs/ep-scs-workflow for the URL, list yourself as the owner, and name the new repository customer360. Click on Begin Import.
    Image

  4. +
  5. Wait for the import to complete, usually around 3 minutes. Then click on the link to open the repository.
  6. +
+ +

Configure GitHub Actions

+
    +
  1. In the top menu of the repository, select Settings.
    Image

  2. +
  3. In the left hand column, select Actions(1), then General (2).
    Image

  4. +
  5. Scroll to the bottom of the page, and click on the radio button next to Read and write permissions (1). Then click on Save.(2)
    Image

  6. +
  7. Again in the left hand column, scroll down, expand Secrets and variables (1), then click on Actions (2).
    Image

  8. +
  9. In the main panel, click on New Repository Secret.
    Image

  10. +
  11. Name the secret SOLACE_CLOUD_TOKEN. The value of the secret should be the token you created for Postman when initially populating your account.
    Image

  12. +
+

Upload micro-integration to GitHub

+
    +
  1. Unzip the Spring Cloud Stream source code you downloaded from studio.asyncapi.com on your hard drive.
  2. +
  3. In the root directory, move the asyncapi.yml file to the template directory.
    Image

  4. +
  5. Navigate to the template directory. It should look like this:
    Image

  6. +
  7. In your browser go to the new repository, click on the plus sign (1), then on Upload files. (2)
    Image

  8. +
  9. Select all 4 of files/subdirectories in the template directory, then click on OK
  10. +
+ +

Commit the files and open a pull request

+
    +
  1. In the resulting window, change the radio button to Create a new branch for this commit. Then click on Propose changes.
    Image

  2. +
  3. In the next screen, click on Create pull request.
    Image

  4. +
  5. The GitHub Actions kick off. When they are finished, there should be a list of changes that will occur should the pull request be approved.
    Image

  6. +
  7. Scroll down to the bottom of the pull request and click on Merge pull request. Then click on Confirm merge.
    Image

  8. +
  9. Using the management console of your cloud broker, confirm that the CICD process created the same queues, subscriptions, ACLs as manual promotion.
  10. +
+ + +
+ + + +

Soly Image Caption

+

Thanks for participating in this codelab! Let us know what you thought in the Solace Community Forum! If you found any issues along the way we'd appreciate it if you'd raise them by clicking the Report a mistake button at the bottom left of this codelab.

+ + +
+ +
+ + + + + + + + + diff --git a/codelabs/exploring-solace-native-apis/codelab.json b/codelabs/exploring-solace-native-apis/codelab.json index a21b0f8b..116a0fe9 100644 --- a/codelabs/exploring-solace-native-apis/codelab.json +++ b/codelabs/exploring-solace-native-apis/codelab.json @@ -3,16 +3,24 @@ "format": "html", "prefix": "https://storage.googleapis.com", "mainga": "UA-49880327-14", - "updated": "2021-01-13T17:45:32Z", + "updated": "2024-07-01T13:25:09Z", "id": "exploring-solace-native-apis", "duration": 67, "title": "Exploring Solace Native APIs - The Basics", "summary": "An exploration of the basics of getting started with Solace’s Native APIs", - "source": "exploring-solace-native-apis.md", + "source": "main/markdown/exploring-solace-native-apis/exploring-solace-native-apis.md", "theme": "", - "status": ["published"], - "category": ["java", "c"], - "tags": ["web", "workshop"], + "status": [ + "published" + ], + "category": [ + "java", + "c" + ], + "tags": [ + "web", + "workshop" + ], "feedback": "https://github.com/SolaceSamples", "url": "exploring-solace-native-apis" } diff --git a/codelabs/exploring-solace-native-apis/index.html b/codelabs/exploring-solace-native-apis/index.html index 6356cd0f..87c9973c 100644 --- a/codelabs/exploring-solace-native-apis/index.html +++ b/codelabs/exploring-solace-native-apis/index.html @@ -20,8 +20,9 @@ - + What you'll learn

Before you start, make sure: