Getting Started Concepts The Things Stack Cloud The Things Stack Enterprise Integrations API Hardware
Get The Things Stack

The Things Stack Enterprise

    Overview
  • AWS
  • Kubernetes
  • Docker
  • The Things Join Server
    • Device Claiming Configuration
    • Interoperability Configuration
  • Manage The Things Stack

Interoperability Configuration

The Things Stack Network Server and Application Server can use LoRaWAN® Backend Interfaces 1.0 and 1.1 with LoRaWAN Join Servers.

Network Server and Application Server use this configuration to contact LoRaWAN Join Servers. Learn how to configure Network Server and Application Server to use the interoperability client configuration.

Configuration Files

The Things Stack reads configuration from a file system. The root should contain config.yml, which contains Join Servers.

join-servers:
  - file: "./path/js.yml" # relative path to a file containing Join Server configuration
    components: ["as", "ns"] # optional selector for components (new in 3.21.0)
    join-euis: # list of Join EUI prefixes the Join Server should handle
      - "11AA000000000000/16" # in this example, the first 16 bits, so all JoinEUIs starting with 11AA

All paths are relative to the config.yml file they are defined in.

The Things Stack Network Server always first tries the cluster-local Join Server. If the cluster-local Join Server does not accept the join-request, a Join Server is contacted via the LoRaWAN Backend Interfaces interoperability.

In case JoinEUI prefixes overlap, the most specific prefix takes precedence. 0000000000000000/0 prefix matches all JoinEUIs. Use this prefix if you wish to define a Join Server interoperability configuration for all other join-requests. For example:

join-servers:
  - file: "./fallback/js.yml"
    join-euis:
      - "0000000000000000/0"

The Join Server configuration provides means to configure how the components interact with the Join Server. The configuration supports multiple options:

scheme: "https" # URL scheme. Defaults to https
fqdn: "thethings.example" # FQDN of the Join Server
port: 443 # port to connect at. Defaults to 443
protocol: "BI1.0" # Backend Interfaces protocol to use (BI1.0 or BI1.1)
paths: # custom URI paths to use for various requests. Defaults to /
  join: "some/path" # the URI path to use for JoinReq
  rejoin: "some/other/path" # the URI path to use for RejoinReq
  app-s-key: "other/path" # the URI path to use for AppSKeyReq
  home-ns: "somepath" # the URI path to use for HomeNSReq
sender-ns-id: "1122334455667788" # Backend Interfaces 1.1 NSID (overrides ns.interop.id)
basic-auth: # HTTP Basic Authentication (optional)
  username: "user" # HTTP Basic username
  password: "secret" # HTTP Basic password
tls: # TLS configuration to use (optional)
  source: "file" # TLS client certificate source (file or key-vault)
  root-ca: "path/to/clientca.pem" # path to CA file to verify TLS server certificate (optional)
  certificate: "path/to/clientcert.pem" # path to TLS client certificate
  key: "path/to/clientkey.pem" # path to TLS client key
headers: # HTTP headers to send, defined as key-value map
  Some-Header: "SomeValue"

If tls.source is set to key-vault, The Things Stack uses its Key Vault configuration to load the TLS client certificate.

Interoperability with The Things Join Server

The Things Join Server is a stand-alone LoRaWAN Join Server that can be deployed by device makers, distributors and integrators.

The Things Join Server operated by The Things Industries should be configured as follows:

# config.yml
join-servers:
  ...
  - file: './tti/js.yml'
    join-euis:
      - '70B3D57ED0000000/64'
      - 'EC656E0000000000/56'
  ...
# tti/js.yml
fqdn: "js.cloud.thethings.industries"
protocol: "BI1.1"
tls:
  source: "key-vault"

Please contact The Things Industries support to gain access to The Things Join Server.

Interoperability with Semtech Join Server

Semtech Join Server is a hosted LoRaWAN Join Server by Semtech for use with pre-provisioned LoRa Edge modems.

Semtech Join Server should be configured as follows:

# config.yml
join-servers:
  ...
  - file: './semtech/js.yml'
    join-euis:
      - '0016C00000000000/24'
  ...
# semtech/js.yml
fqdn: "js.loracloud.com"
port: 7009
protocol: "BI1.0"
paths:
  join: "api/v1/rens/rens-1::2/lbi_joinreq" # replace 'rens-1::1' by the RENS issued by Semtech
tls:
  source: "file"
  root-ca: "./ca.pem" # path to the CA issued by Semtech
  certificate: "./cert.pem" # path to the TLS client certificate issued by Semtech
  key: "./key.pem" # path to the TLS client key issued by Semtech
← Device Claiming Configuration

On this page

  • Configuration Files
  • Interoperability with The Things Join Server
  • Interoperability with Semtech Join Server

Sections

Getting Started

Concepts

The Things Stack Cloud

The Things Stack Enterprise

Integrations

API

Hardware

Sitemap

View our Sitemap

Contributing

GitHub

About Us

The Things Industries