Commit 163d1b7c authored by jaywink's avatar jaywink

Readme and protocol clarifications

parent 0e334c8a
......@@ -26,13 +26,19 @@ A server must provide the data at least in this media type. A server should set
When accessing NodeInfo2 documents through an ActivityPub Actor, fetching client should not assume that each document will correspond to a different server. The key `server.baseUrl` should be compared against when collecting statistics of a server. If two NodeInfo2 documents fetched via two different Actor objects have the same `server.baseUrl`, any statistics should be treated as one instead of counting them together.
## Structure
### baseUrl validation
Due to the versioning of NodeInfo2, which is no version change in forward changes, only major backwards incompatible changes, implementors should be prepared tho deal with situations where a key that has recently been added to the specification doesn't yet exist in all the NodeInfo2 documents created by servers implementing NodeInfo2.
Consumers should not blindly trust `server.baseUrl` and should always verify it is under the host that was initially called. For example, if a document fetched at host `foobar.local` contains a `server.baseUrl` of `barfoo.local`, it should be rejected.
## Data contents
## Schema
Below are some example element values. Using these will ensure interoperatibility between other nodes using NodeInfo2. Please provide additional items that are common in your implementation to these lists via PR's.
The [schema](https://github.com/jaywink/nodeinfo2/blob/master/schemas/1.0/schema.json) lists required and documented known optional keys.
Due to the versioning of NodeInfo2, which has no version change in forward changes, only major backwards incompatible changes, implementors should be prepared tho deal with situations where a key that has recently been added to the specification doesn't yet exist in all the NodeInfo2 documents created by servers implementing NodeInfo2.
### Data values
Below are some example key values. Using these will ensure interoperability between other nodes using NodeInfo2. Please provide additional items that are common in your implementation to these lists via PR's.
### `server.name`
......@@ -47,6 +53,7 @@ Below are some example element values. Using these will ensure interoperatibilit
* `redmatrix`
* `socialhome`
* `social-relay`
* `ganggo`
### `protocols`
......@@ -55,6 +62,6 @@ Below are some example element values. Using these will ensure interoperatibilit
* `dfrn`
* `libertree`
* `mediagoblin`
* `ostatus
* `ostatus`
* `pumpio`
* `zot`
......@@ -12,16 +12,14 @@ Current version is 1.0. Version upgrade shall happen only in backwards incompati
## Support
* [The Federation.info](https://the-federation.info) - A decentralized social web statistics site
Implemented in the following platforms:
Plans for integration of this standard exist for the following server stacks:
* [Social-Relay](https://github.com/jaywink/social-relay)
* [The Federation.info](https://the-federation.info)
* [Socialhome](https://github.com/jaywink/socialhome)
Library support is planned for the following:
Library support is available for the following:
* [Social-Federation](https://github.com/jaywink/social-federation) (Python)
* [Federation](https://github.com/jaywink/federation) (Python)
Have a server or library you have added support to? Send a PR!
......@@ -38,5 +36,3 @@ Please open issues and pull requests if you want to suggest a change. If you ope
NodeInfo2 is a fork of [NodeInfo](https://github.com/jhass/nodeinfo) which was seen as too complex for the problem it is solving. NodeInfo2 is interested in controlling *structure* of the document, not content. Additionally, discovery and strict versioning has been dropped for simpler implementation.
NodeInfo emerged from it's predecessor `/statistics.json` that was added to the diaspora* software to be able to built a statistics collection and aggregation service, it was quickly supported by Friendica and RedMatrix. As more and more metadata was added and modifications occurred that would break backward compatibility, we felt the need to make this a more coordinated effort.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment