External node source

When you have a significant amount of nodes, it can be tedious to enter them one by one in the internal node source, so CTFreak also allows you to import them in bulk from a file or URL.

Add an external node source

To add an external node source, log in to the UI as an administrator, go to Node → New external node source and complete the form:

Name

A name to identify the node source.

Type

Depending on the origin of the nodes to import: URL or File.

URL

(For URL node source only)

The URL to query (with a GET request).

A successful call to this URL should return a node list in the following format (since release 1.29.0):

[
  {
    "name": "myAwesomeLinuxServer",
    "tagNames": [
      "webserver",
      "postgres"
    ],
    "osFamily": "UNIX",
    "connectionProtocolType": "SSH",
    "sshConnectionProtocol": {
      "username": "user1",
      "hostname": "192.168.1.20",
      "port": 22
    }
  },
  {
    "name": "myAwesomeWindowsServer",
    "tagNames": [
      "exchange"
    ],
    "osFamily": "WINDOWS",
    "connectionProtocolType": "SSH",
    "sshConnectionProtocol": {
      "username": "user2",
      "hostname": "192.168.1.30",
      "port": 22
    }
  },
  {
    "name": "myAwesomeSecondWindowsServer",
    "tagNames": [
      "nas"
    ],
    "osFamily": "WINDOWS",
    "connectionProtocolType": "WINRM",
    "winrmConnectionProtocol": {
      "authType": "NTLM",
      "ignoreSslCert": true,
      "username": "user3",
      "hostname": "192.168.1.40",
      "port": 5986
    }
  },
  {
    "name": "myAwesomeThirdWindowsServer",
    "tagNames": [
      "dbserver"
    ],
    "osFamily": "WINDOWS",
    "connectionProtocolType": "WINRM",
    "winrmConnectionProtocol": {
      "authType": "BASIC",
      "ignoreSslCert": false,
      "username": "user4",
      "hostname": "192.168.1.50",
      "port": 5986
    }
  }
]

FilePath

(For File node source only)

The path of the local file to be loaded.

File content should return a node list in the following format (since release 1.29.0):

- name: myAwesomeLinuxServer
  tagNames:
    - webserver
    - postgres
  osFamily: UNIX
  connectionProtocolType: SSH
  sshConnectionProtocol:
    username: user1
    hostname: 192.168.1.20
    port: 22

- name: myAwesomeWindowsServer
  tagNames:
    - exchange
  osFamily: WINDOWS
  connectionProtocolType: SSH
  sshConnectionProtocol:
    username: user2
    hostname: 192.168.1.30
    port: 22

- name: myAwesomeSecondWindowsServer
  tagNames:
    - nas
  osFamily: WINDOWS
  connectionProtocolType: WINRM
  winrmConnectionProtocol:
    authType: NTLM
    ignoreSslCert: true
    username: user3
    hostname: 192.168.1.40
    port: 5986

- name: myAwesomeThirdWindowsServer
  tagNames:
    - dbserver
  osFamily: WINDOWS
  connectionProtocolType: WINRM
  winrmConnectionProtocol:
    authType: BASIC
    ignoreSslCert: false
    username: user4
    hostname: 192.168.1.50
    port: 5986

Credential

Credential to use to connect to all the nodes.

Scheduled sync

Like tasks, you can schedule the reloading of nodes from its source.

Cron expression

Cron expression to use for node source with scheduled sync.