summaryrefslogtreecommitdiffstats
path: root/tests/integration/schemas/nodeinfo_2.1.json
blob: 561e64479729974d6ac78c17b58f5b0e47511211 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "http://nodeinfo.diaspora.software/ns/schema/2.1#",
  "description": "NodeInfo schema version 2.1.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "version",
    "software",
    "protocols",
    "services",
    "openRegistrations",
    "usage",
    "metadata"
  ],
  "properties": {
    "version": {
      "description": "The schema version, must be 2.1.",
      "enum": [
        "2.1"
      ]
    },
    "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
    }
  }
}