Skip to content

Conversation

clemensv
Copy link
Contributor

#do-not-merge

This PR adds CloudEvents support addressing #671.

I had to move the cheese a bit in the RSS feed area, though, because I need an endpoint for an event consumer to fetch the full content from. I'm assuming that we can't route the entire text of all posts through the eventing channel.

Base feed still at ./feed/rss

  • (new) ./feed/rss/{id} newly returns an RSS item with inlined content (as when the AlwaysIncludeContentInRSS option is turned on). I also fixed an issue with XHTML encoding since XHTML doesn't like HTML entities undecoded.
  • (changed) ./feed/rss/{id}/comments switched from ./feed/rss/comments/{id}
  • (changed) ./feed/rss/tags/{categoryid}/rss switched from ./feed/rss/{categoryid}

In config, you enable the CloudEvents support with

 <EnableCloudEvents>false</EnableCloudEvents>

and you need to add one or more HTTPS target endpoints to deliver those events to. That is currently done synchronously, inline with posting the item, but should be very fast with an event broker.

The targets are configured with a <CloudEventsTargets> element that can hold one or more targets. The Uri holds the target Uri, the Headers collection holds name/value pairs for HTTP headers to add to the request. Here, I show an Event Grid SAS key header.

<CloudEventsTargets>
      <CloudEventsTarget>
        <ProfileName>eventGrid</ProfileName>
        <Uri>https://{myns}.westeurope-1.eventgrid.azure.net/api/events</Uri>
        <Headers>
          <Header>
            <Name>aeg-sas-key</Name>
            <Value>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Value>
          </Header>
        </Headers>
      </CloudEventsTarget>
  </CloudEventsTargets>

@poppastring
Copy link
Owner

@clemensv I am holding off on this until you give me the all clear for another review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants