feat(docs): update nodeinfo spec
Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2609>
This commit is contained in:
parent
7ccb2d88f8
commit
3a5090a85c
|
@ -0,0 +1 @@
|
||||||
|
Updated the Nodeinfo 2 spec to address feedback from implementation.
|
|
@ -55,12 +55,6 @@ The NodeInfo endpoint must contain all mandatory elements listed in the specific
|
||||||
`defaultUploadQuota` (Number)
|
`defaultUploadQuota` (Number)
|
||||||
: The default upload quota (in megabytes) allowed for new users
|
: The default upload quota (in megabytes) allowed for new users
|
||||||
|
|
||||||
`library.federationEnabled` (Boolean)
|
|
||||||
: Whether federation is enabled
|
|
||||||
|
|
||||||
`library.anonymousCanListen` (Boolean)
|
|
||||||
: Whether public endpoints require authentication
|
|
||||||
|
|
||||||
`supportedUploadExtensions` (Array\<String\>)
|
`supportedUploadExtensions` (Array\<String\>)
|
||||||
: A list of file extensions enabled for upload
|
: A list of file extensions enabled for upload
|
||||||
|
|
||||||
|
@ -76,28 +70,37 @@ The NodeInfo endpoint must contain all mandatory elements listed in the specific
|
||||||
`instanceSupportMessage` (String)
|
`instanceSupportMessage` (String)
|
||||||
: The support message associated with the instance
|
: The support message associated with the instance
|
||||||
|
|
||||||
`content.top_music_categories` (Array\<Object\>)
|
`content.local` (Object)
|
||||||
|
: An object containing a summary of local content
|
||||||
|
|
||||||
|
`content.local.artists` (number)
|
||||||
|
: The number of artists associated with local uploads on the pod
|
||||||
|
|
||||||
|
`content.local.releases` (number)
|
||||||
|
: The number of albums or series associated with local uploads on the pod
|
||||||
|
|
||||||
|
`content.local.recordings` (number)
|
||||||
|
: The number of tracks or episodes associated with local uploads on the pod
|
||||||
|
|
||||||
|
`content.local.hoursOfContent` (number)
|
||||||
|
: The total number of hours of content associated with local uploads on the pod
|
||||||
|
|
||||||
|
`content.topMusicCategories` (Array\<Object\>)
|
||||||
: The top three music genres and the number of uploads tagged with them
|
: The top three music genres and the number of uploads tagged with them
|
||||||
|
|
||||||
`content.top_podcast_categories` (Array\<Object\>)
|
`content.topPodcastCategories` (Array\<Object\>)
|
||||||
: The top three podcast categories and the number of uploads tagged with them
|
: The top three podcast categories and the number of uploads tagged with them
|
||||||
|
|
||||||
`instance_policy.moderation_policy` (String)
|
`languages` (Array\<String\>)
|
||||||
: The moderation policy of the pod
|
|
||||||
|
|
||||||
`instance_policy.terms_of_service` (String)
|
|
||||||
: The terms of service of the pod
|
|
||||||
|
|
||||||
`instance_policy.languages` (Array\<String\>)
|
|
||||||
: The languages spoken by the pod administrators
|
: The languages spoken by the pod administrators
|
||||||
|
|
||||||
`instance_policy.location` (String)
|
`location` (String)
|
||||||
: The country the pod is located in
|
: The country the pod is located in
|
||||||
|
|
||||||
`federation.follows_instances` (Number)
|
`federation.followsInstances` (Number)
|
||||||
: The number of Funkwhale pods that the target pod follows
|
: The number of Funkwhale pods that the target pod follows
|
||||||
|
|
||||||
`federation.following_instances` (Number)
|
`federation.followingInstances` (Number)
|
||||||
: The number of Funkwhale pods that publicly follow the target pod
|
: The number of Funkwhale pods that publicly follow the target pod
|
||||||
|
|
||||||
`features` (Array\<String\>)
|
`features` (Array\<String\>)
|
||||||
|
@ -141,7 +144,7 @@ Example response:
|
||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"actorId": "string",
|
"actorId": "string",
|
||||||
"private": false,
|
"private": true,
|
||||||
"shortDescription": "string",
|
"shortDescription": "string",
|
||||||
"longDescription": "string",
|
"longDescription": "string",
|
||||||
"rules": "string",
|
"rules": "string",
|
||||||
|
@ -150,10 +153,6 @@ Example response:
|
||||||
"nodeName": "string",
|
"nodeName": "string",
|
||||||
"banner": "string",
|
"banner": "string",
|
||||||
"defaultUploadQuota": 0,
|
"defaultUploadQuota": 0,
|
||||||
"library": {
|
|
||||||
"federationEnabled": true,
|
|
||||||
"anonymousCanListen": true
|
|
||||||
},
|
|
||||||
"supportedUploadExtensions": ["string"],
|
"supportedUploadExtensions": ["string"],
|
||||||
"allowList": {
|
"allowList": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
|
@ -161,14 +160,16 @@ Example response:
|
||||||
},
|
},
|
||||||
"funkwhaleSupportMessageEnabled": true,
|
"funkwhaleSupportMessageEnabled": true,
|
||||||
"instanceSupportMessage": "string",
|
"instanceSupportMessage": "string",
|
||||||
"instance_policy": {
|
"languages": ["string"],
|
||||||
"moderation_policy": "string",
|
"location": "string",
|
||||||
"terms_of_service": "string",
|
|
||||||
"languages": ["string"],
|
|
||||||
"location": "string"
|
|
||||||
},
|
|
||||||
"content": {
|
"content": {
|
||||||
"top_music_categories": [
|
"local": {
|
||||||
|
"artists": 1000,
|
||||||
|
"releases": 10000,
|
||||||
|
"recordings": 150000,
|
||||||
|
"hoursOfContent": 7500
|
||||||
|
},
|
||||||
|
"topMusicCategories": [
|
||||||
{
|
{
|
||||||
"rock": 1256
|
"rock": 1256
|
||||||
},
|
},
|
||||||
|
@ -179,7 +180,7 @@ Example response:
|
||||||
"classical": 308
|
"classical": 308
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"top_podcast_categories": [
|
"topPodcastCategories": [
|
||||||
{
|
{
|
||||||
"comedy": 12
|
"comedy": 12
|
||||||
},
|
},
|
||||||
|
@ -191,11 +192,18 @@ Example response:
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"federation": {
|
"federation": {
|
||||||
"followed_instances": 0,
|
"followedInstances": 0,
|
||||||
"following_instances": 0
|
"followingInstances": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"features": ["channels", "podcasts", "collections", "audiobooks"]
|
"features": [
|
||||||
|
"channels",
|
||||||
|
"podcasts",
|
||||||
|
"collections",
|
||||||
|
"audiobooks",
|
||||||
|
"federation",
|
||||||
|
"anonymousCanListen"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -470,13 +470,6 @@ components:
|
||||||
format: url
|
format: url
|
||||||
defaultUploadQuota:
|
defaultUploadQuota:
|
||||||
type: integer
|
type: integer
|
||||||
library:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
federationEnabled:
|
|
||||||
type: boolean
|
|
||||||
anonymousCanListen:
|
|
||||||
type: boolean
|
|
||||||
supportedUploadExtensions:
|
supportedUploadExtensions:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
|
@ -494,25 +487,32 @@ components:
|
||||||
type: boolean
|
type: boolean
|
||||||
instanceSupportMessage:
|
instanceSupportMessage:
|
||||||
type: string
|
type: string
|
||||||
instance_policy:
|
languages:
|
||||||
type: object
|
type: array
|
||||||
properties:
|
items:
|
||||||
moderation_policy:
|
type: string
|
||||||
type: string
|
location:
|
||||||
format: url
|
type: string
|
||||||
terms_of_service:
|
|
||||||
type: string
|
|
||||||
format: url
|
|
||||||
languages:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
location:
|
|
||||||
type: string
|
|
||||||
content:
|
content:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
top_music_categories:
|
local:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
artists:
|
||||||
|
type: number
|
||||||
|
releases:
|
||||||
|
type: number
|
||||||
|
recordings:
|
||||||
|
type: number
|
||||||
|
hoursOfContent:
|
||||||
|
type: number
|
||||||
|
example:
|
||||||
|
artists: 1000
|
||||||
|
releases: 10000
|
||||||
|
recordings: 150000
|
||||||
|
hoursOfContent: 7500
|
||||||
|
topMusicCategories:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: object
|
type: object
|
||||||
|
@ -522,7 +522,7 @@ components:
|
||||||
- "rock": 1256
|
- "rock": 1256
|
||||||
- "jazz": 604
|
- "jazz": 604
|
||||||
- "classical": 308
|
- "classical": 308
|
||||||
top_podcast_categories:
|
topPodcastCategories:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: object
|
type: object
|
||||||
|
@ -535,9 +535,9 @@ components:
|
||||||
federation:
|
federation:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
followed_instances:
|
followedInstances:
|
||||||
type: integer
|
type: integer
|
||||||
following_instances:
|
followingInstances:
|
||||||
type: integer
|
type: integer
|
||||||
features:
|
features:
|
||||||
type: array
|
type: array
|
||||||
|
@ -548,6 +548,8 @@ components:
|
||||||
- "podcasts"
|
- "podcasts"
|
||||||
- "collections"
|
- "collections"
|
||||||
- "audiobooks"
|
- "audiobooks"
|
||||||
|
- "federation"
|
||||||
|
- "anonymousCanListen"
|
||||||
Error:
|
Error:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
Loading…
Reference in New Issue