downtime is a standardized JSON API that lists recent, current and upcoming periods of maintenance or downtime for apps and services, both scheduled and unscheduled.
Wait, what? Here's why this is a cool thing:
For you:
For your apps:
On your status site or blog site (hopefully independent of your service!), put up a JSON file.
To make the URL to this guessable, the file should be located at /downtime.json
(this is highly recommended but not a strict requirement).
The file must be a valid JSON file adhering to the following format:
{
"service": "My awesome application",
"url": "http://my.awesome.application/",
// if downtime.json is generated dynamically, the updated_at timestamp
// should be the current date/time
"updated_at": "ISO8601 UTC timestamp",
"downtime": [
{
"title": "Server maintenance",
"description": "text or HTML (?), optional description of what is going on",
"info_url": "optional url of a blog post, etc",
"type": "scheduled|unscheduled", // default: scheduled
"availability": "up|partial|down", // default: down
"urls": [
"url pattern (regex) of affected service"
// can be more than one
],
"starts_at": "ISO8601 UTC timestamp", // required
"ends_at": "ISO8601 UTC timestamp", // if not given assume open-ended
"updated_at": "ISO8601 UTC timestamp",
"log": [ // optional, useful to indicate status while repair is going on
{
"timestamp": "ISO8601 UTC timestamp",
"description": "text or HTML info about current repair status, etc"
} // etc
]
}
// moar
]
}
// note: actual JSON doesn't support comments
When you create or generate this file, try to stick to these rules of thumb as well:
This format is not final, and open to discussion. Please contribute in the issues.
If you provide downtime information, add your service to services.json
so we and others can implement apps that fetch downtime information and
provide useful services based on it.
This repository comes with a downtime.js
and downtime.html
example file that shows
how you could use your downtime.json
file to show a status page. This example is a
work in progress.
I very much welcome any input and discussion on this.
My vague goal is to have a site where you can subscribe to the downtime info of various apps, and get it as RSS/iCal/push notifications.
downtime is licensed under the terms of the MIT license. (c) 2012 Thomas Fuchs