1
0
mirror of https://github.com/taigrr/nats.docs synced 2025-01-18 04:03:23 -08:00
nats.docs/docs/nats_tools/nas/nas_conf.html
2019-09-27 16:14:03 -05:00

3349 lines
93 KiB
HTML

<!DOCTYPE HTML>
<html lang="" >
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Basics ยท NATS</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<meta name="author" content="The NATS Maintainers">
<link rel="stylesheet" href="../../gitbook/style.css">
<link rel="stylesheet" href="../../gitbook/gitbook-plugin-prism/prism.css">
<link rel="stylesheet" href="../../gitbook/gitbook-plugin-toggle-chapters/toggle.css">
<link rel="stylesheet" href="../../gitbook/gitbook-plugin-anchors/plugin.css">
<link rel="stylesheet" href="../../gitbook/gitbook-plugin-search/search.css">
<link rel="stylesheet" href="../../gitbook/gitbook-plugin-fontsettings/website.css">
<meta name="HandheldFriendly" content="true"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../gitbook/images/apple-touch-icon-precomposed-152.png">
<link rel="shortcut icon" href="../../gitbook/images/favicon.ico" type="image/x-icon">
<link rel="next" href="inspecting_jwts.html" />
<link rel="prev" href="./" />
<link rel="stylesheet" href="https://cdn.materialdesignicons.com/3.6.95/css/materialdesignicons.min.css">
</head>
<body>
<div class="book">
<div class="book-summary">
<div id="book-search-input" role="search">
<input type="text" placeholder="Type to search" />
</div>
<nav role="navigation">
<ul class="summary">
<li class="chapter " data-level="1.1" data-path="../../">
<a href="../../">
Introduction
</a>
</li>
<li class="chapter " data-level="1.2" data-path="../../whats_new/whats_new_20.html">
<a href="../../whats_new/whats_new_20.html">
What's New in 2.0
</a>
</li>
<li class="chapter " data-level="1.3" data-path="../../faq.html">
<a href="../../faq.html">
FAQ
</a>
</li>
<li class="chapter " data-level="1.4" >
<a target="_blank" href="https://nats.io">
nats.io
</a>
</li>
<li class="header">Concepts</li>
<li class="chapter " data-level="2.1" data-path="../../developer/concepts/intro.html">
<a href="../../developer/concepts/intro.html">
What is NATS
</a>
</li>
<li class="chapter " data-level="2.2" data-path="../../developer/concepts/subjects.html">
<a href="../../developer/concepts/subjects.html">
Subject-Based Messaging
</a>
</li>
<li class="chapter " data-level="2.3" data-path="../../developer/concepts/pubsub.html">
<a href="../../developer/concepts/pubsub.html">
Publish-Subscribe
</a>
</li>
<li class="chapter " data-level="2.4" data-path="../../developer/concepts/reqreply.html">
<a href="../../developer/concepts/reqreply.html">
Request-Reply
</a>
</li>
<li class="chapter " data-level="2.5" data-path="../../developer/concepts/queue.html">
<a href="../../developer/concepts/queue.html">
Queue Groups
</a>
</li>
<li class="chapter " data-level="2.6" data-path="../../developer/concepts/acks.html">
<a href="../../developer/concepts/acks.html">
Acknowledgements
</a>
</li>
<li class="chapter " data-level="2.7" data-path="../../developer/concepts/seq_num.html">
<a href="../../developer/concepts/seq_num.html">
Sequence Numbers
</a>
</li>
<li class="header">Developing With NATS</li>
<li class="chapter " data-level="3.1" data-path="../../developer/">
<a href="../../developer/">
Introduction
</a>
</li>
<li class="chapter " data-level="3.2" data-path="../../developer/connecting/intro.html">
<a href="../../developer/connecting/intro.html">
Connecting
</a>
<ul class="articles">
<li class="chapter " data-level="3.2.1" data-path="../../developer/connecting/default_server.html">
<a href="../../developer/connecting/default_server.html">
Connecting to the Default Server
</a>
</li>
<li class="chapter " data-level="3.2.2" data-path="../../developer/connecting/specific_server.html">
<a href="../../developer/connecting/specific_server.html">
Connecting to a Specific Server
</a>
</li>
<li class="chapter " data-level="3.2.3" data-path="../../developer/connecting/cluster.html">
<a href="../../developer/connecting/cluster.html">
Connecting to a Cluster
</a>
</li>
<li class="chapter " data-level="3.2.4" data-path="../../developer/connecting/connect_timeout.html">
<a href="../../developer/connecting/connect_timeout.html">
Setting a Connect Timeout
</a>
</li>
<li class="chapter " data-level="3.2.5" data-path="../../developer/connecting/pingpong.html">
<a href="../../developer/connecting/pingpong.html">
Ping/Pong Protocol
</a>
</li>
<li class="chapter " data-level="3.2.6" data-path="../../developer/connecting/protocol.html">
<a href="../../developer/connecting/protocol.html">
Controlling the Client/Server Protocol
</a>
</li>
<li class="chapter " data-level="3.2.7" data-path="../../developer/connecting/noecho.html">
<a href="../../developer/connecting/noecho.html">
Turning Off Echo'd Messages
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.3" data-path="../../developer/reconnect/intro.html">
<a href="../../developer/reconnect/intro.html">
Automatic Reconnections
</a>
<ul class="articles">
<li class="chapter " data-level="3.3.1" data-path="../../developer/reconnect/disable.html">
<a href="../../developer/reconnect/disable.html">
Disabling Reconnect
</a>
</li>
<li class="chapter " data-level="3.3.2" data-path="../../developer/reconnect/max.html">
<a href="../../developer/reconnect/max.html">
Set the Number of Reconnect Attempts
</a>
</li>
<li class="chapter " data-level="3.3.3" data-path="../../developer/reconnect/wait.html">
<a href="../../developer/reconnect/wait.html">
Pausing Between Reconnect Attempts
</a>
</li>
<li class="chapter " data-level="3.3.4" data-path="../../developer/reconnect/random.html">
<a href="../../developer/reconnect/random.html">
Avoiding the Thundering Herd
</a>
</li>
<li class="chapter " data-level="3.3.5" data-path="../../developer/reconnect/events.html">
<a href="../../developer/reconnect/events.html">
Listening for Reconnect Events
</a>
</li>
<li class="chapter " data-level="3.3.6" data-path="../../developer/reconnect/buffer.html">
<a href="../../developer/reconnect/buffer.html">
Buffering Messages During Reconnect Attempts
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.4" data-path="../../developer/security/intro.html">
<a href="../../developer/security/intro.html">
Securing Connections
</a>
<ul class="articles">
<li class="chapter " data-level="3.4.1" data-path="../../developer/security/userpass.html">
<a href="../../developer/security/userpass.html">
Authenticating with a User and Password
</a>
</li>
<li class="chapter " data-level="3.4.2" data-path="../../developer/security/token.html">
<a href="../../developer/security/token.html">
Authenticating with a Token
</a>
</li>
<li class="chapter " data-level="3.4.3" data-path="../../developer/security/nkey.html">
<a href="../../developer/security/nkey.html">
Authenticating with an NKey
</a>
</li>
<li class="chapter " data-level="3.4.4" data-path="../../developer/security/creds.html">
<a href="../../developer/security/creds.html">
Authenticating with a Credentials File
</a>
</li>
<li class="chapter " data-level="3.4.5" data-path="../../developer/security/tls.html">
<a href="../../developer/security/tls.html">
Encrypting Connections with TLS
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.5" data-path="../../developer/receiving/intro.html">
<a href="../../developer/receiving/intro.html">
Receiving Messages
</a>
<ul class="articles">
<li class="chapter " data-level="3.5.1" data-path="../../developer/receiving/sync.html">
<a href="../../developer/receiving/sync.html">
Synchronous Subscriptions
</a>
</li>
<li class="chapter " data-level="3.5.2" data-path="../../developer/receiving/async.html">
<a href="../../developer/receiving/async.html">
Asynchronous Subscriptions
</a>
</li>
<li class="chapter " data-level="3.5.3" data-path="../../developer/receiving/unsubscribing.html">
<a href="../../developer/receiving/unsubscribing.html">
Unsubscribing
</a>
</li>
<li class="chapter " data-level="3.5.4" data-path="../../developer/receiving/unsub_after.html">
<a href="../../developer/receiving/unsub_after.html">
Unsubscribing After N Messages
</a>
</li>
<li class="chapter " data-level="3.5.5" data-path="../../developer/receiving/reply.html">
<a href="../../developer/receiving/reply.html">
Replying to a Message
</a>
</li>
<li class="chapter " data-level="3.5.6" data-path="../../developer/receiving/wildcards.html">
<a href="../../developer/receiving/wildcards.html">
Wildcard Subscriptions
</a>
</li>
<li class="chapter " data-level="3.5.7" data-path="../../developer/receiving/queues.html">
<a href="../../developer/receiving/queues.html">
Queue Subscriptions
</a>
</li>
<li class="chapter " data-level="3.5.8" data-path="../../developer/receiving/drain.html">
<a href="../../developer/receiving/drain.html">
Draining Messages Before Disconnect
</a>
</li>
<li class="chapter " data-level="3.5.9" data-path="../../developer/receiving/structure.html">
<a href="../../developer/receiving/structure.html">
Structured Data
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.6" data-path="../../developer/sending/intro.html">
<a href="../../developer/sending/intro.html">
Sending Messages
</a>
<ul class="articles">
<li class="chapter " data-level="3.6.1" data-path="../../developer/sending/replyto.html">
<a href="../../developer/sending/replyto.html">
Including a Reply Subject
</a>
</li>
<li class="chapter " data-level="3.6.2" data-path="../../developer/sending/request_reply.html">
<a href="../../developer/sending/request_reply.html">
Request-Reply Semantics
</a>
</li>
<li class="chapter " data-level="3.6.3" data-path="../../developer/sending/caches.html">
<a href="../../developer/sending/caches.html">
Caches, Flush and Ping
</a>
</li>
<li class="chapter " data-level="3.6.4" data-path="../../developer/sending/structure.html">
<a href="../../developer/sending/structure.html">
Sending Structured Data
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.7" data-path="../../developer/events/intro.html">
<a href="../../developer/events/intro.html">
Monitoring the Connection
</a>
<ul class="articles">
<li class="chapter " data-level="3.7.1" data-path="../../developer/events/events.html">
<a href="../../developer/events/events.html">
Listen for Connection Events
</a>
</li>
<li class="chapter " data-level="3.7.2" data-path="../../developer/events/slow.html">
<a href="../../developer/events/slow.html">
Slow Consumers
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="3.8" data-path="../../developer/tutorials/intro.html">
<a href="../../developer/tutorials/intro.html">
Tutorials
</a>
<ul class="articles">
<li class="chapter " data-level="3.8.1" data-path="../../developer/tutorials/pubsub.html">
<a href="../../developer/tutorials/pubsub.html">
Explore NATS Pub/Sub
</a>
</li>
<li class="chapter " data-level="3.8.2" data-path="../../developer/tutorials/reqreply.html">
<a href="../../developer/tutorials/reqreply.html">
Explore NATS Request/Reply
</a>
</li>
<li class="chapter " data-level="3.8.3" data-path="../../developer/tutorials/queues.html">
<a href="../../developer/tutorials/queues.html">
Explore NATS Queueing
</a>
</li>
<li class="chapter " data-level="3.8.4" data-path="../../developer/tutorials/custom_dialer.html">
<a href="../../developer/tutorials/custom_dialer.html">
Advanced Connect and Custom Dialer in Go
</a>
</li>
</ul>
</li>
<li class="header">NATS Server</li>
<li class="chapter " data-level="4.1" data-path="../../nats_server/installation.html">
<a href="../../nats_server/installation.html">
Installing
</a>
</li>
<li class="chapter " data-level="4.2" data-path="../../nats_server/running.html">
<a href="../../nats_server/running.html">
Running
</a>
<ul class="articles">
<li class="chapter " data-level="4.2.1" data-path="../../nats_server/windows_srv.html">
<a href="../../nats_server/windows_srv.html">
Window Service
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="4.3" data-path="../../nats_server/clients.html">
<a href="../../nats_server/clients.html">
Clients
</a>
</li>
<li class="chapter " data-level="4.4" data-path="../../nats_server/flags.html">
<a href="../../nats_server/flags.html">
Flags
</a>
</li>
<li class="chapter " data-level="4.5" data-path="../../nats_server/configuration.html">
<a href="../../nats_server/configuration.html">
Configuration
</a>
<ul class="articles">
<li class="chapter " data-level="4.5.1" data-path="../../nats_server/securing_nats.html">
<a href="../../nats_server/securing_nats.html">
Securing NATS
</a>
<ul class="articles">
<li class="chapter " data-level="4.5.1.1" data-path="../../nats_server/tls.html">
<a href="../../nats_server/tls.html">
Enabling TLS
</a>
</li>
<li class="chapter " data-level="4.5.1.2" data-path="../../nats_server/auth_intro.html">
<a href="../../nats_server/auth_intro.html">
Authentication
</a>
<ul class="articles">
<li class="chapter " data-level="4.5.1.2.1" data-path="../../nats_server/tokens.html">
<a href="../../nats_server/tokens.html">
Tokens
</a>
</li>
<li class="chapter " data-level="4.5.1.2.2" data-path="../../nats_server/username_password.html">
<a href="../../nats_server/username_password.html">
Username/Password
</a>
</li>
<li class="chapter " data-level="4.5.1.2.3" data-path="../../nats_server/tls_mutual_auth.html">
<a href="../../nats_server/tls_mutual_auth.html">
TLS Authentication
</a>
</li>
<li class="chapter " data-level="4.5.1.2.4" data-path="../../nats_server/nkey_auth.html">
<a href="../../nats_server/nkey_auth.html">
NKeys
</a>
</li>
<li class="chapter " data-level="4.5.1.2.5" data-path="../../nats_server/accounts.html">
<a href="../../nats_server/accounts.html">
Accounts
</a>
</li>
<li class="chapter " data-level="4.5.1.2.6" data-path="../../nats_server/jwt_auth.html">
<a href="../../nats_server/jwt_auth.html">
JWTs
</a>
</li>
<li class="chapter " data-level="4.5.1.2.7" data-path="../../nats_server/auth_timeout.html">
<a href="../../nats_server/auth_timeout.html">
Authentication Timeout
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="4.5.1.3" data-path="../../nats_server/authorization.html">
<a href="../../nats_server/authorization.html">
Authorization
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="4.5.2" data-path="../../nats_server/clustering.html">
<a href="../../nats_server/clustering.html">
Clustering
</a>
<ul class="articles">
<li class="chapter " data-level="4.5.2.1" data-path="../../nats_server/cluster_config.html">
<a href="../../nats_server/cluster_config.html">
Configuration
</a>
</li>
<li class="chapter " data-level="4.5.2.2" data-path="../../nats_server/cluster_tls.html">
<a href="../../nats_server/cluster_tls.html">
TLS Authentication
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="4.5.3" data-path="../../gateways/">
<a href="../../gateways/">
Gateways
</a>
<ul class="articles">
<li class="chapter " data-level="4.5.3.1" data-path="../../gateways/gateway.html">
<a href="../../gateways/gateway.html">
Configuration
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="4.5.4" data-path="../../leafnodes/">
<a href="../../leafnodes/">
Leaf Nodes
</a>
<ul class="articles">
<li class="chapter " data-level="4.5.4.1" data-path="../../leafnodes/leafnode_conf.html">
<a href="../../leafnodes/leafnode_conf.html">
Configuration
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="4.5.5" data-path="../../nats_server/logging.html">
<a href="../../nats_server/logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="4.5.6" data-path="../../nats_server/monitoring.html">
<a href="../../nats_server/monitoring.html">
Monitoring
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="4.6" data-path="../../nats_admin/">
<a href="../../nats_admin/">
Managing A NATS Server
</a>
<ul class="articles">
<li class="chapter " data-level="4.6.1" data-path="../../nats_admin/upgrading_cluster.html">
<a href="../../nats_admin/upgrading_cluster.html">
Upgrading a Cluster
</a>
</li>
<li class="chapter " data-level="4.6.2" data-path="../../nats_admin/slow_consumers.html">
<a href="../../nats_admin/slow_consumers.html">
Slow Consumers
</a>
</li>
<li class="chapter " data-level="4.6.3" data-path="../../nats_admin/signals.html">
<a href="../../nats_admin/signals.html">
Signals
</a>
</li>
<li class="chapter " data-level="4.6.4" data-path="../../sys_accounts/">
<a href="../../sys_accounts/">
System Accounts
</a>
<ul class="articles">
<li class="chapter " data-level="4.6.4.1" data-path="../../sys_accounts/sys_accounts.html">
<a href="../../sys_accounts/sys_accounts.html">
Configuration
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="4.7" data-path="../../nats_docker/">
<a href="../../nats_docker/">
NATS and Docker
</a>
<ul class="articles">
<li class="chapter " data-level="4.7.1" data-path="../../nats_docker/nats-docker-tutorial.html">
<a href="../../nats_docker/nats-docker-tutorial.html">
Tutorial
</a>
</li>
<li class="chapter " data-level="4.7.2" data-path="../../nats_docker/docker_swarm.html">
<a href="../../nats_docker/docker_swarm.html">
Docker Swarm
</a>
</li>
</ul>
</li>
<li class="header">NATS Tools</li>
<li class="chapter " data-level="5.1" data-path="../mkpasswd.html">
<a href="../mkpasswd.html">
mkpasswd
</a>
</li>
<li class="chapter " data-level="5.2" data-path="../nk.html">
<a href="../nk.html">
nk
</a>
</li>
<li class="chapter " data-level="5.3" data-path="../nsc/">
<a href="../nsc/">
nsc
</a>
<ul class="articles">
<li class="chapter " data-level="5.3.1" data-path="../nsc/nsc.html">
<a href="../nsc/nsc.html">
Basics
</a>
</li>
<li class="chapter " data-level="5.3.2" data-path="../nsc/streams.html">
<a href="../nsc/streams.html">
Streams
</a>
</li>
<li class="chapter " data-level="5.3.3" data-path="../nsc/services.html">
<a href="../nsc/services.html">
Services
</a>
</li>
<li class="chapter " data-level="5.3.4" data-path="../nsc/signing_keys.html">
<a href="../nsc/signing_keys.html">
Signing Keys
</a>
</li>
<li class="chapter " data-level="5.3.5" data-path="../nsc/revocation.html">
<a href="../nsc/revocation.html">
Revocation
</a>
</li>
<li class="chapter " data-level="5.3.6" data-path="../nsc/managed.html">
<a href="../nsc/managed.html">
Managed Operators
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.4" data-path="./">
<a href="./">
nats-account-server
</a>
<ul class="articles">
<li class="chapter active" data-level="5.4.1" data-path="nas_conf.html">
<a href="nas_conf.html">
Basics
</a>
</li>
<li class="chapter " data-level="5.4.2" data-path="inspecting_jwts.html">
<a href="inspecting_jwts.html">
Inspecting JWTs
</a>
</li>
<li class="chapter " data-level="5.4.3" data-path="dir_store.html">
<a href="dir_store.html">
Directory Store
</a>
</li>
<li class="chapter " data-level="5.4.4" data-path="notifications.html">
<a href="notifications.html">
Update Notifications
</a>
</li>
<li class="chapter " data-level="5.4.5" data-path="mem_resolver.html">
<a href="mem_resolver.html">
Memory Resolver
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.5" data-path="../nats_top/">
<a href="../nats_top/">
nats-top
</a>
<ul class="articles">
<li class="chapter " data-level="5.5.1" data-path="../nats_top/nats-top-tutorial.html">
<a href="../nats_top/nats-top-tutorial.html">
Tutorial
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="5.6" data-path="../natsbench.html">
<a href="../natsbench.html">
nats-bench
</a>
</li>
<li class="header">NATS Streaming Concepts</li>
<li class="chapter " data-level="6.1" data-path="../../nats_streaming/intro.html">
<a href="../../nats_streaming/intro.html">
Introduction
</a>
</li>
<li class="chapter " data-level="6.2" data-path="../../nats_streaming/relation-to-nats.html">
<a href="../../nats_streaming/relation-to-nats.html">
Relation to NATS
</a>
</li>
<li class="chapter " data-level="6.3" data-path="../../nats_streaming/client-connections.html">
<a href="../../nats_streaming/client-connections.html">
Client Connections
</a>
</li>
<li class="chapter " data-level="6.4" data-path="../../nats_streaming/channels/channels.html">
<a href="../../nats_streaming/channels/channels.html">
Channels
</a>
<ul class="articles">
<li class="chapter " data-level="6.4.1" data-path="../../nats_streaming/channels/message-log.html">
<a href="../../nats_streaming/channels/message-log.html">
Message Log
</a>
</li>
<li class="chapter " data-level="6.4.2" data-path="../../nats_streaming/channels/subscriptions/subscriptions.html">
<a href="../../nats_streaming/channels/subscriptions/subscriptions.html">
Subscriptions
</a>
<ul class="articles">
<li class="chapter " data-level="6.4.2.1" data-path="../../nats_streaming/channels/subscriptions/regular.html">
<a href="../../nats_streaming/channels/subscriptions/regular.html">
Regular
</a>
</li>
<li class="chapter " data-level="6.4.2.2" data-path="../../nats_streaming/channels/subscriptions/durable.html">
<a href="../../nats_streaming/channels/subscriptions/durable.html">
Durable
</a>
</li>
<li class="chapter " data-level="6.4.2.3" data-path="../../nats_streaming/channels/subscriptions/queue-group.html">
<a href="../../nats_streaming/channels/subscriptions/queue-group.html">
Queue Group
</a>
</li>
<li class="chapter " data-level="6.4.2.4" data-path="../../nats_streaming/channels/subscriptions/redelivery.html">
<a href="../../nats_streaming/channels/subscriptions/redelivery.html">
Redelivery
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="6.5" data-path="../../nats_streaming/store-interface.html">
<a href="../../nats_streaming/store-interface.html">
Store Interface
</a>
</li>
<li class="chapter " data-level="6.6" data-path="../../nats_streaming/store-encryption.html">
<a href="../../nats_streaming/store-encryption.html">
Store Encryption
</a>
</li>
<li class="chapter " data-level="6.7" data-path="../../nats_streaming/clustering/clustering.html">
<a href="../../nats_streaming/clustering/clustering.html">
Clustering
</a>
<ul class="articles">
<li class="chapter " data-level="6.7.1" data-path="../../nats_streaming/clustering/supported-stores.html">
<a href="../../nats_streaming/clustering/supported-stores.html">
Supported Stores
</a>
</li>
<li class="chapter " data-level="6.7.2" data-path="../../nats_streaming/clustering/configuration.html">
<a href="../../nats_streaming/clustering/configuration.html">
Configuration
</a>
</li>
<li class="chapter " data-level="6.7.3" data-path="../../nats_streaming/clustering/auto-configuration.html">
<a href="../../nats_streaming/clustering/auto-configuration.html">
Auto Configuration
</a>
</li>
<li class="chapter " data-level="6.7.4" data-path="../../nats_streaming/clustering/containers.html">
<a href="../../nats_streaming/clustering/containers.html">
Containers
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.8" data-path="../../nats_streaming/fault-tolerance/ft.html">
<a href="../../nats_streaming/fault-tolerance/ft.html">
Fault Tolerance
</a>
<ul class="articles">
<li class="chapter " data-level="6.8.1" data-path="../../nats_streaming/fault-tolerance/active-server.html">
<a href="../../nats_streaming/fault-tolerance/active-server.html">
Active Server
</a>
</li>
<li class="chapter " data-level="6.8.2" data-path="../../nats_streaming/fault-tolerance/standby-server.html">
<a href="../../nats_streaming/fault-tolerance/standby-server.html">
Standby Servers
</a>
</li>
<li class="chapter " data-level="6.8.3" data-path="../../nats_streaming/fault-tolerance/shared-state.html">
<a href="../../nats_streaming/fault-tolerance/shared-state.html">
Shared State
</a>
</li>
<li class="chapter " data-level="6.8.4" data-path="../../nats_streaming/fault-tolerance/failover.html">
<a href="../../nats_streaming/fault-tolerance/failover.html">
Failover
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="6.9" data-path="../../nats_streaming/partitioning.html">
<a href="../../nats_streaming/partitioning.html">
Partitioning
</a>
</li>
<li class="chapter " data-level="6.10" data-path="../../nats_streaming/monitoring/monitoring.html">
<a href="../../nats_streaming/monitoring/monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="6.10.1" data-path="../../nats_streaming/monitoring/endpoints.html">
<a href="../../nats_streaming/monitoring/endpoints.html">
Endpoints
</a>
</li>
</ul>
</li>
<li class="header">Developing With NATS Streaming</li>
<li class="chapter " data-level="7.1" data-path="../../developer/streaming/">
<a href="../../developer/streaming/">
Introduction
</a>
</li>
<li class="chapter " data-level="7.2" data-path="../../developer/streaming/connecting.html">
<a href="../../developer/streaming/connecting.html">
Connecting to NATS Streaming
</a>
</li>
<li class="chapter " data-level="7.3" data-path="../../developer/streaming/publishing.html">
<a href="../../developer/streaming/publishing.html">
Publishing to a Channel
</a>
</li>
<li class="chapter " data-level="7.4" data-path="../../developer/streaming/receiving.html">
<a href="../../developer/streaming/receiving.html">
Receiving Messages from a Channel
</a>
</li>
<li class="chapter " data-level="7.5" data-path="../../developer/streaming/durables.html">
<a href="../../developer/streaming/durables.html">
Durable Subscriptions
</a>
</li>
<li class="chapter " data-level="7.6" data-path="../../developer/streaming/queues.html">
<a href="../../developer/streaming/queues.html">
Queue Subscriptions
</a>
</li>
<li class="chapter " data-level="7.7" data-path="../../developer/streaming/acks.html">
<a href="../../developer/streaming/acks.html">
Acknowledgements
</a>
</li>
<li class="chapter " data-level="7.8" data-path="../../developer/streaming/protocol.html">
<a href="../../developer/streaming/protocol.html">
The Streaming Protocol
</a>
</li>
<li class="header">NATS Streaming Server</li>
<li class="chapter " data-level="8.1" data-path="../../nats_streaming/gettingstarted/changes.html">
<a href="../../nats_streaming/gettingstarted/changes.html">
Important Changes
</a>
</li>
<li class="chapter " data-level="8.2" data-path="../../nats_streaming/gettingstarted/install.html">
<a href="../../nats_streaming/gettingstarted/install.html">
Installing
</a>
</li>
<li class="chapter " data-level="8.3" data-path="../../nats_streaming/gettingstarted/run.html">
<a href="../../nats_streaming/gettingstarted/run.html">
Running
</a>
</li>
<li class="chapter " data-level="8.4" data-path="../../nats_streaming/configuring/configuring.html">
<a href="../../nats_streaming/configuring/configuring.html">
Configuring
</a>
<ul class="articles">
<li class="chapter " data-level="8.4.1" data-path="../../nats_streaming/configuring/cmdline.html">
<a href="../../nats_streaming/configuring/cmdline.html">
Command line arguments
</a>
</li>
<li class="chapter " data-level="8.4.2" data-path="../../nats_streaming/configuring/cfgfile.html">
<a href="../../nats_streaming/configuring/cfgfile.html">
Configuration file
</a>
</li>
<li class="chapter " data-level="8.4.3" data-path="../../nats_streaming/configuring/storelimits.html">
<a href="../../nats_streaming/configuring/storelimits.html">
Store Limits
</a>
<ul class="articles">
<li class="chapter " data-level="8.4.3.1" data-path="../../nats_streaming/configuring/storelimits.html">
<a href="../../nats_streaming/configuring/storelimits.html#limits-inheritance">
Limits inheritance
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="8.4.4" data-path="../../nats_streaming/configuring/persistence.html">
<a href="../../nats_streaming/configuring/persistence.html">
Persistence
</a>
<ul class="articles">
<li class="chapter " data-level="8.4.4.1" data-path="../../nats_streaming/configuring/filestore.html">
<a href="../../nats_streaming/configuring/filestore.html">
File Store
</a>
<ul class="articles">
<li class="chapter " data-level="8.4.4.1.1" data-path="../../nats_streaming/configuring/filestore.html">
<a href="../../nats_streaming/configuring/filestore.html#options">
Options
</a>
</li>
<li class="chapter " data-level="8.4.4.1.2" data-path="../../nats_streaming/configuring/filestore.html">
<a href="../../nats_streaming/configuring/filestore.html#recovery-errors">
Recovery Errors
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="8.4.4.2" data-path="../../nats_streaming/configuring/sqlstore.html">
<a href="../../nats_streaming/configuring/sqlstore.html">
SQL Store
</a>
<ul class="articles">
<li class="chapter " data-level="8.4.4.2.1" data-path="../../nats_streaming/configuring/sqlstore.html">
<a href="../../nats_streaming/configuring/sqlstore.html#read-and-write-timeouts">
Read and Write Timeouts
</a>
</li>
<li class="chapter " data-level="8.4.4.2.2" data-path="../../nats_streaming/configuring/sqlstore.html">
<a href="../../nats_streaming/configuring/sqlstore.html#options">
Options
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="8.4.5" data-path="../../nats_streaming/configuring/tls.html">
<a href="../../nats_streaming/configuring/tls.html">
Securing
</a>
<ul class="articles">
<li class="chapter " data-level="8.4.5.1" data-path="../../nats_streaming/configuring/tls.html">
<a href="../../nats_streaming/configuring/tls.html#authenticating-users">
Authenticating Users
</a>
</li>
<li class="chapter " data-level="8.4.5.2" data-path="../../nats_streaming/configuring/tls.html">
<a href="../../nats_streaming/configuring/tls.html#using-tls">
TLS
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="8.5" data-path="../../nats_streaming/gettingstarted/process-signaling.html">
<a href="../../nats_streaming/gettingstarted/process-signaling.html">
Process Signaling
</a>
</li>
<li class="chapter " data-level="8.6" data-path="../../nats_streaming/gettingstarted/windows-service.html">
<a href="../../nats_streaming/gettingstarted/windows-service.html">
Windows Service
</a>
</li>
<li class="chapter " data-level="8.7" data-path="../../developer/streaming/embedding.html">
<a href="../../developer/streaming/embedding.html">
Embedding NATS Streaming Server
</a>
</li>
<li class="chapter " data-level="8.8" data-path="../../nats_streaming/swarm.html">
<a href="../../nats_streaming/swarm.html">
Docker Swarm
</a>
</li>
<li class="header">NATS Protocol</li>
<li class="chapter " data-level="9.1" data-path="../../nats_protocol/nats-protocol-demo.html">
<a href="../../nats_protocol/nats-protocol-demo.html">
Protocol Demo
</a>
</li>
<li class="chapter " data-level="9.2" data-path="../../nats_protocol/nats-protocol.html">
<a href="../../nats_protocol/nats-protocol.html">
Client Protocol
</a>
<ul class="articles">
<li class="chapter " data-level="9.2.1" data-path="../../nats_protocol/nats-client-dev.html">
<a href="../../nats_protocol/nats-client-dev.html">
Developing a Client
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="9.3" data-path="../../nats_protocol/nats-server-protocol.html">
<a href="../../nats_protocol/nats-server-protocol.html">
NATS Cluster Protocol
</a>
</li>
<li class="divider"></li>
<li>
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
Published with GitBook
</a>
</li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header" role="navigation">
<!-- Title -->
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../.." >Basics</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<div id="book-search-results">
<div class="search-noresults">
<section class="normal markdown-section">
<h2 id="configuration"><a name="configuration" class="plugin-anchor" href="#configuration"><i class="fa fa-link" aria-hidden="true"></i></a>Configuration</h2>
<p>Basic configuration revolves around 4 settings:</p>
<ul>
<li>The store to read JWTs from</li>
<li>The HTTP/S configuration</li>
<li>NATS (for cases where updates are enabled)</li>
<li>Logging</li>
</ul>
<p>For complete information on please refer to the project&apos;s <a href="https://github.com/nats-io/nats-account-server" target="_blank">Github</a>.</p>
<h3 id="nsc-configuration"><a name="nsc-configuration" class="plugin-anchor" href="#nsc-configuration"><i class="fa fa-link" aria-hidden="true"></i></a><code>nsc</code> Configuration</h3>
<p>For a basic usage of the server you can specify the <code>-nsc</code> flag, and specify the path to an operator in your environment.</p>
<blockquote>
<p>If you have not yet created an operator or accounts, you&apos;ll need to do so before continuing. See <a href="../nsc/">NSC</a></p>
</blockquote>
<p>You can easily locate the path by running <code>nsc env</code> to print your <code>nsc</code> settings:</p>
<pre class="language-"><code class="lang-text">&gt; nsc env
&#x256D;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x256E;
&#x2502; NSC Environment &#x2502;
&#x251C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x252C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x252C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2524;
&#x2502; Setting &#x2502; Set &#x2502; Effective Value &#x2502;
&#x251C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x253C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x253C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2524;
&#x2502; $NKEYS_PATH &#x2502; No &#x2502; ~/.nkeys &#x2502;
&#x2502; $NSC_HOME &#x2502; No &#x2502; ~/.nsc &#x2502;
&#x2502; Config &#x2502; &#x2502; ~/.nsc/nsc.json &#x2502;
&#x251C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x253C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x253C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2524;
&#x2502; Stores Dir &#x2502; &#x2502; ~/.nsc/nats &#x2502;
&#x2502; Default Operator &#x2502; &#x2502; Test &#x2502;
&#x2502; Default Account &#x2502; &#x2502; TestAccount &#x2502;
&#x2502; Default Cluster &#x2502; &#x2502; &#x2502;
&#x2570;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2534;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2534;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x256F;
</code></pre>
<p>The path you are interested in the <code>Stores Dir</code>. This is the root of all operators, you&apos;ll also need the name of your operator. If your current operator is not listed, you can list all your available operators by doing:</p>
<pre class="language-"><code class="lang-text">&gt; nsc list operators
</code></pre>
<p>To start the <code>nats-account-server</code> with the operator <code>Test</code>:</p>
<pre class="language-"><code class="lang-text">&gt; nats-account-server -nsc ~/.nsc/nats/Test
2019/05/10 11:22:41.845148 [INF] starting NATS Account server, version 0.0-dev
2019/05/10 11:22:41.845241 [INF] server time is Fri May 10 11:22:41 CDT 2019
2019/05/10 11:22:41.845245 [INF] loading operator from /Users/synadia/.nsc/nats/Test/Test.jwt
2019/05/10 11:22:41.846367 [INF] creating a read-only store for the NSC folder at /Users/synadia/.nsc/nats/Test
2019/05/10 11:22:41.846459 [INF] NATS is not configured, server will not fire notifications on update
2019/05/10 11:22:41.855291 [INF] http listening on port 9090
2019/05/10 11:22:41.855301 [INF] nats-account-server is running
2019/05/10 11:22:41.855303 [INF] configure the nats-server with:
2019/05/10 11:22:41.855306 [INF] resolver: URL(http://localhost:9090/jwt/v1/accounts/)
</code></pre>
<p>By default the server will serve JWTs on the localhost at port 9090. The last line in the shown in the printout is important, that is the resolver URL you&apos;ll have to provide on your NATS server configuration. You&apos;ll also need the matching operator JWT which is on <code>~/.nsc/nats/Test/Test.jwt</code> if you are following the example above. On the server configuration you&apos;ll need to expand the <code>~</code> as necessary. Here&apos;s what my NATS server configuration looks like:</p>
<pre class="language-"><code class="lang-text">operator: /Users/synadia/.nsc/nats/Test/Test.jwt
resolver: URL(http://localhost:9090/jwt/v1/accounts/)
</code></pre>
<p>Note that servers you create with the <code>-nsc</code> option (or store option) are read-only. This means that the server will not accept POST requests to update the JWT store.</p>
<h3 id="directory-configuration"><a name="directory-configuration" class="plugin-anchor" href="#directory-configuration"><i class="fa fa-link" aria-hidden="true"></i></a>Directory Configuration</h3>
<p>You can start a server using a plain directory. In this case you&apos;ll be responsible for adding any JWT that you want resolved. </p>
<blockquote>
<p>The server looks for account JWTs by using the public key of the account as the file name followed by the extension <code>.jwt</code>. The server will not introspect the JWTs, so if you don&apos;t name the files correctly, it will fail to find them or serve a JWT that doesn&apos;t match the requested account.</p>
</blockquote>
<pre class="language-"><code class="lang-text">&gt; mkdir /tmp/jwts
nats-account-server -dir /tmp/jwts
2019/05/10 11:33:40.501305 [INF] starting NATS Account server, version 0.0-dev
2019/05/10 11:33:40.501383 [INF] server time is Fri May 10 11:33:40 CDT 2019
2019/05/10 11:33:40.501404 [INF] creating a store at /tmp/jwts
2019/05/10 11:33:40.501430 [INF] NATS is not configured, server will not fire notifications on update
2019/05/10 11:33:40.510273 [INF] http listening on port 9090
2019/05/10 11:33:40.510283 [INF] nats-account-server is running
2019/05/10 11:33:40.510285 [INF] configure the nats-server with:
2019/05/10 11:33:40.510291 [INF] resolver: URL(http://localhost:9090/jwt/v1/accounts/)
</code></pre>
<p>Configuration for the NATS server is the same as in the previous example:</p>
<pre class="language-"><code class="lang-text">operator: /Users/synadia/.nsc/nats/Test/Test.jwt
resolver: URL(http://localhost:9090/jwt/v1/accounts/)
</code></pre>
<h3 id="configuration-file"><a name="configuration-file" class="plugin-anchor" href="#configuration-file"><i class="fa fa-link" aria-hidden="true"></i></a>Configuration File</h3>
<p>While the <code>-nsc</code> and <code>-dir</code> store flags are sufficient for some very simple developer setups, any production or non-read-only server will require a configuration file.</p>
<p>Let&apos;s take a look at the configuration options:</p>
<h4 id="configuration-options"><a name="configuration-options" class="plugin-anchor" href="#configuration-options"><i class="fa fa-link" aria-hidden="true"></i></a>Configuration Options</h4>
<table>
<thead>
<tr>
<th style="text-align:left">Option</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>http</code></td>
<td style="text-align:left">An <code>http</code> configuration block specifying HTTP options.</td>
</tr>
<tr>
<td style="text-align:left"><code>logging</code></td>
<td style="text-align:left">A <code>logging</code> configuration block specifying server logging options.</td>
</tr>
<tr>
<td style="text-align:left"><code>nats</code></td>
<td style="text-align:left">A <code>nats</code> configuration block specifying NATS connection information for the account server to push JWT changes to a NATS server.</td>
</tr>
<tr>
<td style="text-align:left"><code>operatorjwtpath</code></td>
<td style="text-align:left">The path to an operator JWT. Required for non-read-only servers. Only JWTs signed by the operator (or one of it&apos;s signing keys) are accepted.</td>
</tr>
<tr>
<td style="text-align:left"><code>store</code></td>
<td style="text-align:left">A <code>store</code> configuration block specifying store options.</td>
</tr>
<tr>
<td style="text-align:left"><code>systemaccountjwtpath</code></td>
<td style="text-align:left">Path to an Account JWT that should be returned as the system account.</td>
</tr>
<tr>
<td style="text-align:left"><code>primary</code></td>
<td style="text-align:left">URL for the primary, <code>protocol://host:port</code>.</td>
</tr>
<tr>
<td style="text-align:left"><code>replicationtimeout</code></td>
<td style="text-align:left">Timeout, in milliseconds, used by the replica when talking to the primary, defaults to <code>5000</code>.</td>
</tr>
</tbody>
</table>
<h4 id="store-configuration"><a name="store-configuration" class="plugin-anchor" href="#store-configuration"><i class="fa fa-link" aria-hidden="true"></i></a><code>store</code> Configuration</h4>
<table>
<thead>
<tr>
<th style="text-align:left">Option</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>dir</code></td>
<td style="text-align:left">Configures a directory as a store.</td>
</tr>
<tr>
<td style="text-align:left"><code>nsc</code></td>
<td style="text-align:left">Configures an nsc read-only store. The value should be the path to an operator <em>directory</em>. Option is mutually exlusive with <code>dir</code>.</td>
</tr>
<tr>
<td style="text-align:left"><code>readonly</code></td>
<td style="text-align:left">If <code>true</code>, the store will not accept POST requests. Note that to receive requests, the store must also have <code>operatorjwtpath</code> specified as a root option.</td>
</tr>
<tr>
<td style="text-align:left"><code>shard</code></td>
<td style="text-align:left">If <code>true</code>, JWTs are sharded in the store directory.</td>
</tr>
</tbody>
</table>
<h3 id="logging-options"><a name="logging-options" class="plugin-anchor" href="#logging-options"><i class="fa fa-link" aria-hidden="true"></i></a><code>logging</code> Options</h3>
<table>
<thead>
<tr>
<th style="text-align:left">Option</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>time</code></td>
<td style="text-align:left">If <code>true</code>, a timestamp is added to log messages.</td>
</tr>
<tr>
<td style="text-align:left"><code>debug</code></td>
<td style="text-align:left">If <code>true</code>, debug messages are logged.</td>
</tr>
<tr>
<td style="text-align:left"><code>trace</code></td>
<td style="text-align:left">If <code>true</code>, trace messages are logged.</td>
</tr>
<tr>
<td style="text-align:left"><code>colors</code></td>
<td style="text-align:left">If <code>true</code>, messages are logged using ANSI color escape sequences.</td>
</tr>
<tr>
<td style="text-align:left"><code>pid</code></td>
<td style="text-align:left">If <code>true</code>, the process id for the server is added to log messages.</td>
</tr>
</tbody>
</table>
<h3 id="http-options"><a name="http-options" class="plugin-anchor" href="#http-options"><i class="fa fa-link" aria-hidden="true"></i></a><code>http</code> Options</h3>
<table>
<thead>
<tr>
<th style="text-align:left">Option</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>host</code></td>
<td style="text-align:left">Interface to listen for requests on.</td>
</tr>
<tr>
<td style="text-align:left"><code>port</code></td>
<td style="text-align:left">Port to listen for requests on.</td>
</tr>
<tr>
<td style="text-align:left"><code>readtimeout</code></td>
<td style="text-align:left">Max amount of time in milliseconds to wait for a http read operation to complete.</td>
</tr>
<tr>
<td style="text-align:left"><code>writetimeout</code></td>
<td style="text-align:left">Max amount of time in milliseconds to wait for a http write operation to complete.</td>
</tr>
</tbody>
</table>
<h3 id="nats-options"><a name="nats-options" class="plugin-anchor" href="#nats-options"><i class="fa fa-link" aria-hidden="true"></i></a><code>nats</code> Options</h3>
<table>
<thead>
<tr>
<th style="text-align:left">Option</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>servers</code></td>
<td style="text-align:left">List of NATS servers for the account server to use when connecting to a NATS server to publish updates.</td>
</tr>
<tr>
<td style="text-align:left"><code>connecttimeout</code></td>
<td style="text-align:left">Max amount of time in milliseconds to wait for a NATS connection.</td>
</tr>
<tr>
<td style="text-align:left"><code>reconnecttimewait</code></td>
<td style="text-align:left">Amount of time in milliseconds to between NATS server reconnect attempts.</td>
</tr>
<tr>
<td style="text-align:left"><code>tls</code></td>
<td style="text-align:left">A <code>tls</code> configuration block.</td>
</tr>
<tr>
<td style="text-align:left"><code>usercredentials</code></td>
<td style="text-align:left">A credentials <em>creds</em> file for connecting to the NATS server. Account must be a member of a system account.</td>
</tr>
</tbody>
</table>
<h3 id="tls-options"><a name="tls-options" class="plugin-anchor" href="#tls-options"><i class="fa fa-link" aria-hidden="true"></i></a><code>tls</code> Options</h3>
<table>
<thead>
<tr>
<th style="text-align:left">Option</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>root</code></td>
<td style="text-align:left">filepath to the CA certificate.</td>
</tr>
<tr>
<td style="text-align:left"><code>cert</code></td>
<td style="text-align:left">filepath to the certificate.</td>
</tr>
<tr>
<td style="text-align:left"><code>cert</code></td>
<td style="text-align:left">filepath to the certificate key.</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
</div>
</div>
</div>
<a href="./" class="navigation navigation-prev " aria-label="Previous page: nats-account-server">
<i class="fa fa-angle-left"></i>
</a>
<a href="inspecting_jwts.html" class="navigation navigation-next " aria-label="Next page: Inspecting JWTs">
<i class="fa fa-angle-right"></i>
</a>
</div>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Basics","level":"5.4.1","depth":2,"next":{"title":"Inspecting JWTs","level":"5.4.2","depth":2,"path":"nats_tools/nas/inspecting_jwts.md","ref":"nats_tools/nas/inspecting_jwts.md","articles":[]},"previous":{"title":"nats-account-server","level":"5.4","depth":1,"path":"nats_tools/nas/README.md","ref":"nats_tools/nas/README.md","articles":[{"title":"Basics","level":"5.4.1","depth":2,"path":"nats_tools/nas/nas_conf.md","ref":"nats_tools/nas/nas_conf.md","articles":[]},{"title":"Inspecting JWTs","level":"5.4.2","depth":2,"path":"nats_tools/nas/inspecting_jwts.md","ref":"nats_tools/nas/inspecting_jwts.md","articles":[]},{"title":"Directory Store","level":"5.4.3","depth":2,"path":"nats_tools/nas/dir_store.md","ref":"nats_tools/nas/dir_store.md","articles":[]},{"title":"Update Notifications","level":"5.4.4","depth":2,"path":"nats_tools/nas/notifications.md","ref":"nats_tools/nas/notifications.md","articles":[]},{"title":"Memory Resolver","level":"5.4.5","depth":2,"path":"nats_tools/nas/mem_resolver.md","ref":"nats_tools/nas/mem_resolver.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-sharing","-highlight","include-html","toggle-chapters","anchors","edit-link"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{"lang":{"ascii":"markup","text":"markup"}},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"include-html":{},"fontsettings":{"theme":"white","family":"sans","size":2},"edit-link":{"label":"edit","base":"https://github.com/nats-io/docs/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"toggle-chapters":{}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_tools/nas/nas_conf.md","mtime":"2019-09-23T22:49:18.494Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-27T21:13:11.925Z"},"basePath":"../..","book":{"language":""}});
});
</script>
</div>
<!-- Viz Support -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/viz.js"> </script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/lite.render.js"> </script>
<!-- Site code -->
<script>
function flash(elem, text, speed) {
if (!elem) {
return;
}
var s = elem.style;
elem.textContent = text;
s.display = 'block';
s.opacity = 1;
(function fade() {
(s.opacity -= .1) < .1 ? s.display = "none" : setTimeout(fade, speed)
})();
}
function copyToClipboard(text, el) {
var copyTest = document.queryCommandSupported('copy');
var elOriginalText = el.getAttribute('data-original-title');
if (copyTest === true) {
var copyTextArea = document.createElement("textarea");
copyTextArea.value = text;
document.body.appendChild(copyTextArea);
copyTextArea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'Copied!' : 'Whoops, not copied!';
var parent = el.parentNode.parentNode;
var msgElem = parent.querySelector(".copy-msg");
flash(msgElem, msg, 100);
} catch (err) {
console.log('Oops, unable to copy', err);
}
document.body.removeChild(copyTextArea);
el.setAttribute('data-original-title', elOriginalText);
} else {
// Fallback if browser doesn't support .execCommand('copy')
window.prompt("Copy to clipboard: Ctrl+C or Command+C, Enter", text);
}
}
function processGraphVizSections(elements) {
var elements = document.querySelectorAll("[data-viz]");
var viz = new Viz();
Array.prototype.forEach.call(elements, function (x) {
var engine = x.getAttribute("data-viz");
var image = viz.renderImageElement(x.innerText, {
format: "png",
engine: engine
}).then(function (element) {
x.parentNode.insertBefore(element, x);
});
});
};
function updateLanguageParameter(value) {
const param = "lang";
if (window.location.href.indexOf("?") >= 0) {
const regExp = new RegExp(param + "(.+?)(&|$)", "g");
const newUrl = window.location.href.replace(regExp, param + "=" + encodeURIComponent(value) + "$2");
window.history.pushState("", "", newUrl);
} else {
const newUrl = window.location.href + "?" + param + "=" + encodeURIComponent(value);
window.history.pushState("", "", newUrl);
}
}
function getLanguageParameter() {
var match = RegExp('[?&]lang=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
function docReady() {
window.gitbook.events.bind("page.change", function () {
pageChanged();
});
var searchInput = document.querySelector('#book-search-input input');
if (searchInput) {
searchInput.addEventListener('keyup', function(event) {
if (event.keyCode === 13) {
event.target.blur();
}
});
}
}
function pageChanged() {
var logos = document.querySelectorAll(".nats");
if (logos && logos.length == 0) {
gitbook.toolbar.createButton({
icon: 'nats',
label: 'NATS Home Page',
position: 'right',
onClick: function () {
var win = window.open("https://nats.io/", '_blank');
win.focus();
}
});
}
document.querySelectorAll('.js-copy').forEach(elem => {
elem.addEventListener("click", function () {
var el = this;
var parent = this.parentNode.parentNode;
var code = parent.querySelector('code');
var text = code.textContent || code.innerText;
copyToClipboard(text, el);
})
});
document.querySelectorAll('.api-lang').forEach(elem => {
elem.addEventListener("click", function () {
var curLang = sessionStorage.getItem('nats-api-language');
var lang = this.getAttribute('data-language');
// Stop the infinite loop
if (curLang == lang) {
return;
}
sessionStorage.setItem('nats-api-language', lang); // So we only do this 1x
updateLanguageParameter(lang)
document.querySelectorAll('.api-lang[data-language=' + lang + ']').forEach(elem => {
elem.click();
});
})
});
if (sessionStorage) {
var curLang = sessionStorage.getItem('nats-api-language');
var queryLang = getLanguageParameter();
var lang = curLang;
if (queryLang) { // query takes precedent
lang = queryLang
}
if (lang) {
document.querySelectorAll('.api-lang[data-language=' + lang + ']').forEach(elem => {
elem.click();
});
}
}
setTimeout(function () {
processGraphVizSections();
}, 1);
}
if (document.readyState != 'loading') docReady();
else if (document.addEventListener) document.addEventListener('DOMContentLoaded', docReady);
else document.attachEvent('onreadystatechange', function () {
if (document.readyState == 'complete') docReady();
});
</script>
<!-- Github Buttons -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<!-- Styles -->
<style>
.nats {
display: inline-block;
width: 16px;
height: 16px;
background: url(https://nats.io/img/nats-icon-color.svg);
background-size: 16px 16px;
background-repeat: no-repeat;
}
div.graphviz {
background: transparent;
border: 0;
padding-top: 15px;
padding-right: 15px;
padding-bottom: 25px;
padding-left: 15px;
text-align: center;
}
code[data-viz] {
display: none;
}
.tab-wrap {
transition: 0.3s box-shadow ease;
border-radius: 6px;
max-width: 100%;
display: flex;
flex-wrap: wrap;
position: relative;
list-style: none;
background-color: #fff;
margin: 20px 0;
/* box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);*/
}
.tab-wrap:hover {
box-shadow: 0 12px 23px rgba(0, 0, 0, 0.23), 0 10px 10px rgba(0, 0, 0, 0.19);
}
.tab {
display: none;
}
/* Using scss these would be generated, we have to manually create enough for all tabs, start with 8 */
.tab:checked:nth-of-type(1)~.tab__content:nth-of-type(1) {
opacity: 1;
transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
position: relative;
top: 0;
z-index: 100;
-webkit-transform: translateY(0px);
transform: translateY(0px);
text-shadow: 0 0 0;
}
.tab:checked:nth-of-type(2)~.tab__content:nth-of-type(2) {
opacity: 1;
transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
position: relative;
top: 0;
z-index: 100;
-webkit-transform: translateY(0px);
transform: translateY(0px);
text-shadow: 0 0 0;
}
.tab:checked:nth-of-type(3)~.tab__content:nth-of-type(3) {
opacity: 1;
transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
position: relative;
top: 0;
z-index: 100;
-webkit-transform: translateY(0px);
transform: translateY(0px);
text-shadow: 0 0 0;
}
.tab:checked:nth-of-type(4)~.tab__content:nth-of-type(4) {
opacity: 1;
transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
position: relative;
top: 0;
z-index: 100;
-webkit-transform: translateY(0px);
transform: translateY(0px);
text-shadow: 0 0 0;
}
.tab:checked:nth-of-type(5)~.tab__content:nth-of-type(5) {
opacity: 1;
transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
position: relative;
top: 0;
z-index: 100;
-webkit-transform: translateY(0px);
transform: translateY(0px);
text-shadow: 0 0 0;
}
.tab:checked:nth-of-type(6)~.tab__content:nth-of-type(6) {
opacity: 1;
transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
position: relative;
top: 0;
z-index: 100;
-webkit-transform: translateY(0px);
transform: translateY(0px);
text-shadow: 0 0 0;
}
.tab:checked:nth-of-type(7)~.tab__content:nth-of-type(7) {
opacity: 1;
transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
position: relative;
top: 0;
z-index: 100;
-webkit-transform: translateY(0px);
transform: translateY(0px);
text-shadow: 0 0 0;
}
.tab:checked:nth-of-type(8)~.tab__content:nth-of-type(8) {
opacity: 1;
transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease;
transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
position: relative;
top: 0;
z-index: 100;
-webkit-transform: translateY(0px);
transform: translateY(0px);
text-shadow: 0 0 0;
}
.tab:first-of-type:not(:last-of-type)+label {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.tab:not(:first-of-type):not(:last-of-type)+label {
border-radius: 0;
}
.tab:last-of-type:not(:first-of-type)+label {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.tab:checked+label {
background-color: #fff;
box-shadow: 0 -1px 0 #fff inset;
cursor: default;
font-weight: bold;
border: 1px solid #ddd;
border-bottom-color: transparent;
}
.tab:checked+label:hover {
box-shadow: 0 -1px 0 #fff inset;
background-color: #fff;
}
.tab+label {
box-shadow: 0 -1px 0 #eee inset;
border-radius: 6px 6px 0 0;
cursor: pointer;
display: block;
text-decoration: none;
color: #27aae1;
flex-grow: 3;
text-align: center;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-align: center;
transition: 0.3s background-color ease, 0.3s box-shadow ease;
height: 50px;
box-sizing: border-box;
padding: 15px;
}
.tab+label:hover {
background-color: #f9f9f9;
box-shadow: 0 1px 0 #f4f4f4 inset;
}
.tab__content {
padding: 2px 2px;
background-color: transparent;
position: absolute;
width: 100%;
z-index: -1;
opacity: 0;
left: 0;
-webkit-transform: translateY(-3px);
transform: translateY(-3px);
border-radius: 6px;
}
.tab__content pre {
margin-bottom: 0px !important;
}
.toolbar-icons {
display: inline-block;
position: relative;
padding-left: 4px;
}
a.toolbar-icons {
text-decoration: none;
}
.toolbar-icons .mdi {
color: #4183c4;
}
.copy-msg {
color: #4183c4;
}
.pull-right {
float: right !important;
}
.pull-left {
float: left !important;
}
</style>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-111730698-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-111730698-1');
</script>
<script src="../../gitbook/gitbook.js"></script>
<script src="../../gitbook/theme.js"></script>
<script src="../../gitbook/gitbook-plugin-toggle-chapters/toggle.js"></script>
<script src="../../gitbook/gitbook-plugin-edit-link/plugin.js"></script>
<script src="../../gitbook/gitbook-plugin-search/search-engine.js"></script>
<script src="../../gitbook/gitbook-plugin-search/search.js"></script>
<script src="../../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
<script src="../../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
<script src="../../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
</body>
</html>