External Systems support

Interaction with external systems is made dynamic and plug-able removing development cycle to support new endpoint. In order to share the external system information, TOSCA provides a way to create macros using dsl_definitions: Link to TOSCA spec: info 1, info 2.

Use cases: * Resource resolution using REST (see tab Node Type) or SQL (see tab Node Type) external systems * gRPC is supported for remote execution * Any REST endpoint can be dynamically injected as part of the scripting framework.

Here are some examples on how to populate the system information within the package:

token-auth

{
  "dsl_definitions": {
  "ipam-1": {
    "type": "token-auth",
    "url": "http://netbox-nginx.netprog:8080",
    "token": "Token 0123456789abcdef0123456789abcdef01234567"
  }
}

basic-auth

{
  "dsl_definitions": {
    "ipam-1": {
      "type": "basic-auth",
      "url": "http://localhost:8080",
      "username": "bob",
      "password": "marley"
    }
  }
}

ssl-basic-auth

{
  "dsl_definitions": {
    "ipam-1": {
      "type": "ssl-basic-auth",
      "url": "http://localhost:32778",
      "keyStoreInstance": "JKS or PKCS12",
      "sslTrust": "trusture",
      "sslTrustPassword": "trustore password",
      "sslKey": "keystore",
      "sslKeyPassword": "keystore password"
    }
  }
}

grpc-executor

{
  "dsl_definitions": {
    "remote-executor": {
      "type": "token-auth",
      "host": "cds-command-executor.netprog",
      "port": "50051",
      "token": "Basic Y2NzZGthcHBzOmNjc2RrYXBwcw=="
    }
  }
}

maria-db

{
  "dsl_definitions": {
    "netprog-db": {
      "type": "maria-db",
      "url": "jdbc:mysql://10.195.196.123:32050/netprog",
      "username": "netprog",
      "password": "netprog"
    }
  }
}