Notes/Domino 7.0.2 Feed Generator

by Bruce Elgort

Notes/Domino 7.0.2 Beta 2 includes an RSS Feed Generator template that allows you to easily publish RSS feeds from any of your databases. The template publishes all of the feeds you setup from a single database. This is accomplished by generating the feeds via an agent on-the-fly. Each feed is setup using an RSS Feed Definition document which uses an existing view in your database to generate the feed.

I have tested the basic functionality provided in the 7.0.2 Beta 2 and will walk you through the steps on how to create a feed.

First start by creating a new database on the Domino server which contains the databases you want to have feeds generated for. Before you create any feeds, be sure and sign the database with an appropriate ID.

Next click on the "New Feed" action button. You can now select the database and view to use.

In this example I am using a very simple database that I have created for demonstration purposes. The documentation also suggests that use a non-categorized view for your RSS feeds.

Now you have to enter a few fields that describe the RSS feed. These items include a Title, Description (optional), Language and Encoding. The next set of items are optional and include Number of entries to be emitted, Convert Domino names to RFC-822 email addresses, Additional tag libraries to include in the feed, whether to treat the view as an ordered list and any additional XML which you want to be included in the feed.

Now that we have "described" the feed it's time to define how we want the items from the view to be represented. There are four values which need to be filled in. Title, Author, pubDate and Link. For each of these items you can select either a column from your view or a Keyword. Keywords include the documents Author, LastModified, FirstAttachment-URL, iCalendar-URL and vCard-URL. After selecting the column value or keyword you need to define the items type which can be Text, Domino Name (e-mail) or Date. For the Link item you can optionally specify an alternate link.

You can now add additional items for each view entry such as a description, enclosures, category, comments etc. You can also use a calculated value for these entries in addition to the view columns or keywords described earlier. You can now save your RSS feed definition and pop open your web browser to see what your feed looks like.

Now open the RSS Feed Generator database from your browser and you will see a list of all of the available feeds. Click on the feed to see the XML and to ensure that your feed is being generated the way you want it to be.

As you can tell this template is easy to use and is intended to be used by developers. May I also recommend that you consult your administrator before firing up this database as it may place additional load on your server. I also suspect that Lotus may change some of the features and functions of this template from the July Beta 2 that I used for my evaluation.

Update

The template's UI has not changed from Beta 2 nor has the documentation.

Comments

Wow. What an interface design. :-)

Volker Weber, 2006-09-27

They need to drop the XML icon too, and adopt the more universal RSS feed icon as used on this very site.

Simon Barratt, 2006-09-27

ah, but XML feeds from Domino are a beautiful thing, without regard to their origin.

Ed Brill, 2006-09-27

I decided it is too easy to pick on the negative. So on a postive note, the intended functionality of this is very useful. Rather than having to RSS code to all applications that you wish to enable, you can now control from a central location. This will make roll out and support far simpler.

Simon Barratt, 2006-09-27

Sure, Ed. I have seen the early design of the integrator, and it was much worse. I was just wondering how much mor expensive it would have been to make it look nice.

Bruce, how does it handle ACLs? Let's assume you have two databases, one of them open to everybody, one open to management. Can you create RSS feeds for both and have them obey ACL changes to the databases?

Volker Weber, 2006-09-27

@Vowe,

Yes - the RSS Generator DB obeys the ACL's of the target databases.

Bruce Elgort, 2006-09-27

What about readers and authors fields on documents in the targeted databases.

I cant wait to get my hands on this piece of software.

Hey that is a first. A positive comment. Without bitching as Andrew Pollack named it.

Thomas Schulte, 2006-09-27

If you want someone to prettify it on the cheap, I can find some time.

Yours,
The Lotus Whore

:o)

Ben Poole, 2006-09-27

This is great, but from a scale perspective I would be concerned. One thing I've been thinking about for my blog is that RSS based on computational lookups for each hit is expensive when you consider that the content doesn't change frequently.

I'll be moving to simple on disk rss/xml file which gets updated as needed when content changes. Serving a single static file should be much more scale-able than generating the thing for each hit.

Andrew Pollack, 2006-09-27

But if Domino intelligently returns a 304, it doesn't have to do stacks of look-ups each time, surely?

Ben Poole, 2006-09-27

How would the RSS database know that the source has not changed without checking. Andrew proposes a push when the source change. That is basically what I am doing on vowe.net. I update static pages when stuff changes, and I include the things that change all the time.

Volker Weber, 2006-09-27

Ack, so this fires an agent for every request? No, that is not scalable at all, I understand now if that’s the case. Eek.

Ben Poole, 2006-09-27

Here is a sample link:

http://www.bruceelgort.com/development/rsstest.nsf/rss?openagent&uid=E9946B365EBEFAF0882571F500792C17

Note the ?openagent argument.

Bruce Elgort, 2006-09-27

Somebody needs to like Gayle. :-)

Volker Weber, 2006-09-27

@Andrew - most HTTP servers cache pages for just this reason

Bob Balaban, 2006-09-28

Just as I side note I would like to mention taht DominoBlog which will be included with 7.0.2 also uses an agent to generate blog pages performs quite well. Simply look at www.edbrill.com. Thousands of hits each day - with great performance.

Bruce Elgort, 2006-09-28

And I would imagine that the reason why the RSS has to get generated each time is because the feeds respect the ACL/reader field settings in the database and on the documents (as was previously stated).

If it was caching all the feeds, then it would have to create a cached feed for every possible scenario of username/ACL access/reader name fields and then dish out the appropriate feed for whoever accesses it.

If it creates each feed on the fly, and it runs "as web user", then it can calculate this sort of thing for each request.

Not as efficient, but at least you can do security that way. If that's what you want.

Julian Robichaux, 2006-09-28

There is also an OpenNTF project "DominoRSS" which goes beyond 7.0.2's implementation and can generate RSS feeds out to the file system. Learn more about it here.

Bruce Elgort, 2006-09-28

I think the database is an excellent start to get RSS into mainstream Notes/Domino applications. If heavy use database hit the limit of agent based creation is is a rather small step to create a passthru view and a page with the view embedded that directly serves the RSS.
Actually it is just a question of an additional agent to generate the DXL from the information provided in the RSS setup document and deploy it into the source database. However since database design is mostly sacrosanct generating the RSS from outside makes perfectly sense.
So in 703 we might see that additional agent (that also would enter a http redirect once the feed goes "native")

My 2c
;-) stw

Stephan H. Wissel, 2006-09-28

Why RSS and not Atom? Bad decision.

Stefan Tilkov, 2006-09-28

Stefan, why is that a bad decision? There’s nothing to stop IBM adding Atom later, but I would contest that RSS still has the lead right now—it’s the “lowest common denominator”. Anything that reads Atom also reads RSS, so go with the mainstream.

Ben Poole, 2006-09-28

Andrew, Ben: Nobody forbids you to put a Squid in front of your Domino HTTP Server. Does the RSS generator set correct expiry headers? Does it set any meaningful headers at all?

Karsten W. Rohrbach, 2006-09-28

Following on from Andrews comment:

"I'll be moving to simple on disk rss/xml file which gets updated as needed when content changes. Serving a single static file should be much more scale-able than generating the thing for each hit."

The 7.0.2 (and the dominoblog.com) Blog template allows you to store RSS in a notes document if you so wish to save using an agent or view for a lookup which remains constant until a user adds new content.

Steve Castledine, 2006-09-28

The agent performance is fine ... on a single box (server class, but nothing special), we have Ed's, Alan's, Jeff Eisen, Chris Pepin, Adam Gartenberg, and my blogs ... all getting massive rss hits every day. I know people that refresh their feeds of Ed's site every 10 mintues ... and no agent performance issues.

Bruce, very well written article. I personally dont care if the UI is a bit clunky ... this database is meant for Admins and Developers. We can handle a clunky UI for a bit.

Oh, another thing Bruce, you might want to post these kinds of articles on your blog as well. I have many customers in the US that can not get to vowe.net but can get to your site.

John Head, 2006-09-28

This new template gives Lotus Marketing something to talk about. Presentations, brochures, lunch, and all. Kudos to them! I just don't believe veteran Domino developers will use it. We've been creating user-specific (author/reader field) RSS feeds for years. Recipe: Create a view. Add the proper RSS tags. Embed said view in to a Page. Publish the page.

Yes, sometimes Betty Crocker cakes are good enough, but when you know how to bake a cake from scratch, the result is so much better.
Maybe what they need in the future is an RSS/Atom design element for the database.
My $0.02

Brian Green, 2006-09-28

@Brian -

I wouldnt be so sure about that ... will most of us rip out the custom rss functionality we have exisiting? No. But if I need to add a rss feed to a database going forward, I will probably use this tool. Plus, calendar and contact (via ical and vcard) stuff out of the box.

So while the UI is bad, I think this is going to be a succuessfuly little app. And hopefully we will see better RSS support in the core product in the future :) Totally agree on that

John Head, 2006-09-28

Any chance that Notes could be updated to produce a valid feed?

Sam Ruby, 2006-10-11

The tool under discussion can provide a valid feed Sam—your example is just Bruce not configuring it right ;o)

Ben Poole, 2006-10-11

@Sam/Ben,

I did tell Domino to convert my name to RFC-822. As for the guid I need to research further. Thanks for pointing this out but like Ben said, probably my own doing.

Bruce

Bruce Elgort, 2006-10-12

One thing I forgot: seeing as the (BETA!) RSS generator is one of his employer’s products, I’m assuming Sam will lend a hand to ensure the highest level of compliance in each version? ;o)

Ben Poole, 2006-10-12

Ben: what the Feed Validator is detecting is only the tip of the iceberg: as long as this generator produces RSS 2.0, it will forever produce titles that display differently in Bloglines and IE7, and don't even get me started with relative URIs. Ids in Atom are simple URIs, and there is a much more obvious way to create a common and interoperable extension for expressing RFC 2253 style distinguished names.

As you say: this is a beta. If these things matter to you, express yourself. Once the requirement is in place, I'll gladly help.

Sam Ruby, 2006-10-12

This works fantastically, with Netscape 8.

In Firefox 2.0, the feed displays great on the page. But when you add it as a bookmark, it uses the GUID for the link, which starts with notes://, which fires up notes to follow the link, which can't find the server by URL. :-(

I'm no expert in any of this: is Firefox silly for using the GUID as the link, or is the RSS Feed Generator template silly for including it with notes://? What is it for? It doesn't seem to be strictly required for the feed to function...

Should I just dive in and change the agent to omit GUID?

Mike VandeVelde, 2006-11-15

Found it - Set Global Options, RSS prefix :-)

This new article:
Serving up Domino content via RSS
mentioned it was an option, so I went hunting.

Now I just need to figure out the security...

Thanks for the great write-up by the way :-)

Mike VandeVelde, 2006-11-16

@Mike,

Your welcome. Thanks for also pointing out the Domino Blog entry.

Bruce Elgort, 2006-11-16

Hi,

I managed to link the RSS feed generator to a Quickplace 7 index over https,

works good, just need to include the main.nsf to the catalog and specify Https in the general config.

QuickPlace\rss\Main.nsf
System\Index


Value*:
Data type:
h_Name
Text

Value*:
Data type:
h_AuthorDN
Text

Value*:
Data type:
h_LastEditor
Date

Value*:
Data type:
$h_URLpointer
Text

fred hesse, 2009-04-03

Value*:
Data type:
h_Name
Text

fred hesse, 2009-04-03

information in this document was useful.
i have been able to create xml feeds for notes db
and use them via my rss reader and web browser.

when I use the web browser , i get a list of the feeds
but they are just links and are not link hot spots.
So i am not able to click on them.

any idea how to configure them to be doc links rather than just static text

rk bop, 2010-10-26

Old vowe.net archive pages

I explain difficult concepts in simple ways. For free, and for money. Clue procurement and bullshit detection.

vowe

Paypal vowe