Network Working Group TL Laugstol
Internet-Draft Arktekk
Expires: May 14, 2012 November 2011

The Apache Maven Repository REST Applications and Protocol Bindings
draft-apache-maven-repository-rest-applications-01

Abstract

This document describe an architecture for a set of applications can access Maven repositories. The architecture is defined within the constrains of REST. Each application describe a useful interaction between a server and a client and the architecture ties the applications together with common traits and constraints.

Status of this Memo

This document is an Internet-Draft and is NOT offered inaccordance with Section 10 of RFC 2026, and the author does not provide the IETF with any rights other than to publish as an Internet-Draft.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on May 14, 2012.


Table of Contents

1. TODOs and Notes

2. Introduction

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. View Source

2.1. Goals:

2.2. Implementation goals

2.3. Areas explicitly not covered

This specification will not apply to the existing static Maven repositories.That would be impossible within reason and there are already enough tools to support that kind of repositories. However, it inside this specification to be able to create an application that support the operations while still points to a static repository for providing the actual artifacts.

2.4. Deployment scenarios

3. Specification

3.1. Media Types

TODO: Find a reference to @mamund's "you should always design a new media type (but not format)".

3.2. Operations

3.3. Uploading Artifacts

It should be possible to:

3.4. Downloading Artifacts

It should be possible to

3.4.1. Download a single artifact

3.4.2. Download a set of artifacts

The set might be a search, or just a list of artifacts. The server is free to choose to send a container format with all the files in it, or just an URL list with pointers.

3.5. Searching

Servers SHOULD implement conditional controls so it's possible to poll the server regularly.

4. Protocol Bindings

4.1. Response Bindings

5. Security Aspects

5.1. Authentication and Authorization

Authentication and authorization is generally not specified by this specification as it is assumed that the transport mechanisms will specify the different options for authentication.

6. User-Agent Considerations

A user-agent should include information on how stale data it allows. This make it possible for caches to in

A user agent must always check that it got the data it required after receiving a response.

If a response include many links with the same relation and content type, it should can try all links to get the data. This makes it possible for a server to include pointers to many servers that can respond to the same request. A user agent should try to stick to the same host (as defined by the URI) for the following requests.

7. HTTP Binding

Explain what extra headers can be given with each response for artifacts:

8. Appendix: Words and Definitions

Maven Repository
A Maven Repository contain a set of artifacts. Each artifact is identified by a:

See Also (The Maven site at apache)[http://maven.apache.org]

9. Security Considerations

10. IANA Considerations

10.1. Link Relation: http://maven.apache.org/rel/pom

A pointer to a Maven POM file.

TODO: Should probably not be here, a link with rel=describedby, contentType=text/vnd.maven.pom is probably fine.

10.2. Link Relation: http://maven.apache.org/rel/md5

10.3. Link Relation: http://maven.apache.org/rel/sha1

10.4. Media Type: text/vnd.maven.pom

10.5. Media Type: text/vnd.maven.md5

10.6. Media Type: text/vnd.maven.sha1

11. Acknowledgments

12. IANA Considerations

13. Security Considerations

14. References

14.1. Normative References

[RFC1864] Myers, J. and M. Rose, "The Content-MD5 Header Field", RFC 1864, October 1995.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC3230] Mogul, J. and A. Van Hoff, "Instance Digests in HTTP", RFC 3230, January 2002.
[RFC4287] Nottingham, M. and R. Sayre, "The Atom Syndication Format", RFC 4287, December 2005.
[RFC4627] Crockford, D., "The application/json Media Type for JavaScript Object Notation (JSON)", RFC 4627, July 2006.
[RFC5854] Bryan, A., Tsujikawa, T., McNab, N. and P. Poeml, "The Metalink Download Description Format", RFC 5854, June 2010.
[RFC6249] Bryan, A., McNab, N., Tsujikawa, T., Poeml, P. and H. Nordstrom, "Metalink/HTTP: Mirrors and Hashes", RFC 6249, June 2011.

14.2. Informative References

[RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992.
[RFC3174] Eastlake, D. and P. Jones, "US Secure Hash Algorithm 1 (SHA1)", RFC 3174, September 2001.

Author's Address

Trygve Arktekk NO Phone: +47 926 99 070 EMail: trygvis@inamo.no