entitydb/README.md

2.0 KiB

entitydb

EntityDB holds all network allocations and associated information.

Format

Every 'entity' has its data stored in a JSON file named as 'UNIQUE.json' where UNIQUE is any unique identifier (UUID/hash/name etc.).

Content of entity (data)

The data should be a JSON object with a anonymous top-level object and "route" as only object. "route" should be a list of all routes provided by the entity with a required list of devices named "device".

"device" must contain at least one device that is reachable. A router is commonly used as the only object for the network as it is necessary in most setups.

Every device should contain the CRXN IPv6 address, along the optional list of services as "service".

Services must have a type (eg. tcp, udp, http, rsync, git) and at least one endpoint in the endpoints list.

Every object may contain a optional description, except lists.

Descriptions should not be used other than for describing things in a human-readable form.

Example

Here's a example that you may modify to your needs.

{
  "route": [
    "fdaa:bbcc:ddee::/48": {
      "description": "My home network",
      "device": [
        "router": {
          "description": "My custom router running BIRD",
          "address": "fdaa:bbcc:ddee::1"
        },
        "mail": {
          "description": "Electronic mail endpoint",
          "address": "fdaa:bbcc:ddee::5",
          "service": [
            {
              "type": "smtp",
              "endpoint": [
                { "port": 25 }
              ]
            },
            {
              "description": "Super-secret authentication gateway",
              "type": "kerberos",
              "endpoint": [
                { "port": 89 }
              ]
            },
            {
              "type": "imap",
              "endpoint": [
                { "port": 143 }
              ]
            }
          ]
        }
      ]
    },
    "fdcc:ba11:b00b::/48": {
      "device": [
        "router": "fdcc:ba11:b00b::1"
      ]
    }
  ]
}