Open Repository API
Tuesday, July 1st, 2008There have been several calls for an open repository API based on AtomPub over the past few months, starting with Anne Thomas Mannes and the latest being Glen Daniels’.
I think now is probably the time. From a personal point of view, I’ve been holding off until we got Galaxy 1.0 out the door so we could learn more about how it should be done and the scope of it.
This is all of course my own personal opinion at this point and is likely to change, but I outline it here so other people can have an idea of what I’m thinking.
Scope
- Should be built on AtomPub
- Define a way to deal with hierachical collections of versioned resources. That is, we need a standard way to model folders and files in AtomPub. This would be of benefit to a lot of people.
- Define a standard way to query for resources. I’m not sure how much specifying will need to be done here, it should be based on OpenSearch and AtomPub. A good use case is being able to search for a WSDL from an IDE and generate a client for it. Another use case might be to be able to download an application (= set of resources) using a query and start it.
- This may not need to be a spec like AtomPub is a spec. Since we will be using a lot of standard tools, this may be as simple as saying “yes we’re ALL using these things (AtomPub, OpenSearch, etc) in the same manner and here’s how the big picture comes together”
Not in scope
Or at least a separate optional specification:
- Dealing with metadata about artifacts (although I’m tempted to roll this into the above)
- Lifecycle management
- Dependency management
Participants
Besides WSO2 who I’ve talked with about this before, I would think the following open source projects may be interested as well:
- JBoss Drools BRMS team
- Sonatype’s Nexus team - they’ve expressed interest in having an AtomPub API to browse their repository/metadata
- IDE developers (NetBeans, Eclipse) - we definitely could use some IDE plugins.
- Anyone else who wants to have a say
Next Steps
We should probably set up a mailing list and wiki. Maybe at the Codehaus? We can then figure out where this thing goes from there.