Skip to content

Decentralize directory #144

Description

@gidsi

I would like to propose an addition to the directory to maybe make the repository obsolete in the future and get us out of the picture.

I would leave the directory.json as it is for now, but would like to enable spaces to provide the endpoint file in a standardized place (e.g. https://spacewebsite.com/spaceapi.json, comparable to the robots.txt)

I would also give them the opportunity to change the default either in a meta tag or as an http header on their main site, e.g.

As part of html

<html>
  <head>
    <meta name="spaceapi" content="https://example.com/myspaceapi/status.json">
  </head>
    ...
</html>

As a http header

< HTTP/2 200
< content-type: text/html
< server: nginx
< x-spaceapi-endpoint: https://example.com/myspaceapi/status.json

Also it would be necessary to introduce a new field in the schema, something like this

{
  "connectedTo": [
    "https://chaospott.de",
    "https://example.com",
    "https://chaosdorf.de",
    "https://c3l.lu"
  ]
}

This way we could crawl through the different endpoints and spaces won't have the need to create a pull request (i would like to automatically create pull requests to the ones we find to have them in the static file too).

I would use a default position so spaces won't need to have the endpoint of the space they want to link (it changes sometimes and then they would have old and stale data that would need to be updated), also that would mean that you could add spaces to the list (that you know) and we could automatically add them the moment they provide one.

The static file could become irrelevant and we would have a network instead (the data itself would also be quite interesting), and if this doesn't work everything would kinda like stay the same so the risk is low in my opinion.

Also something like a "meta organization" would be possible in some way too.

It might be easier for people to join since you can contact a space that will add you, you won't need a github account anymore and you don't know how to work with git.

What do you guys think?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions