Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Add some more discovery mechanisms #38

Open
wants to merge 2 commits into from

2 participants

@tdfischer

This adds DNS-SD and host-meta discovery mechanisms to the spec.

@slopjong
Owner

How would this work with DNS-SD? I've never worked much with DNS stuff. How much effort would (more or less) be required to get it done?

Are you sure that it has much value? In OpenSpaceLint everyone can add a space and if the auto validator is done (one time) the spaces get reports if something is broken. With a simple backlink to the github issues they can request a change.

I think the static way is the way to make it as simple as possible but not simpler.

If a sysadmin can configure the local DNS to support DNS-SD, or configure avahi/ zeroconf/etc, a mobile device can automatically discover the current space's information.

Having it in the spec has no impact on the website or JSON, so I don't see a reason it shouldn't be documented. We use this for some of our kiosk software at SYNHAK. Should another space use the software, DNS-SD would be used to find status.json to configure itself appropriately and automatically.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Jan 6, 2013
  1. Add some more discovery mechanisms

    Trever Fischer authored
Commits on Jan 8, 2013
  1. Add more documentation about how to handle the default spaceapi endpo…

    Trever Fischer authored
    …int, and links to DNS-SD docs
This page is out of date. Refresh to see the latest.
Showing with 41 additions and 2 deletions.
  1. +41 −2 spaceapi-specification.mkd
View
43 spaceapi-specification.mkd
@@ -36,14 +36,53 @@ header with a value of '\*'. Additionally, it might be beneficial to add a
'Cache-Control' header with a value of 'no-cache', to prevent browser caches
from retaining old data.
-Implementors of this specification may provide a discovery tag on the main
+### Discovery Mechanisms #
+
+Implementors of this specification may provide a discovery tag on the root
page of their website, as such:
<link rel="space-api" href="https://revspace.nl/status/status.php" />
+Additionally, a SRV record may be added for DNS-SD.
+
+In the case of HTTPS:
+
+ default._spaceapis._tcp IN SRV 1 10 443 revspace.nl.
+ default._spaceapis._tcp IN TXT path=/status/status.php
+
+For boring HTTP:
+
+ default._spaceapi._tcp IN SRV 1 10 80 revspace.nl
+ default._spaceapi._tcp IN TXT path=/status/status.php
+
+One, the other, or both may be specified. Clients are RECOMMENDED to try HTTPS first.
+
+When multiple entries are advertised on a network, clients are RECOMMENDED to query for
+default._spaceapi._tcp.DnsDomainName to determine the local SpaceAPI endpoint.
+
+For a machine with the hostname "kiosk.space.synhak.org", it should query
+default._spaceapi._tcp.space.synhak.org.
+
+The above is not a complete configuration of DNS-SD. Additional records may be required:
+
+ b._dns-sd._udp IN PTR revspace.nl
+ lb._dns-sd._udp IN PTR revspace.nl
+ _spaceapis._tcp IN PTR default._spaceapis._tcp.revspace.nl
+ _spaceapi._tcp IN PTR default._spaceapi._tcp.revspace.nl
+
+More documentation is available at http://www.dns-sd.org/ServerStaticSetup.html
+Refer to the documentation for your DNS server for implementation details.
+
+For those using /.well-known/host-meta:
+
+ <Link>
+ <Rel>spaceapi</Rel>
+ <URI>https://revspace.nl/status/status.php</URL>
+ <Link>
+
Spaces implementing this specification should by default provide the json
string as the file /status.json in the root of their main website. For
-example: https://revspace.nl/status.json. If a discovery tag is present, this
+example: https://revspace.nl/status.json. If a discovery mechanism is present, this
overrides the default location specified in this paragraph.
### Space directory #
Something went wrong with that request. Please try again.