]> source.dussan.org Git - gitea.git/commit
Add nodeinfo endpoint for federation purposes (#16953)
authortechknowlogick <techknowlogick@gitea.io>
Mon, 27 Sep 2021 23:38:06 +0000 (19:38 -0400)
committerGitHub <noreply@github.com>
Mon, 27 Sep 2021 23:38:06 +0000 (01:38 +0200)
commitbabab0bf5e1b6afc1bccf26e5ef0aec69972599e
treebc1ca1c5f8487d61df43efc4ffd0843f5848363e
parentf48dce3176649916c262ab080d5f38a0433f38c0
Add nodeinfo endpoint for federation purposes (#16953)

Nodeinfo is a way to expose certain metadata about a server for use of discovery regarding functionality of its federation capabilities.

Two endpoints are required:
1. `/.well-known/nodeinfo` which informs client where it can find the location of the location of its metadata (including which version of the schema is used)
2. the endpoint which exposes the metadata in json format according to schema.

Notes:
* `openRegistrations` is a required field, but I propose to set to false as default in case someone writes a crawler to discover "open" gitea instances
* to limit data leakage I also propose to not include the `usage` field (note it is required so it should be included, but left as empty).

More info:
https://github.com/jhass/nodeinfo
https://github.com/jhass/nodeinfo/tree/main/schemas/2.1
http://nodeinfo.diaspora.software/protocol.html
custom/conf/app.example.ini
docs/content/doc/advanced/config-cheat-sheet.en-us.md
modules/setting/federation.go [new file with mode: 0644]
modules/setting/setting.go
modules/structs/nodeinfo.go [new file with mode: 0644]
routers/api/v1/api.go
routers/api/v1/misc/nodeinfo.go [new file with mode: 0644]
routers/api/v1/swagger/nodeinfo.go [new file with mode: 0644]
routers/web/nodeinfo.go [new file with mode: 0644]
routers/web/web.go
templates/swagger/v1_json.tmpl