This is a request for comment on a convention for uniquely identifying user actions on the Internet. The motivating context was identifying commit changesets in version-control systems in a way independent of the specific VCS. It is anticipated that this format will have uses in recording many other similar sorts of transactions, including actions on web interfaces, where we want a simple cookie identifying “who did this and when”.
The proposed format is designated an “action stamp” and consists of an RFC3339 timestamp in Zulu time, followed by an exclamation point, followed by an RFC822 address (technically, an “addr-spec” as defined in 6.1).
Advantages of this format include:
* Uniqueness: In distributed VCSes and elsewhere, email addresses are widely accepted as primary identity keys. The timestamp can be extended to subsecond precision to lower collision probability as far as desired.
* Well-definedness: RFC3339 and RFC822 are well-written, widely accepted standards with lots of existing software support.
* Ease of parsing: The format is textual, syntactically unambiguous, and easily mined from surrounding text. It is readily distinguishable from (a) a plain timestamp, (b) a filename, or (c) a standalone email address. Humans can read it easily.
* Good sorting properties: RFC3339 is a profile of ISO8601, which is designed so that lexical sort order coincides with timestamp order. Action stamps inherit this.
* Simplicity and compactness: Really, how could it get any simpler? Exactly one character of overhead.
Now I’ll address some possible points of contention with this proposal.
1. Why an exclamation point? Because nothing else uses it. Not since bang-path addresses went out of style, anyway.
2. Bletch. The T in the timestamp is ugly. Yes, it is. Live with it; whitespace there would break the action stamp into two tokens, which is undesirable for a cookie that we want to be readily machine-parsable. Also the T is a useful cue that the reader is looking at RFC3339/ISO8601.
3. Is the trailing ‘Z’ on the timestamp really necessary? Yes, it is. Local times are ambiguous without a location – you want something in the action stamp that makes it clear what timezone is intended and the easier way to do that is to mandate Zulu time (UTC/GMT) in the format. The Z is a reminder that it’s Zulu time.
4. Email addresses change, expire, and one person may have several. True, but the same would be true of any other identity token we could use in these. Email addresses have the desirable properties of being simple, universal, and implicitly describing a communication channel to the person. Experience with DVCSes, PGP keys, and ssh keys has taught us that the edge cases are manageable.
5. Er, there isn’t really much to this proposal, is there? That’s right. Brutal simplicity is part of the point.
Comments and criticism welcome. If reaction is positive I might try to turn this into an actual IETF RFC.