mage-os/mageos-async-events-gcp

GCP event sinks for mage-os/mageos-async-events

v4.0.0 2024-07-22 10:32 UTC

This package is auto-updated.

Last update: 2024-12-14 12:12:12 UTC


README

GCP event sinks for mageos-async-events

Installation

composer require mage-os/mageos-async-events-gcp

Authenticating with Google Cloud Client Libraries

This module relies on Google's PHP Cloud Client Libraries. Each event sink uses a corresponding library to perform requests to Google Cloud.

For more information about the client libraries, please see https://cloud.google.com/php/docs/reference

As per the Authentication Guide, the recommended way to authenticate to the Google Cloud PHP library is to use Application Default Credentials (ADC), which discovers your credentials automatically, based on the environment where your code is running.

Application Default Credentials (ADC) typically come in the form of a credential JSON file. This file can include credentials for workload identity federation, workforce identity federation, or a service account key.

There are many ways to obtain an ADC, so you must review and choose a method that fits your use case.

Important

Service account keys can pose a security risk if not managed correctly. Whenever possible, opt for a more secure alternative to service account keys.

To authenticate using different methods, refer to the following guides:

GCP event sinks

Google Pub/Sub

Setup Application Default Credentials (ADC)

A Service Account with the Pub/Sub Publisher role is required so that the notifier can relay events into Google Pub/Sub.

Under Stores -> Services -> Async Events GCP set the ADC Path.

gcp-pubsub-config example

Create a Pub/Sub Subscription

The following is an example to create a Pub/Sub subscription for the example.event

curl --location --request POST 'https://test.mageos.dev/rest/V1/async_event' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
    "asyncEvent": {
        "event_name": "example.event",
        "recipient_url": "Google Pub/Sub Topic",
        "verification_token": "supersecret",
        "metadata": "pubsub"
    }
}'