-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #74 from 6543/nodeinfo_v3.0
start nodeinfo v2.2 development
- Loading branch information
Showing
3 changed files
with
227 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{ | ||
"version": "2.2", | ||
"software": { | ||
"name": "diaspora", | ||
"version": "0.5.0", | ||
"repository": "https://github.com/diaspora/diaspora", | ||
"homepage": "https://diasporafoundation.org/" | ||
}, | ||
"protocols": ["diaspora"], | ||
"services": { | ||
"inbound": ["gnusocial"], | ||
"outbound": ["facebook", "twitter"] | ||
}, | ||
"openRegistrations": true, | ||
"usage": { | ||
"users": { | ||
"total": 123, | ||
"activeHalfyear": 42, | ||
"activeMonth": 23 | ||
}, | ||
"localPosts": 500, | ||
"localComments": 1000 | ||
}, | ||
"metadata": { | ||
"chat_enabled": true | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
{ | ||
"title": "NodeInfo schema version 2.2", | ||
"$schema": "http://json-schema.org/draft-04/schema#", | ||
"id": "http://nodeinfo.diaspora.software/ns/schema/2.2#", | ||
"description": "NodeInfo is an effort to create a standardized way of exposing metadata about a server running one of the distributed social networks.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"required": [ | ||
"version", | ||
"software", | ||
"protocols", | ||
"services", | ||
"openRegistrations", | ||
"usage", | ||
"metadata" | ||
], | ||
"properties": { | ||
"version": { | ||
"description": "The schema version, must be 2.2.", | ||
"enum": [ | ||
"2.2" | ||
] | ||
}, | ||
"software": { | ||
"description": "Metadata about server software in use.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"required": [ | ||
"name", | ||
"version" | ||
], | ||
"properties": { | ||
"name": { | ||
"description": "The canonical name of this server software.", | ||
"type": "string", | ||
"pattern": "^[a-z0-9-]+$" | ||
}, | ||
"version": { | ||
"description": "The version of this server software.", | ||
"type": "string" | ||
}, | ||
"repository": { | ||
"description": "The url of the source code repository of this server software.", | ||
"type": "string" | ||
}, | ||
"homepage": { | ||
"description": "The url of the homepage of this server software.", | ||
"type": "string" | ||
} | ||
} | ||
}, | ||
"protocols": { | ||
"description": "The protocols supported on this server.", | ||
"type": "array", | ||
"minItems": 1, | ||
"items": { | ||
"enum": [ | ||
"activitypub", | ||
"buddycloud", | ||
"dfrn", | ||
"diaspora", | ||
"libertree", | ||
"ostatus", | ||
"pumpio", | ||
"tent", | ||
"xmpp", | ||
"zot" | ||
] | ||
} | ||
}, | ||
"services": { | ||
"description": "The third party sites this server can connect to via their application API.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"required": [ | ||
"inbound", | ||
"outbound" | ||
], | ||
"properties": { | ||
"inbound": { | ||
"description": "The third party sites this server can retrieve messages from for combined display with regular traffic.", | ||
"type": "array", | ||
"minItems": 0, | ||
"items": { | ||
"enum": [ | ||
"atom1.0", | ||
"gnusocial", | ||
"imap", | ||
"pnut", | ||
"pop3", | ||
"pumpio", | ||
"rss2.0", | ||
"twitter" | ||
] | ||
} | ||
}, | ||
"outbound": { | ||
"description": "The third party sites this server can publish messages to on the behalf of a user.", | ||
"type": "array", | ||
"minItems": 0, | ||
"items": { | ||
"enum": [ | ||
"atom1.0", | ||
"blogger", | ||
"buddycloud", | ||
"diaspora", | ||
"dreamwidth", | ||
"drupal", | ||
"facebook", | ||
"friendica", | ||
"gnusocial", | ||
"google", | ||
"insanejournal", | ||
"libertree", | ||
"linkedin", | ||
"livejournal", | ||
"mediagoblin", | ||
"myspace", | ||
"pinterest", | ||
"pnut", | ||
"posterous", | ||
"pumpio", | ||
"redmatrix", | ||
"rss2.0", | ||
"smtp", | ||
"tent", | ||
"tumblr", | ||
"twitter", | ||
"wordpress", | ||
"xmpp" | ||
] | ||
} | ||
} | ||
} | ||
}, | ||
"openRegistrations": { | ||
"description": "Whether this server allows open self-registration.", | ||
"type": "boolean" | ||
}, | ||
"usage": { | ||
"description": "Usage statistics for this server.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"required": [ | ||
"users" | ||
], | ||
"properties": { | ||
"users": { | ||
"description": "statistics about the users of this server.", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"properties": { | ||
"total": { | ||
"description": "The total amount of on this server registered users.", | ||
"type": "integer", | ||
"minimum": 0 | ||
}, | ||
"activeHalfyear": { | ||
"description": "The amount of users that signed in at least once in the last 180 days.", | ||
"type": "integer", | ||
"minimum": 0 | ||
}, | ||
"activeMonth": { | ||
"description": "The amount of users that signed in at least once in the last 30 days.", | ||
"type": "integer", | ||
"minimum": 0 | ||
} | ||
} | ||
}, | ||
"localPosts": { | ||
"description": "The amount of posts that were made by users that are registered on this server.", | ||
"type": "integer", | ||
"minimum": 0 | ||
}, | ||
"localComments": { | ||
"description": "The amount of comments that were made by users that are registered on this server.", | ||
"type": "integer", | ||
"minimum": 0 | ||
} | ||
} | ||
}, | ||
"metadata": { | ||
"description": "Free form key value pairs for software specific values. Clients should not rely on any specific key present.", | ||
"type": "object", | ||
"minProperties": 0, | ||
"additionalProperties": true | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
require "spec_helper" | ||
|
||
RSpec.describe "NodeInfo schema 2.2" do | ||
it "is a valid draft7 json schema" do | ||
expect(schema_for("2.2")).to match_json_schema :json_schema_draft4 | ||
end | ||
|
||
it "validates the example" do | ||
expect(example_for("2.2")).to match_json_schema :nodeinfo_22 | ||
end | ||
end |