Skip to main content
Star us on GitHub Star

Managing

Managing Configurations

Here is a JSON schema, modeled on the tunneler client configuration.

{
"$id": "http://myapp.company.com/schemas/myapp.v1.config.json",
"additionalProperties": false,
"properties": {
"hostname": {
"type": "string"
},
"port": {
"maximum": 65535,
"minimum": 0,
"type": "integer"
}
},
"required": [
"hostname",
"port"
],
"type": "object"
}

Put the schema in a file named example-config-type.json, and you can create a configuration type named my-app with it.

$ ziti edge create config-type my-app --schema-file example-config-type.json 

You can now create a configuration of this type

$ ziti edge create config ssh-client my-app \
'{
"hostname" : "ssh.company.com",
"port" : 22
}'

Finally, you can reference this when creating a service.

$ ziti edge create service ssh --configs ssh

If a particular site wanted SSH on a different port, you could create a different configuration

$ ziti edge create config scranton-office-ssh-client my-app \
'{
"hostname" : "ssh.company.com",
"port" : 2222
}'

The identity corresponding to a tunneler at that site could then be configured to use that configuration.

$ ziti edge create identity service scranton-office

$ ziti edge update identity-configs scranton-office ssh scranton-office-ssh-client

$ ziti edge list identity service-configs scranton-office
service: ssh config: scranton-office-ssh-client
results: 1-1 of 1

Overrides can be removed as well, if they are no longer needed.

$ ziti edge update identity-configs scranton-office ssh scranton-office-ssh-client --remove

$ ziti edge list identity service-configs scranton-office
results: none