Table of Contents | ||
---|---|---|
|
...
When the subscription ruleset is installed, a well known Rx channel is created. As a reminder, a channel contains three pieces of information: the long identifier (eci), a name, and a descriptive type. The well known channel name is wellKnown_Rx with Tx_Rx as its channel type. This channel is used to establish new subscriptions between picos, and is meant to be publicly shared with potential subscribers. In the future this channel will use policies This channel uses a policy to restrict events to only subscription requests, making your engine more secure.
...
- Pico A receives a
wrangler:subscription
event which includes a wellKnown_Tx attribute. wellKnown_Tx is Pico B's wellKnown_Rx . Pico A then creates a channel for the subscription which is stored as Rx. - Pico A sends pico B
wrangler:pending_subscription
with attribute status set to inboundsubscription_request_needed
. Pico A sends all attributes it received with the following key attributes updated.- Tx - Pico A Rx.
- Tx_verify_key - Pico A's Rx channel verifyKey.
- Tx_public_key - Pico A's Rx channel encryptionPublicKey.
- name - name used for channel.
- channel_type - string used for channel type
- Pico B creates a Rx channel for the subscription which is stored as Rx along with Tx , Tx_verify_key, Tx_public_key in inbound subscription entity variable.
Pico A also raises an internalwrangler:pendingnew_subscription_request
event with status set to outbound, with the corresponding attributes above which is stored in outbound subscription entity variable. - After storing pending subscriptions, Pico B and Pico A raises corresponding
wrangler:inbound_pending_subscription_added
event andwrangler:outbound_pending_subscription_added
event.
The state of each Picos subscription is static at this point. Pico A has an outgoing pending subscription and Pico B has an incoming pending subscription. - If Pico B wants to approve the subscription request, it raises the
wrangler:pending_subscription_approval
event with an attribute Rx containing the Rx channel identifier of the subscription to approve. Upon successfully storing the subscription in established entity variable. Pico B:- sends the
wrangler:outbound_pending_subscription_approved
event with attribute status set to outbound to event to Pico A on Pico B's subscriptions Tx. - raises an API internal event
wrangler:subscription_added.
- sends the
- Upon receiving the
wrangler:pending_subscription_approved
event, Pico A adds an Tx eci to the subscription and stores the subscription in established entity variable. And raises thewrangler:subscription_added
event. - If Pico B wants to reject the subscription, it raises the
wrangler:subscription_cancellation
event (internally) with an attribute named Rx - which is the Rx of the subscription to reject. Pico B:- sends the
wrangler:established_removal
event to Pico A on Picos B Tx eci, which then raises an internal APIwrangler:subscription_removed
event to itself. - raises the
wrangler:established_removal
event, which then raises an internal APIwrangler:subscription_removed
event.
- sends the
...
Event Domain | Event Type | Actions | Use |
---|---|---|---|
wrangler | subscription | creates outbound pending subscription and sends pending_subscription event to external pico | Creates a new outbound pending subscription |
wrangler | pending_subscription | creates inbound pending subscription | Creates a new inbound pending subscription |
wrangler | pending_subscription_approval | sends outbound_pending_subscription_approved event with inbound_eci and outbound status to external pico and raises inbound_pending_subscription_approved with inbound status | Aprove inbound pending subscription |
wrangler | subscription_cancellation | inbound_rejection | outbound_cancellation | sends subscription_removal event with eci and status and raise the same event to self | Alert external pico to remove subscriptions and alert self to remove subscription |
wrangler | established_removal | inbound_removal | outbound_removal | deletes channel used for subscription and updates subscription ruleset persistance | Internally for removing channel used for subscription |
...
Name | Value |
---|---|
channel_name | channel name |
channel_type | channel type |
Rx_eci | pico A's new eci created for the subscription |
Rx_role | pico A's role |
status | "outbound" |
Tx_eci | eci to other pico |
Tx_host (only included if the picos are hosted on different engines) | defined in wrangler:subscription |
Tx_role | defined in wrangler:subscription |
...
Name | Value | ||
---|---|---|---|
attributes | attrs in wrangler:subscription | ||
channel_name | channel name(e.g. "namespace:name") | ||
channel_type | defined in wrangler:subscription | ||
my_role | subscriber_role in wrangler:subscription | ||
name | defined in wrangler:subscription | ||
name_space | defined in wrangler:subscription | ||
outbound_eci | pico A's new eci created for the subscription | ||
relationship | string of the form my_role+"<->"+subscriber_role | status | "inbound" |
subscriber_host (only included if the picos are hosted on different engines) | public DNS name of the engine hosting pico A | ||
subscriber_role | my_role in wrangler:subscription |
...