summaryrefslogtreecommitdiff
path: root/controller/README.md
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-07-08 13:37:51 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-07-08 13:37:51 -0700
commita6e5914aa766c79291704468153e99c5f9bc3fb8 (patch)
treea5931a3a23aa69230499fe6b377dd50bb9e15bde /controller/README.md
parent6d8de214eb5abd6ec03a8e9504e75dc2cbc58d2a (diff)
downloadinfinitytier-a6e5914aa766c79291704468153e99c5f9bc3fb8.tar.gz
infinitytier-a6e5914aa766c79291704468153e99c5f9bc3fb8.zip
docs
Diffstat (limited to 'controller/README.md')
-rw-r--r--controller/README.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/controller/README.md b/controller/README.md
index c3682fe9..6897b688 100644
--- a/controller/README.md
+++ b/controller/README.md
@@ -213,6 +213,20 @@ For your own networks you'll probably want to change `private` to `true` unless
#### `/controller/network/<network ID>/member`
+ * Purpose: Get a set of all members on this network
+ * Methods: GET
+ * Returns: { object }
+
+This returns a JSON object containing all member IDs as keys and their `memberRevisionCounter` values as values.
+
+#### `/controller/network/<network ID>/active`
+
+ * Purpose: Get a set of all active members on this network
+ * Methods: GET
+ * Returns: { object }
+
+This returns an object containing all currently online members and the most recent `recentLog` entries for their last request.
+
#### `/controller/network/<network ID>/member/<address>`
* Purpose: Create, authorize, or remove a network member
@@ -229,5 +243,19 @@ For your own networks you'll probably want to change `private` to `true` unless
| identity | string | Member's public ZeroTier identity (if known) | no |
| ipAssignments | array[string] | Managed IP address assignments | YES |
| memberRevision | integer | Member revision counter | no |
+| recentLog | array[object] | Recent member activity log; see below | no |
Note that managed IP assignments are only used if they fall within a managed route. Otherwise they are ignored.
+
+**Recent log object format:**
+
+| Field | Type | Description |
+| --------------------- | ------------- | ------------------------------------------------- |
+| ts | integer | Time of request, ms since epoch |
+| authorized | boolean | Was member authorized? |
+| clientMajorVersion | integer | Client major version or -1 if unknown |
+| clientMinorVersion | integer | Client minor version or -1 if unknown |
+| clientRevision | integer | Client revision or -1 if unknown |
+| fromAddr | string | Physical address if known |
+
+The controller can only know a member's `fromAddr` if it's able to establish a direct path to it. Members behind very restrictive firewalls may not have this information since the controller will be receiving the member's requests by way of a relay. ZeroTier does not back-trace IP paths as packets are relayed since this would add a lot of protocol overhead.