As of v2.4 VAST ships with a new web
plugin that
provides a REST API. The API documentation describes the
available endpoints also provides an
OpenAPI spec for download. This
blog post shows how we built the API and what you can do with it.
Why does VAST need a REST API? Two reasons:
Make it easy to integrate with VAST . To date, the only interface to VAST
is the command line. This is great for testing and ad-hoc use cases, but to
make it easy for other tools to integrate with VAST, a REST API is the common
expectation.
Develop our own web frontend . We are in the middle of building a
Svelte frontend that delivers a web-based experience
of interacting with VAST through the browser. This frontend interacts with
VAST through the REST API.
Two architectural features of VAST made it really smooth to design the REST API:
Plugins and Actors.
First, VAST's plugin system offers a flexible extension mechanism to add
additional functionality without bloating the core. Specifically, we chose
RESTinio as C++ library that
implements an asynchronous HTTP and WebSocket server. Along with it comes a
dependency on Boost ASIO. We deem it acceptable to have this dependency of the
web
plugin, but would feel less comfortable with adding dependencies to the
VAST core, which we try to keep as lean as possible.
Second, the actor model architecture of VAST makes it easy to
integrate new "microservices" into the system. The web
plugin is a component
plugin that provides a new actor with a typed messaging interface. It neatly
fits into the existing architecture and thereby inherits the flexible
distribution and scaling properties. Concretely, there exist two ways to run the
REST API actor: either as a separate process or embedded inside a VAST server
node:
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXNly4shcdTAwMTJ9768gfF9cdTAwMDem9mXevHbj8dYs3u5MOGRcdTAwMTAgW5ZoSXib6H+/KehBQlx1MDAxYntbXHUwMDFkcYmOxkglVakqT57MrFx1MDAwM/98qlR2grehufNHZcd87Vx1MDAxOLbV9YyXnd/C48+m51uuXHUwMDAzp8j4s++OvM645SBcYob+XHUwMDFmv/9uXGaHteiqWsd9mlxcadrmk+lcdTAwMDQ+tP0vfK5U/lx1MDAxOf9cdTAwMWbryzM7geH0bXN8wfhU1Fx1MDAxZOc6efTMdcZda8wpw4ipaVx1MDAwM8s/gO5cdTAwMDKzXHUwMDBiZ3uG7ZvRmfDQzuHR4Ej2q9d1woaO1VfdKjlcdTAwMWJFvfYs225cdTAwMDZv9uS5jM5g5MXG5Fx1MDAwN577aF5Z3WBcdTAwMDDnceL49LquXHUwMDFihFx1MDAwM5ie9txRf+CYvj9zkTs0OlbwXHUwMDE2XHUwMDFlQ2h6dDJcdTAwMGJ/VKIjr/CpqmNNwksoQYne913b9cLe/4PGr6j7e6Pz2IcxON1pm8AzXHUwMDFjf2h4sCpRu5dcdTAwMWbPRVl074Fp9Vx1MDAwN0F4MDZcdTAwMDDfXHUwMDFjTy9BnFx1MDAxM1wiOYlmP+xmWO+OV/rv+PM73Vx1MDAxZs/vjGw7XHUwMDFhWXjiMGlcdTAwMWRxXHUwMDBiia3crstcdTAwMDe9YdA5dVtcdTAwMGaNy1ZgYYeo6ehnzMnwPPdlZ3rm+2/Z9/23eWC+XHUwMDA2szea9Hj+0nS1537uX8k6PfkqOs/+qVx1MDAxNbvtj7+iXHUwMDA3XHUwMDFkXHK7xsT0sFx1MDAxMFx1MDAxNFx0pIXUiE/P25bzmJxcdTAwMDPb7TxG1vopNt5cdTAwMTRKZsZcdTAwMTlcdTAwMDOIyMVcdTAwMDfnXG5hpVx0W1x1MDAxOFx1MDAxZtnPnI2Pjuf6fnVgXHUwMDA0nUFcdTAwMTkwooRIYISvg1x1MDAxMWhjsFx1MDAxZU7jg0iSxlx1MDAwN1x1MDAxM0l4qFx1MDAxMFx1MDAxZVhjsjF05Fx1MDAxOJpcbl0g4kQsY2jRirpO0LTezTGgZ45cdTAwMWVcdTAwMTlPlv02s1x1MDAxZWNcdTAwMGKEuWla4Vx1MDAxMlRcdTAwMWGHzVbF6Fx1MDAwNK5XsVx1MDAxY1x1MDAxZjx4x/zLsZzK5S5cdTAwMWNcdTAwMWZ6bid8qthcdTAwMWP7JlxmLOwp5mHCW+7aVt9cdTAwMTlbXHUwMDE0PKrpzdh4YFx1MDAwMaFMXHUwMDFiXHUwMDA07jA624FBXHUwMDFhcEOvvohrdz2rbzmG3VrhXHUwMDE5XG5hWUheXGaLPHBqzCjSPGYg88DZfnh/kub7t6/mk//a5M+XXHUwMDE3t1+fN0xevlx1MDAwYvS9WVxcslnuYmx73EVQXHUwMDA2d+E0d0miXHUwMDEw5YouXHUwMDAzzog7/l16/OPI93zMXHUwMDE2Mdo5aVx1MDAxZPf3OL3tvz5+O74+2CPi9S2b0cbAm0toa1x1MDAxM2Uxo1x1MDAxMVxyLpYzxVwivtlcdTAwMTKjXHUwMDExkotcdTAwMWEstEKISrRcdTAwMDSnXHUwMDE1zvMsbFx1MDAxMub/YaCRXHUwMDAyJ0CzXHUwMDFlmXXMLutcdTAwMWFpwLBcZi7DOlx0XHUwMDE3glx1MDAxOKFKIC7Wwlx1MDAwYpmPl02aXlx1MDAxNsfF3PFcdTAwMWOOXHUwMDBiXHQgk7wwn2m7XHUwMDE58prj2pPkNVx1MDAxZVxcIbRM27aGfiYnXHUwMDAx6+RyXHUwMDEyQ1x1MDAxMlPKXHUwMDE356Su5XiOdXrSrbetU25cXPT6po23XHUwMDEwMG6Bl0iCl9RavJRcdTAwMWIvZqVTLMVIQlNcIpleXHUwMDA2YKvnUpeHltm6soV77L092ObNrdfon26SXCJ4tCZrUsSk/1xmK8ZE0Twzhv6JxlwiNsvzzLh4RkrKXHUwMDExktcgt2OMYKyEkjPWzFG+NZtCylWtWeKZPlx1MDAxMU5cdTAwMWJ3yrYxpEKYXGJcItjGrDs36UZcdTAwMDLyM6RX4lx0XGL/vWDPcsCn9WdcdOxHXHSrvoDLXHUwMDFiM0tn5McnXCJ8YGNcdTAwMTjivoYk51xcKoUpmKjSKUY0ne78XHUwMDExPO+N+Hv15Gz0cGm3h6PHw7vX9/1cdTAwMDVHkOrRNvxg3316ssKM/MK1nCA5XeN52VxygTgwje4kXGK3XHUwMDEyKVx1MDAwZox7TotheOtZ11x1MDAxNP1ViVx1MDAwZlx1MDAxNT5M//77t8zWuWaYuPpT/H0lrmTJo/86XHUwMDE5glx0XHUwMDE3XHUwMDFhY7J49bF43UrqZVCZaJJiXHUwMDA1zl1vrqiyJZr82Fxm7WfQL/jZ3Fx1MDAxY1xyU6RcdTAwMDBcdTAwMWNL1OWLp6ScyFx1MDAxMGJcdTAwMTZcdTAwMTlFlJu0+nWRkeZYxSR4JLW5Yny2jUFiXG7uXHUwMDE2YCi3SbFrXHUwMDEwXFy6KLNcdTAwMTClXHUwMDE2J2CxXHUwMDFlq6hGUp1cdTAwMTKU6nVcdTAwMDVanTmbJNSuXHUwMDFibIlLWV7zhcizsPyJUa6TkJDuYEWW8Fx1MDAxMX+yvn+DXHUwMDFi9VO7fT9qXHUwMDFln+CvvfpdyX2ESrCnKPRcdTAwMTGr13EwWYg+MdZcdTAwMDK8XHUwMDA0wetcdTAwMTVy1ix89nm1XHUwMDExXFzVd19cdTAwMWJPJ0N2ifD+leln81+i8FlMf5MtN1x1MDAwNm+bor+8XHUwMDAyJca5YSE4YiVcdTAwMTBjaHHDLp6PUm+6SUVcdTAwMTL2LWvrVSp7xj1CPG3hiqVccpzQpIErrCHXxNvfdVvJ1qIlXWXXzXy6N7vd+Fx1MDAwMsarkmqm/eJVySer240770Rhco7TTVx1MDAxNianY1xcnTO4yi1PXHUwMDEyhFx1MDAwMVxcQlOxMLZcdTAwMGVG7f23evNcdTAwMTZfXFzfXFx8XHUwMDE5VI/2Pr9cdTAwMWaUX/CBSVwiuCyD4lx1MDAwM1x1MDAwYsaVhFx1MDAxOPNXVXxM7ivbPfeqf31aZ7LXN/yBkCfC3Fx1MDAxOP1gRLe/P4ZzIYJcdTAwMTmVXHUwMDE4XHUwMDBiKlx1MDAxNy/hXHUwMDE3z0ep6Vx1MDAwN8dLXHUwMDAxW1x1MDAxNX2gXGb6SYs+sJRcdTAwMDRcdTAwMTKkTVwipED1QTTVhCxhbOvxT9NcdTAwMDRcdTAwMDdcdTAwMDIjmGgmdi/qfzk915soJXzTe47TzLbFXHUwMDFlc9x6Suwxf+irXHUwMDEzXHUwMDE2XHUwMDEx+ZVcdTAwMTBcbik5XHUwMDExfInd6v7I+/OgKoNvPXGNTbNcdJnvgV16kVx1MDAwN8Zqlq+2qfJQXHUwMDE5dJUh8sCSSSWxpFx1MDAxZprsfGvxa/fyjb9Rs/36IHqnnWOrs1x1MDAxMbZBXHUwMDAyM8FQXHUwMDE0XHUwMDAzb4ltVH6uQznEJVxcLrFfXFw8XHUwMDFk5UzigU/LpMbAWGpIkdZVL62uxljJ9LK4p6xqjDk+eHk1RjF/0Hy1k8acc1x1MDAxNK9cdTAwMWHNXHUwMDAz2P3oWIDlnO9cdTAwMDWHp1x1MDAwZn6vvn9mtobl51x1MDAwZiTKx1x1MDAxZorCS8Y3vD6AP9rHrdeb19bQv9Kn8uLoxj5XXHUwMDFlW18l2Fx1MDAwZdjnJ9RXdf5gXHUwMDBmRo1cdTAwMWK3cfCMs2+7VHLV2DWdwePei3331qffvF3r6eV6f7H7LsB3iFxuXHUwMDE5rca29PS5fFx1MDAxN4p0XHUwMDE0WiaaK169ktJcdTAwMWRiZaI7jkL9iCDLiEc2zXZIca2WMbxfie3mMMZGtYeE5IKLKyYp5XLx2lx1MDAxZdt9fSDD06Pb95uL48ZZ+9BcdTAwMTl8uf0ltIdcdTAwMTBRlklVXHUwMDAxaSqXmGi0OYHWx3HERnOifP1cdTAwMDOmufJDTFx1MDAxONNcdTAwMWNSz8XTouIpKSlP4HCzh2lcdTAwMDKJNpFcdTAwMTCjqlmT1qpcdTAwMDbhq8KKXHTOKKO5XHUwMDA2vo5cdTAwMWWRs5qkXFxLXHUwMDA0/1x1MDAxOIor1CNKqVx1MDAxMVx0SSqVksNIiEhV7VxiQuFcdTAwMTdJ41H2r6xPLHaLlVx1MDAxOSlcdTAwMDPSoXBcdTAwMDTmXHUwMDBlPK+CSUxLXHUwMDFiMKkxXHUwMDExVjRlqLxcdTAwMTJI8Fx1MDAxNJMuJLBcdTAwMTDHnap9VTfc4e7d4eeLo0b37OU8b1TAXHUwMDA0XHUwMDFh0lxcyFxuXGLWkSg6PiiFw1x1MDAwNVWMKqxcdTAwMTlcdTAwMTOpQf2SssZcXGtcdTAwMGVfKTuO7vYp/r5cbi1jnDw6dWah3Fx1MDAwZSZYLZ6CXHUwMDE2L3VJnVx1MDAxOUp+Te1DXHUwMDE5WYLZXHUwMDAzh4jNeaRcIkL+JZPBpWPyXHUwMDE1iZ7k54NcdTAwMTA1KaSZWuKLXHUwMDA2xVNdTmxorWuCh8JcbskkZrHAZ1wieyQ1cFWhI1x1MDAwNpdcclx1MDAwMb4swM3qKkiqa1xiKyRcdLhHoaCXTKbHimBBXHSwOVx1MDAxMTBelcRcdTAwMTUwXG7QL5JcdTAwMWJcdTAwMDTWR1L9wqSKalx1MDAxMOMjmFx1MDAxN1x1MDAxMT49kVx1MDAxYWeQ6mrEXpw+zlx1MDAxMjuB4FxcIEYgpZdcdTAwMDRHZYZoXGa6XHUwMDA2gVxiJ1x1MDAwMG7EqSZIboLYP0hYmW+y4auattYlXHS9sKpcdTAwMWNcdTAwMTNmJbxcdTAwMTZcdTAwMTOQ6VFcdTAwMTKrJcxzWkpXL5u3ZufwfnB/Zuzdf1x1MDAxZdn9k5I7LYxcdTAwMTOE/lOllzRWMZvuRlx1MDAxMlhm8bHSS2a2e5LR/nm3ceOwXHUwMDAz/77dXHUwMDE43WUz8lK7kZpiXHKZnpCRx92a9DJfXHUwMDFlRqmkVJHFXHK7eDpKLn3BKmHf21x1MDAxMV5mXHUwMDExbVp4SSnQXHUwMDFkpWLrwpeVLC1a0VWEL9N66U9VXs5xusmybDTIQlhcdTAwMTUlgbFfkEnWZilcdTAwMTNcImSxhZE1arTQnlx1MDAxZOBmy7r0vlx1MDAxZTe/yPZtnu6yNJSRzFx1MDAwMcWH5oBcdTAwMDTBjFNJltr5WD1cdHzoXGZPv95cciGMP3q+urTE2+N+68tmkjVcdTAwMTHWM+J6ha0la/G0IJmsQUBcdTAwMTl+VZQuXpUtnpJyXHUwMDFhcZisYU7gSSlcdTAwMDLjibFleFx1MDAwM4lwTWGCXHUwMDE1Z1x1MDAxMH5TXkRcdTAwMTlcdTAwMWaeq1FcdHnazynLTiw0JvPZfK5W7Fx1MDAxMSszuVx1MDAxYSFcdTAwMTg8LsdCQ8yoolx1MDAxZjqoLJirzVx1MDAwZfv/XHTTnJhS51xuOFx1MDAwMSMwnrg4Za5+06p2zbvrXt9Q+29u/8Xi54O8X1x1MDAxYipZSKl/XHUwMDEy/WVmTDy9K8lcdGJKkKX0N6v/hFx1MDAxZWGc/Lyf0IuEyLvjXHUwMDFmn7uwR1x1MDAxMM5lXHUwMDBiqOnM1dP40TZ7QUF4WbDlP/NUyUAyZ2RcdTAwMTNgffqB3Vx1MDAxZGM4bFx1MDAwNjCDU4e382yZL3tZecX4XHUwMDE1Xj+GZYhcdTAwMDBznNt+//T9f3OmM14ifQ==Single REST actor instance in VAST process VAST embedded Separate REST API for VAST server VAST VAST container REST API Actor Plugin
Running the REST API as dedicated process gives you more flexibility with
respect to deployment, fault isolation, and scaling. An embedded setup offers
higher throughput and lower latency between the REST API and the other VAST
components.
The REST API is also a command plugin and exposes the—you guessed it—web
command. To run the REST API as dedicated process, spin up a VAST node as
follows:
vast web server --certfile=/path/to/server.certificate --keyfile=/path/to/private.key
To run the server within the main VAST process, use a start
command:
vast start --commands= "web server [...]"
The server will only accept TLS requests by default. To allow clients to connect
successfully, you need to pass a valid certificate and corresponding private key
with the --certfile
and --keyfile
arguments.
Authentication Clients must authenticate all requests with a valid token. The token is a short
string that clients put in the X-VAST-Token
request header.
You can generate a valid token on the command line as follows:
vast web generate-token
For local testing and development, generating suitable certificates and tokens
can be a hassle. For this scenario, you can start the server in developer
mode where it accepts plain HTTP connections and does not
perform token authentication.
TLS Modes There exist four modes to start the REST API, each of which suits a slightly
different use case.
Developer Mode The developer mode bypasses encryption and authentication token verification.
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1bWXPaSFx1MDAxN33Pr3B5XmNN3947b1x1MDAwNK+J7Tgxg+N835RLXHUwMDAxXHUwMDAxMlx1MDAwMlx1MDAxMUl4YSr/fa5kXHUwMDFiLUhcdTAwMGW2RcJURVWJoVx1MDAxN/V2Tt9zuy//vNrY2IxuJ87mm41N56Zje243sK83X8fpV05cdTAwMTC6/lx1MDAxOLNo8j30p0EnKTmIokn45s8/7cnESmtZXHUwMDFkf3RX0/GckTOOQiz7P/y+sfFP8n+mrcDpRPa47zlJhSQrbVx1MDAwZcCIYvKxP07apoQykFx1MDAwMHRewFxyt7G9yOlibs/2QifNiZM29z9cdTAwMWOJ0V/QPj+7uFx1MDAxOO3CoGO601HabM/1vNPo1rtcdTAwMWKY3Vx1MDAxOUyDTKfCKPCHzpnbjVx1MDAwNnHHXG7p83qhj1OQ1lxu/Gl/MHbCMFfHn9hcdTAwMWQ3uo3TXGKZp97NwpuNNOVcdTAwMDa/bYHhacptklwiSaH5pu/5Qdx8XHUwMDE02ONwYlx1MDAwNzjnaSe+2p1hXHUwMDFmezLuPl7u+mFwNNPiwHH7g1xiU1m2VSeZZOw9p1RKlVx1MDAwZS1uZ3LQTVx1MDAxNvzv7DSMu/fTMJ56Xtq1OGOnXGKSLFAy62d/6Fx1MDAwZU+Ht7t7wj1QXXGu9uS323n3c6iyg8C/3pznfL//lPZoOunad0hcdTAwMDGpJGjFlTFCzvM9dzwsdtbzO8NcdTAwMTRcXEnq99fPQLViplx1MDAxYdRGcCM5qKVR7be8vVx1MDAwZbVp4MPHWa+x27CnR72aUd21w4FTM6z5XHUwMDAyrHklrP8gyfN8SCtahmi6gGgqXHUwMDEx0cpkNpVVXHUwMDAy+uKgfTxcdTAwMGLt6bvrXHUwMDBiKsPAtHWLO+WAjpybKIPn14+9dlU8kYZcdTAwMTFhmNZG18WTZFglXHUwMDE0XHUwMDExUElcdTAwMTHDqFx1MDAxMtJcdTAwMDAszZDHpznPkML+vSw//Ciqm1x1MDAxZlx1MDAwMKLAXHUwMDBmJl7Cjz86Tpd37Vx1MDAxMm6UUIPTXCIzQFx1MDAxYma45kQ/gVx1MDAxYSk4XHUwMDFmVpzep3yvZkyd4EtcdTAwMTfZXHUwMDFmR6fuzElcZlkudddcdTAwMWW53m1uoVx1MDAxMlTGgsFcdTAwMGZzZjR0sMXkXHUwMDE1LFe24bn9XHUwMDE4tZtcdTAwMWRcdTAwMWODXHUwMDEz5Fx1MDAwMFx1MDAxZLmoiuZcdTAwMDVcIn+S5nawdVx1MDAxYl9cdTAwMThcdTAwMWMss5H7gdt3x7bXynbu+UZIZsZQZFx1MDAxOFxizlx1MDAwNGQo+COG/XU5XHUwMDFiKWf27aMzXG5vTsVV++TLx6v1V1ZAXHUwMDBiJqhaWL3YXHUwMDAyZeXTnGaULFggRTVhQrOnWKBFmsGPaVZuQUo35sxKv1xym6dcdTAwMDfD919azFx1MDAxZF/u9Vx1MDAwZk9cdTAwMDfBvviFXHUwMDA2xPE8d1x1MDAxMpZcIlxccFmFcK1BXG7OlzchV2+nYrZ1eDy9bHt/TabDnYubWbNWXHUwMDEzUj+8jc6j+0XYxjI270GJ9eCWUVprTtEkQ1Y5zVFeXeRcdTAwMWXzXGa0Rov/c0RXw1x1MDAxN4PeJOpcdTAwMWP5rctP7VbkwpjqWtWRqVx1MDAwYtx37ZdAm1x0oauwXHLMoLbm6lx02/fjU/LfQPcjzkPHoFW1n1x1MDAwN2/QJdv2oiOsuaJA9VO00eNcYq5cdTAwMTNjmYmxg+itO+66437ebNyf01x1MDAxYyyx2SWyqTONe7lFLIJ9kopIJrhglFOaKda3J6WmyFx1MDAxOXfTTuT7bYdR01x1MDAxZo3cWE6f+O44KpZIhtCIeTFw7G4xXHUwMDE335zNi3V5uqST+H357SH9tJEuavJl/vnv16WltzLAKFR4lf37VMeHyUrHXHUwMDA3NC48aFDLn1xynO9uN7fbfp99juBcdTAwMWGC4PCw26jSZWtDbJUntl6N3Vx1MDAxMmVeTypcdTAwMThcdTAwMWWIzVx1MDAxOO6lRGd2l1/i9ZjMvD3P68lI3Vx1MDAxZng9n3ZOW/9cdTAwMWY3Tlx1MDAwZUpdXHUwMDFmnq8w92w8p1x1MDAxNz3P8clccqTo5aSdea5cZuTZY55cdTAwMDKlXHUwMDA0im1gki/PqK+B2FXncu/icnZ6xf0v0r9S3pozXG6YXHUwMDEyXHUwMDE2xbFSxiVH30LnXGK2RVfn9XBmXHUwMDExxVxyoXGrUku+SDpmLMnRXHUwMDFiXHUwMDE1QnJ0ezJno1x1MDAwZlx1MDAxY6TIXHUwMDAyJSrkYcq1q3BHnbz3ep9HpH0yYZP3lztw+6De6rfBT6Pko+hNqFVcdTAwMDZdLmhcdTAwMTV0gVx1MDAwM9FgtGJLY9f9ulxyTVx1MDAxOMxujvbZoWndXFzyk1F77bErqKWo0UZcdTAwMThNXHIvYJeCJTCTcUooN1Sv5oSMWoC7XHUwMDA0XHUwMDEwRVx1MDAxNYn7QOVcIoy5Ri2EsltcdTAwMTijJSN6wclBiEvEeIVGfFx1MDAxMYzXx+DULOByefXqt+o1jZ+F1XyivKtkNJOVjpvUuDsjkJc3Rpffdvd2jtXl+excdTAwMTNcdTAwMGK3L/zDk7Ovn9ef0NySIFx1MDAwNFfoN1BcInN8VszSiD+iNcVcclx1MDAwZYuuhM9gLEKlYFx1MDAwNFx1MDAwNFxiSrku4TM1XHUwMDE2XHUwMDAzSvFcdTAwMWZBXHUwMDA0QG5ruSO00Fx1MDAxY0BcdTAwMWHNf1x1MDAxM3pcclxiXb2m8bO4mvVcdTAwMTG68lx1MDAxY1x1MDAxZM2SXHUwMDE0iHGxNKFvL4eOb1x1MDAwZYB/3j/Yenek7f6k8XHtXHQticWNXHUwMDE2KqYtMjp/baWIhZZZSi1AoZDTajWMllx1MDAxNlVGcmqS43Mly1x1MDAxOK0silu5Nlxmt1x1MDAxZck48Fwio1x1MDAwMTVcdTAwMDZcIlx1MDAwNG3Cb0qvXHUwMDAxpbeqVzV+XHUwMDE217MuTnNR6TEqrVx1MDAwNXuSx3g4XHUwMDFjyV1x1dzvUTn4cnG49847Plt7TitjUYlcXJbGxCfzeSvNpSWEMEAoNZJcdTAwMTmyXHUwMDFhK02FdSdcdTAwMTM4l9hcZi/jNFwiJL5SXHUwMDEwXHUwMDE0i1GhxFx1MDAwMqVccrqWJlx1MDAxZcdvRq9cdTAwMDGjq5c0frZcdTAwMTZWsy5Ci0y0yMJ1SXxAoUAvb6Wbl28n3v571r61oy+uf3598vmstfaMXHUwMDE2XGb9aMVcdTAwMDRQYJpqyDFcdTAwMWH1XHUwMDExOlx1MDAxZThcdTAwMGJcbnhcdTAwMWN/RtlKKFxyysL9RFx1MDAxONxgXHQozcusNFjoXHUwMDA0SdzyXHUwMDA1Ybj36FwioynBXuKS0fIj2d+UTnJ/nu6uWtL4WVjMJ1x1MDAxMrrqllx1MDAwNFx1MDAxNUGlgTZKU3TslzfQ5SFccnXSeVx1MDAwNeFhqLetQnyYWM3hl4FFkpaEh1x1MDAwMcRcdTAwMDe4IH9xeNjLL0qWXHUwMDBmXHUwMDBmazdOW9k5XW142Fx1MDAwZmKsilx1MDAxNydJ555FLk1VXHUwMDE1uVxmXHUwMDFhZyElXf7MuXHRXHK868F+T0ejd3tfP1xm/SZcdTAwMWOvu61cdTAwMDTCLFx1MDAwZaA4XHUwMDA1JVxizXj4yVx1MDAxYqglUJ6I+F5DoynKXHUwMDA0M9V5QVlcdTAwMTZ4XHUwMDAwXHUwMDBilyPorYLmQptygVsj7+Z1fkFMzctZXHJLs1x1MDAxYd9le1x1MDAwMz+M3mhSyu5MXFzuz7hcdTAwMDHN9edRQleGXHUwMDBiSVZcdTAwMWQtJNBcXFLN6PKxcI+Hlz+B0kW3caXyN1OmhnChSoFLSli7XHUwMDEwLiQ1MC5cZv1Z4ULPpE8hXFyoqC9/UlxmT1x1MDAwMdX1ildSVf5l8vSRS1x1MDAxZSW1XCJglqeb029Ou9d+2GuGnUE06Xw7dlnV73vWxoJyyN/TXHUwMDAyeZk4rVxmz4OyiILMSO9cdEe44oTx8qua/5A4pTL2tlx1MDAxNIJI4LbN0PIva9a2nSvH8ydZ+ZmxaZTnKqzapqWdeVx1MDAxNr9EtftcdTAwMDdcZqTSODHLXHUwMDEzbDDTXHUwMDFlV+3B8IPzodM+c9ydxtHNuvt/QJW0QEtkjiaGKMZzfJPxpVx1MDAwYopCwFwijOqsbqzR2omSYO/sydH9XHUwMDExLONKSyNe9ouGXHUwMDE3KtRV/ybOkHR4q1x1MDAwZdDbb7VOypWpzpWtxe98lMdJT149zFIyQ5v2ZHJcdTAwMWHh/MxXcfPKda7flsCqlzxx/WRRY6Y5yeJ/f/X9X+1RMcsifQ==Host REST API VAST localhost:80 Developer HTTP
Pass --mode=dev
to start the REST API in developer mode:
vast web server --mode=dev
Server Mode The server mode reflects the "traditional" mode of operation where VAST binds to
a network interface. This mode only accepts HTTPS connections and requires a
valid authentication token for every request. This is the default mode of
operation.
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXNly4shcdTAwMTJ9769weF6bmtqXfsN437CN9ztcdTAwMTNcdTAwMGVcdTAwMTmEUbNcYoNs457of79Z8oIkJFx1MDAxMFtcdTAwMGYzMXRE25ZEqVSVJ/OcrCz99WVtbT147brr39bW3UHVaXm1nvOy/tVcdTAwMWV/dnt9z+/AKVx1MDAxYf7d95961fDKRlx1MDAxMHT7337/3el20fBbqOq3377ptty221x0+nDt/+DvtbW/wv8j9+q51cDpPLTc8Fx1MDAwYuGp4e1cYmUsefjY74T3ZoZcdIUlx59cdTAwMTd4/U24X+DW4GzdafXd4Vx1MDAxOXtofbd8JNpcdTAwMTfk8ubq7q69TVx1MDAxYVVTe2pcdTAwMGZvW/darUrw2np7MKfaeOpFOtVcdTAwMGZ6ftO98mpBw3Yscfzze31cdTAwMWaGYPitnv/00Oi4/X7sO37XqXrBqz2Gh91/XHUwMDFihW9rwyNcdTAwMDP4q0BM5Fx1MDAxMe13qMSJu5f8lt+zd1x1MDAwZnpOp991ejDkwz7cO9XmXHUwMDAzdKRTXHUwMDFif93Lx7PRyFxyXHUwMDFirvfQXGLgqIj0tO+GY1xmneeUSqmGT2bv092rhfP9Z3RcdTAwMTQ6tfdR6Dy1WsOu2Vx1MDAxM1tJXHUwMDFiidpJZPqccq1Zab5u71xib0/VxI3akY+vn92PXHUwMDE5ldPr+S/rn2d+vv827NFTt+a8XHUwMDE5XG6RSlx1MDAxMq005lx1MDAxOKvP8y2v00x2tuVXm0PbXG6P/vw6g1FrJrJsmmItXGbBWvLcRs23rvZ3Nl6ezdFp+WZv/6ZnavfXXHUwMDBiNuqa02+4XHUwMDBitmqiXHUwMDEzVq0zrfo3XHUwMDFjfma3aC5TXGY6evDDoJXmYM+S0V9i0ORuv3AqTL/46Fx1MDAxZFxc7bPt3sWeXCLpXHUwMDA2XHUwMDFkuIMgYs9fxzW7VJxwqanAi8JJ+FgpXHUwMDEwkXhcdTAwMWNEuDFcdTAwMTJcdTAwMTOZXHUwMDFiXCLjxzlcdTAwMGWRhP/OXHUwMDBiXHUwMDEwP1xiXHUwMDE2XGZcdTAwMTCjRVx1MDAwMlx1MDAxZmJcdTAwMWV8/FZ1a7zmjGJDpUGDjiCDXHTBsVx1MDAxNJpPgYyhbX5MOH0/8jNcdTAwMWIwi7S94Vx1MDAxNPudoOL9XGJpg4xcdTAwMWTddtpe6zU2TaFRWrrg92NRtO/CXHUwMDFkwyZY7Npiy3uwRrtehWdwezF7XHUwMDBlPOBEn1x1MDAxN1x1MDAwNH53eLZcbnd3oMHeXlx1MDAxZT/u97xcdTAwMDev47TOo52bPVx1MDAwNlx1MDAxMW50XHUwMDE2wlxi10ZQSVxmzY2w2u3uvct3dpmv/Yq5afo34rq6+syKXHUwMDFiilxilVxcKFx0v0ZojG2AXHUwMDExgVxmXHUwMDEwXHUwMDAzzoGBaYbNXFzwqzv3XHUwMDE4i1H4aTNcbj89XHUwMDEymJihhlxiXHUwMDE2sd1Z0Ecmoy89rqS668j077PXs9b3x3JdXHUwMDFlyrLj3Zd2zTHPXHUwMDFiru69wU7vedOR9+r49OGxMug/X3xfaLhcdTAwMWHa8ZLCXHUwMDE1yFx1MDAxNJKJJlxm3TCC8fyULn04V1x1MDAxZk1cbiOZiSaGXHUwMDE3iCaMXHUwMDFkXidpRC+N541cdTAwMDQzwTWhRM1cdKdcdTAwMDVcdTAwMDSzaSwzLZhRXHUwMDFjOzommDlPQWPtj05cdTAwMDBD3Ulccmo8/p38Qa3t1WrRIJOIa1x1MDAxM0JDMq6F/Xzr5ezRTUbAloCjoIZcdTAwMTkpZP6swf5l7eiuXHUwMDFk7Ho7Tqvh6UOPXHUwMDA0/eLqo5FQjDTjmCvCpVx1MDAwMv9cdTAwMTOHo2RcYsKfwphpqolk88BxrPZikoxikjGdXHUwMDA0JTecYvBcdTAwMWJ4LkzOXHUwMDFj4t7mWlx1MDAxZu1cdTAwMWNsl2otUuhVyyp4bMv9RjE9XHUwMDE2JVx1MDAxNNmvXHUwMDBlRW6r5XX7qdZcdTAwMGYmnlx1MDAxOYxcdTAwMTSBPjCJ85u/c1f8Ua37hWv84pr9XoeXXHUwMDA3flx1MDAxNrWbTTwt3vhNXCK3XHUwMDAwMVx1MDAwN5noZynBR2kkNWGKXHUwMDE5LuFcdTAwMDfVo3affclnSlxyZodcdTAwMTIm9Vx1MDAxNDCYPVx1MDAwM9HrXHUwMDA0pz6vb9W2jr2qt33+crp/vJWPe43ldJvX5da2/3B2RDpe4dxtP1x1MDAwZm4ufqwmp3u7f1xujMBF4ixcdTAwMWNcdTAwMTnDXHUwMDE5XHUwMDEzWOTPQYxcdTAwMWbpf1xijLJcdTAwMTPPv4mq4bg2XHUwMDFicFLzzaPJOUNcdTAwMTmEKsGnSUGMh8ZcdTAwMTgjU4aQSFx1MDAxMmpcbnrWXHUwMDBmnF6w4XVqXuchXHUwMDFlo95cdTAwMTdD9nL41ZDQVZ9sL1x1MDAwYlx1MDAxOGHolDBYUqakNmxo/HZcZpxuatxzO7VhJ+L9dvpByW+3PZuzOvG9TpC8XCJ8hKJcdTAwMDVGw3VqybPQcvScTX5ccue0a9uL+53hb2vDWVxy//j8/c+vqVdcdTAwMTdcIpaR+MKX6M9cdTAwMTmCJGdSJVx1MDAwZn9yRFx0XHUwMDE2IPlcdTAwMTRcdTAwMTnGo+3TvWLR19evj0/Fdnuw1b/ZvV9xdINeXHUwMDEzXGKEq+RKY02wjFx1MDAwYjZgY1xiRz7Jni0wO89cdTAwMTBW3GAqNNMyuvYx5ItcdTAwMDZJLsHlXG5cdOKRskhcdTAwMDB/T5BAyFSYp0fNXGJcdTAwMDI3MC31zUb96eCgdb3rXFzsdSruR/BZsFx1MDAwN1lsmFxuVVqaXHUwMDFkj0vkXHSshKZU69yGfFsjwaZqnexiXexcdTAwMWPfXHUwMDFjbVbOXv2VN2RBkcJaUcwomEmEO71FLYKAXHUwMDEyg1x1MDAxNqKYcjOX0snMolNEwFx1MDAwMlx0VlRhXG7kgKYlXCI0wqBMwZNcdTAwMWJcctxCjybZOdWYklxm7jeXXHUwMDE1r072YsHRJ3ZuwcEnc07tZ2Q2p4xN2YAmmclcdTAwMGJFJeWcqvyJ+Zve7vXpzsnOlTzBXHUwMDBmTVY5a1xcXHLuVlx1MDAxZs9cdTAwMWNcdFx1MDAxOHBcdTAwMDB0KJJkXGbPgjCkMdAhrSnhJJLEWySgQTFiKlx1MDAwNcNEXHUwMDEwQSnXKYCmXHUwMDA2MUIhhFJcZiZAYit0n5xVcyqwSc80rlx1MDAxZaTZv1x1MDAxYdLZk2o/o9O5MEjj7IxcZlx1MDAwNlx1MDAxYtbA6/NnZM63xcFcdTAwMDZ73FGn9dJV/6RcdTAwMWOQJ6VXXHUwMDFl01x1MDAxMiOuXHUwMDE0x4wz0HBMJTCNXHUwMDExxGZcYt2CWHdLlrPWTSSiykhOXHUwMDAxlphcdCXTQK2AXHUwMDE0g28xjMN5XHUwMDE29cZcdTAwMWZcXJNcdTAwMTNiiExPVP5cdTAwMDfpt4f/ZVE6e07tZ3Q2XHUwMDE3humIT09iWoJcdDNDRP44fdd8VM+166v7pz6VZ7dcdTAwMWW7fSqufpxWXHUwMDA2UFx1MDAwYqNLXHUwMDE404qIeJxcdTAwMDbvioSw5WyUXHUwMDFhyVxmVUvBNFx1MDAxNYhcYlx1MDAwMbPLuYTb8DRMg41cdTAwMTDArKBwXHUwMDE5XHUwMDE1SoxAmlx1MDAxODBcdTAwMTCjjEkv/PpcdTAwMGbUb1x1MDAwZv+rQJ09p/ZTXHUwMDE4mc5FYVqIzJxcdTAwMTCBwGUgcrH8SaFNpyH66qx7obfrVy+H9K5cInu3K49pwUBLS6JcdTAwMDC6iolETkhcdTAwMDLgsVJghcQ6wCiQXHUwMDE2XHUwMDE5plx1MDAxNTJcdTAwMDY8XHUwMDA3XHUwMDE3XHUwMDE425LMtChNXHUwMDEwXGIhXHROX4CnXHUwMDE1ZHQhRXCptI6udP2H6L+ReWdNqf2MTOaUeM4qy+EsU0mDnWsrXHUwMDAxppDS49eGV7eKdGxcdTAwMTWAXlxcXHUwMDE1QCacTUpcdTAwMDHAaIUpM+BR7H+peF11IM5UYHpZrJz/ulx1MDAwMtNcdHUsyUKcsHMzwU7zzGI4YbNXfJrtXHJcdTAwMGZHTuG8dFa9P7jwNlx1MDAxZo53XHUwMDBmWnfXi0XdMmpvsECMXHUwMDEyxrlcdTAwMDbpQUlcdTAwMWN14JYsJlx1MDAxNTZGXHUwMDAxLvV8qMusRkhZRiEj6yZcdTAwMWGkk+RcdTAwMThPU24wXHUwMDEz6j6/s9gqhJE4vVx1MDAxY0yT3JjGKPz3jXOWXG7tSGYjXHUwMDA27ZZbXHUwMDBmZlx1MDAwM3bsUZIojnZntlx1MDAxOGoywaytYFwi09RcdTAwMTKJvf3D2+JlkXP38ODS7Fx1MDAxNzY6weoz4kRcdTAwMTWE4PNlnLNcdTAwMDBcdTAwMWIx0uG6Z+RB33kt5Uwxqcg0W5RWMk5SaSmhUlLbNUqmuciLsYt+NFxiRsBF+S9cdTAwMDVX2I+xqMosLpKYZsFcbmhcdTAwMThoTUGmUZpjy61WXHUwMDEzV9pgXHUwMDA0Mlx1MDAxM1x1MDAxNJpcdTAwMDA3XCKT1Vx1MDAwN5IgXHUwMDA22t9oXHS2YZeB5sHchM2BSEhCtbSreVx1MDAxYacmkIBFY0NtpYS1V81H5CbQa2zkdHF0vsqCmeC36NokXGItQHCETfNcdG5LS3VKaVx1MDAxMkaKXHUwMDEzrVm4liql+VhWyahVyurUUf3H/tH5/Ws7KDXO236riTtbr1x1MDAxOZ3ioOxgqED42JzNMPNcdTAwMTjtXHUwMDE0XHUwMDA2pclA+Vx1MDAwMFxyXHUwMDAzwLGRTv1jtHW2XHUwMDAx208hXHQkMl97miFFqeEg1oXN+lx1MDAwZVv7XHUwMDEy/Tlt7k3q7GVvokFcdTAwMTZaw88v1jdrO96L2T3aKWz3bzdaXXn1/aW88kX78JyIXHUwMDBiRlx1MDAxOTFWKKm4blx1MDAxMFIgsFlcdTAwMTDxWlxuRlwivmaRXHUwMDFi0oxEmFx1MDAxOIqZ0cLSuzRcdTAwMTlBXHUwMDE5sqstVFxu8EOC8NF8OiOMSoBhuppcdTAwMWaiceOWXHUwMDFlfndcdTAwMWZLgS5cYlx1MDAxZVx1MDAxY5x0v2850YL79Y3BXHUwMDBmpXdcdTAwMWXZtSzV/Z5qP/T1uYheQMTLM95cdTAwMWZ0vp/T45P9jW7z4XW/XHUwMDE0vWDztl64XHUwMDFklFx1MDAwZtpugTedXHUwMDA2b1xmui0/esHB9iZp+tdccnbDm1xydlA/vN9Sf0dcdTAwMDZwOFaze/SkXHUwMDA3+jUloMvzbVx1MDAxODFcIsFzYcqBMmGFXHUwMDE1i37fMFx1MDAwNF5cbtx4mFTQ2ExuXHUwMDBmXHUwMDAzoSdcbsadS0PBwIfGaz9cdTAwMDRzUO6K6bdcIlx1MDAwMYPZpFx1MDAxNjkyXFzYQlx1MDAxNVx0NFbJIYt9a04jXHUwMDAzeOU2ly6kVGpSc9RWXHUwMDFkXHRMNOBcdTAwMDfca6J3hNrMXHUwMDAxXHUwMDA1USZsstRM7J0gyG4mUMBdMMBWs3hzXHUwMDFjQqXmXHUwMDEyXHUwMDAyIVigoXxSc0oj63tcdTAwMTiEVFx1MDAwZb2TXCLZO4JBXHUwMDE02lQjY4pPnFxymD5hXHUwMDE0iFx1MDAxOckoUUao+NgpxFx1MDAxNVxmXHUwMDFljJ5g8Lh6YnNcdTAwMDJJXHUwMDA18lxmxo4ylqjuIFx1MDAxOG4mXHUwMDA1ZpIpo1x02ECO5oxUVENcdTAwMWZApkTqLMOTMO9cdTAwMWGGVGlcdTAwMTAxMK5cdTAwMTNnXHUwMDAyWlx1MDAwM7NcdTAwMDL1ZrNCYFix1lx1MDAxNNJcdTAwMDJaUkpcdC0htopcdTAwMWOtUVxurXBbXHUwMDE2XHUwMDBiXHUwMDBmXHUwMDFki/hcdTAwMDBcdTAwMWEwN65cdTAwMTQzRlx1MDAxMZhcdTAwMTAxcWK1QThcdTAwMWNcdTAwMWSsMTxOvHdcdTAwMDV4VqBwQlx1MDAwMls3msN9J9pcdFx1MDAwNFx1MDAxMTt1XHUwMDEwXHUwMDA2wFYgrMWaU1xiTFx1MDAxYlx1MDAxZdS+6IRgmOdcdTAwMWOMXHUwMDA0ZjNcdTAwMDRcdTAwMTKV1ozjz2uQ3WFcdTAwMGJ0z+DQV+RcdTAwMDFcdTAwMTlcdTAwMTBRiF9cdTAwMWFCoGWm8fY0XHUwMDEyttpcdTAwMGbmXHUwMDE2XHUwMDA2kNDJs8Gt3UP/gFx1MDAxOClBh1x1MDAxOZP3wbOPiIFuXHUwMDAyU1x1MDAwNlx1MDAxMaEmNmcr/oUtMVx1MDAwMdBS+F/SuCmH56F7htmNtFx1MDAxNFx1MDAwNFx1MDAxNJDciZ4vw+/mYm1jXG7plch+RVx1MDAxM8CDao5cdTAwMDXNX4A8nuWvqpRcdTAwMDVOXGZcdTAwMGVcdTAwMDI8XHUwMDBmh2njidomIZB1blx1MDAxOJyiolx1MDAwNM9XXHUwMDA2Ua/XUzibQFx1MDAxYyRcZrWAXHUwMDEy0SWUSOZcdTAwMTdcdTAwMDFnl8DqOIGrOFx1MDAxZVl/XHUwMDAx10SoXHIr/07GNvtcdTAwMWW55e9lm4b4jYVp5vtcdFh2XVx1MDAwM8RcdTAwMWNcYrxcdTAwMTGPP1x1MDAxMaKyXdotNEWvs9W82Xs5bXr949uVzzYpZrONXHUwMDEwXHUwMDE3XHUwMDE5sYQyrqyiOexFrnyKXHUwMDE0JKa8jsDWuFx1MDAwMF2aWKrwj1x1MDAxNiozv7Xg/aVcdTAwMDX9xb61YNacb6xHY8GYmfvlKjLTI1x1MDAxMdNSXHUwMDE5sNP8yd/x709Z0bpcdTAwMDTgasCusbLvXHUwMDFhXHUwMDAynlx1MDAxNamUXGbrXHUwMDEyIGRcbptcdTAwMDDRSoCqoDh7xcVcdTAwMDVNNVx0nppWXHJxU+ApQVx1MDAxMihcdEHTSNBBLC1ualx1MDAwNnpcdTAwMTBcdTAwMDNrty81XHUwMDEx0Vf3fS7IXHUwMDE4YiXUVC9cdTAwMTNZ3W2p41/XsVx1MDAxNt+WXG50m4BcYlx1MDAwMX1cdERcdTAwMTm08mieVSFQXHUwMDBizO7NXCKWXHUwMDFhkb9zn2rQ81x1MDAxMm9cZlls0VwiQyCegPFcbtC/LKnI4JStkjXYcIZtoeHE5iiIWWVsaTOoXHUwMDExyWKKjNh6KkEgmlFcdTAwMGXtqcn0P9PW35rjXGJmkFFDubKCm05ujlwiW0ElQLeCgpI01lx1MDAxY4CGXHUwMDAyxTRcdTAwMDZcdTAwMDJcdTAwMDYmXCKijb9Ef05NY1x1MDAxNM+uuVZEgyOJLtZOcpyqPChvXHUwMDE2ezioP1ZcdTAwMGVfRanceqLHq85jmM142bmSMO0s7jbBY1wigbVcdTAwMDCST0GNRDn+XGZeMytBLFLWx6LLc1x1MDAxZntcdTAwMTmt8OPRXHUwMDFh+L+hsmT571x1MDAxNpuXXHUwMDBi5a8sqfptu4Q57lx1MDAxZE7LqFx1MDAxYlx1MDAxYsuGXHUwMDEyfZpcdNXMZC6FK1x1MDAwMdKETEOGeOm6vHNzW6t6ldfd8mbphOhdtuKYNnJkM9RcXGoks8Ak9SW4I8A12taDaZ6uRv6VMuNsq3L+R6d4sjeVxlhSVcmwM2PhlCkvgGVl4lx0Q3iXjOaPkdXLvVL1YLApbyrPr1dbvb1m62YmrZ/cKbDMii0mNOKG2ryuMZzrRJSUXHUwMDE4KL2Bi5jShrDsKJnnnTaZe1x1MDAxOHBcbtpSXjgtJOdYZ6yTLqNuRM6CqpziYbPjb7d2+KXer17e31xyXHUwMDFhj/VcdTAwMGL2kCZcdTAwMWVcYmg/aVdoXHUwMDE0ZoRcdTAwMDFPiLDbj1xuXHKGlN1cdTAwMGJPXHUwMDE1kEwp8YSqkaUqh1x1MDAwNNZcdTAwMTa7M1x1MDAwMs+Vmc98g7bILKdcdTAwMTBcdTAwMTT4PldT7E5cdTAwMWM/ryubYuBcdTAwMDTZPd5cdTAwMDZrzmyNYYIsZ29emlx1MDAwN/gypYyTRkq833c7hFx1MDAwNVx1MDAxY5JMkzRYODtcdTAwMWXv3GNmNiM7nsnZzFx1MDAxNMJ3z89PKulcdTAwMTXXOnbx8knxW1e+fIxTOEbrTrdbXHRghD7ncf3Zc1820ld47Fwiz5f3abXocsPp//nl5/9cdTAwMDHL7lx1MDAxMqgifQ==Host auth token VAST 0.0.0.0:443 User auth tokens compare token REST API HTTPS
Pass --mode=server
to start the REST API in server mode:
vast web server --mode=server
Upstream TLS Mode The upstream TLS mode is suitable when VAST sits upstream of a separate
TLS terminator that is running on the same machine. This kind of setup
is commonly encountered when running nginx as a reverse proxy.
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1bWXPaSFx1MDAxN33Pr3B5XmNN3947b1x1MDAwNK+J7Tgxg+N835RLXHUwMDAxXHUwMDAxMlx1MDAwMlx1MDAxMUl4YSr/fa5kXHUwMDFiLUhcdTAwMGW2RcJURVWJoVx1MDAxN/V2Tt9zuy//vNrY2IxuJ87mm41N56Zje243sK83X8fpV05cdTAwMTC6/lx1MDAxOLNo8j30p0EnKTmIokn45s8/7cnESmtZXHUwMDFkf3RX0/GckTOOQiz7P/y+sfFP8n+mrcDpRPa47zlJhSQrbVx1MDAwZcCIYvKxP07apoQykFx1MDAwMHRewFxyt7G9yOlibs/2QifNiZM29z9cdTAwMWOJ0V/QPj+7uFx1MDAxOO3CoGO601HabM/1vNPo1rtcdTAwMWKY3Vx1MDAxOUyDTKfCKPCHzpnbjVx1MDAwNnHHXG7p83qhj1OQ1lxu/Gl/MHbCMFfHn9hcdTAwMWQ3uo3TXGKZp97NwpuNNOVcdTAwMDa/bYHhacptklwiSaH5pu/5Qdx8XHUwMDE02ONwYlx1MDAwNzjnaSe+2p1hXHUwMDFmezLuPl7u+mFwNNPiwHH7g1xiU1m2VSeZZOw9p1RKlVx1MDAwZS1uZ3LQTVx1MDAxNvzv7DSMu/fTMJ56Xtq1OGOnXGKSLFAy62d/6Fx1MDAwZU+Ht7t7wj1QXXGu9uS323n3c6iyg8C/3pznfL//lPZoOunad0hcdTAwMDGpJGjFlTFCzvM9dzwsdtbzO8NcdTAwMTRcXEnq99fPQLViplx1MDAxYdRGcCM5qKVR7be8vVx1MDAwZbVp4MPHWa+x27CnR72aUd21w4FTM6z5XHUwMDAyrHklrP8gyfN8SCtahmi6gGgqXHUwMDEx0cpkNpVVXHUwMDAy+uKgfTxcdTAwMGLt6bvrXHUwMDBiKsPAtHWLO+WAjpybKIPn14+9dlU8kYZcdTAwMTFhmNZG18WTZFglXHUwMDE0XHUwMDExUElcdTAwMTHDqFx1MDAxMtJcdTAwMDAszZDHpznPkML+vSw//Ciqm1x1MDAxZlx1MDAwMKLAXHUwMDBmJl7Cjz86Tpd37Vx1MDAxMm6UUIPTXCIzQFx1MDAxYma45kQ/gVx1MDAxYSk4XHUwMDFmVpzep3yvZkyd4EtcdTAwMTfZXHUwMDFmR6fuzElcZlkudddcdTAwMWW53m1uoVx1MDAxMlTGgsFcdTAwMGZzZjR0sMXkXHUwMDE1LFe24bn9XHUwMDE4tZtcdTAwMWRcdTAwMWODXHUwMDEz5Fx1MDAwMFx1MDAxZLmoiuZcdTAwMDVcIn+S5nawdVx1MDAxYl9cdTAwMThcdTAwMWMss5H7gdt3x7bXynbu+UZIZsZQZFx1MDAxOFxizlx1MDAwNGQo+COG/XU5XHUwMDFiKWf27aMzXG5vTsVV++TLx6v1V1ZAXHUwMDBiJqhaWL3YXHUwMDAyZeXTnGaULFggRTVhQrOnWKBFmsGPaVZuQUo35sxKv1xym6dcdTAwMDfD919azFx1MDAxZF/u9Vx1MDAwZk9cdTAwMDfBvviFXHUwMDA2xPE8d1x1MDAxMpZcIlxccFmFcK1BXG7OlzchV2+nYrZ1eDy9bHt/TabDnYubWbNWXHUwMDEzUj+8jc6j+0XYxjI270GJ9eCWUVprTtEkQ1Y5zVFeXeRcdTAwMWXzXGa0Rov/c0RXw1x1MDAxN4PeJOpcdTAwMWP5rctP7VbkwpjqWtWRqVx1MDAwYtx37ZdAm1x0oauwXHLMoLbm6lx02/fjU/LfQPcjzkPHoFW1n1x1MDAwN2/QJdv2oiOsuaJA9VO00eNcYq5cdTAwMTNjmYmxg+itO+66437ebNyf01x1MDAxYyyx2SWyqTONe7lFLIJ9kopIJrhglFOaKda3J6WmyFx1MDAxOXfTTuT7bYdR01x1MDAxZo3cWE6f+O44KpZIhtCIeTFw7G4xXHUwMDE335zNi3V5uqST+H357SH9tJEuavJl/vnv16WltzLAKFR4lf37VMeHyUrHXHUwMDA3NC48aFDLn1xynO9uN7fbfp99juBcdTAwMWGC4PCw26jSZWtDbJUntl6N3Vx1MDAxMmVeTypcdTAwMThcdTAwMWWIzVx1MDAxOO6lRGd2l1/i9ZjMvD3P68lI3Vx1MDAxZng9n3ZOW/9cdTAwMWY3Tlx1MDAwZUpdXHUwMDFmnq8w92w8p1x1MDAxNz3P8clccqTo5aSdea5cZuTZY55cdTAwMDKlXHUwMDA0im1gki/PqK+B2FXncu/icnZ6xf0v0r9S3pozXG6YXHUwMDEyXHUwMDE2xbFSxiVH30LnXGK2RVfn9XBmXHUwMDExxVxyoXGrUku+SDpmLMnRXHUwMDFiXHUwMDE1QnJ0ezJno1x1MDAwZlx1MDAxY6TIXHUwMDAyJSrkYcq1q3BHnbz3ep9HpH0yYZP3lztw+6De6rfBT6Pko+hNqFVcdTAwMDZdLmhcdTAwMTV0gVx1MDAwM9FgtGJLY9f9ulxyTVx1MDAxOMxujvbZoWndXFzyk1F77bErqKWo0UZcdTAwMThNXHIvYJeCJTCTcUooN1Sv5oSMWoC7XHUwMDA0XHUwMDEwRVx1MDAxNYn7QOVcIoy5Ri2EsltcdTAwMTijJSN6wclBiEvEeIVGfFx1MDAxMYzXx+DULOByefXqt+o1jZ+F1XyivKtkNJOVjpvUuDsjkJc3Rpffdvd2jtXl+excdTAwMTNcdTAwMGK3L/zDk7Ovn9ef0NySIFx1MDAwNFfoN1BcInN8VszSiD+iNcVcclx1MDAwZYuuhM9gLEKlYFx1MDAwNFx1MDAwNFxiSrku4TM1XHUwMDE2XHUwMDAzSvFcdTAwMWZBXHUwMDA0QG5ruSO00Fx1MDAxY0BcdTAwMWHNf1x1MDAxM3pcclxiXb2m8bO4mvVcdTAwMTG68lx1MDAxY1x1MDAxZM2SXHUwMDE0iHGxNKFvL4eOb1x1MDAwZYB/3j/Yenek7f6k8XHtXHQticWNXHUwMDE2KqYtMjp/baWIhZZZSi1AoZDTajWMllx1MDAxNlVGcmqS43Mly1x1MDAxOK0silu5Nlxmt1x1MDAxZck48Fwio1x1MDAwMTVcdTAwMDZcIlx1MDAwNG3Cb0qvXHUwMDAxpbeqVzV+XHUwMDE217MuTnNR6TEqrVx1MDAwNXuSx3g4XHUwMDFjyV1x1dzvUTn4cnG49847Plt7TitjUYlcXJbGxCfzeSvNpSWEMEAoNZJcdTAwMTmyXHUwMDFhK02FdSdcdTAwMTM4l9hcZi/jNFwiJL5SXHUwMDEwXHUwMDE0i1GhxFx1MDAwMqVccrqWJlx1MDAxZcdvRq9cdTAwMDGjq5c0frZcdTAwMTZWsy5Ci0y0yMJ1SXxAoUAvb6Wbl28n3v571r61oy+uf3598vmstfaMXHUwMDE2XGb9aMVcdTAwMDRQYJpqyDFcdTAwMWH1XHUwMDExOlx1MDAxZThcdTAwMGJcbnhcdTAwMWN/RtlKKFxyysL9RFx1MDAxONxgXHQozcusNFjoXHUwMDA0SdzyXHUwMDA1Ybj36FwioynBXuKS0fIj2d+UTnJ/nu6uWtL4WVjMJ1x1MDAxMrrqllx1MDAwNFx1MDAxNUGlgTZKU3TslzfQ5SFccnXSeVx1MDAwNeFhqLetQnyYWM3hl4FFkpaEh1x1MDAwMcRcdTAwMDe4IH9xeNjLL0qWXHUwMDBmXHUwMDBmazdOW9k5XW142Fx1MDAwZmKsilx1MDAxNydJ555FLk1VXHUwMDE1uVxmXHUwMDFhZyElXf7MuXHRXHK868F+T0ejd3tfP1xm/SZcdTAwMWOvu61cdTAwMDTCLFx1MDAwZaA4XHUwMDA1JVxizXj4yVx1MDAxYqglUJ6I+F5DoynKXHUwMDA0M9V5QVlcdTAwMTZ4XHUwMDAwXHUwMDBilyPorYLmQptygVsj7+Z1fkFMzctZXHJLs1x1MDAxYd9le1x1MDAwMz+M3mhSyu5MXFzuz7hcdTAwMDHN9edRQleGXHUwMDBiSVZcdTAwMWQtJNBcXFLN6PKxcI+Hlz+B0kW3caXyN1OmhnChSoFLSli7XHUwMDEwLiQ1MC5cZv1Z4ULPpE8hXFyoqC9/UlxmT1x1MDAwMdX1ildSVf5l8vSRS1x1MDAxZSW1XCJglqeb029Ou9d+2GuGnUE06Xw7dlnV73vWxoJyyN/TXHUwMDAyeZk4rVxmz4OyiILMSO9cdEe44oTx8qua/5A4pTL2tlx1MDAxNIJI4LbN0PIva9a2nSvH8ydZ+ZmxaZTnKqzapqWdeVx1MDAxNr9EtftcdTAwMDdcZqTSODHLXHUwMDEzbDDTXHUwMDFlV+3B8IPzodM+c9ydxtHNuvt/QJW0QEtkjiaGKMZzfJPxpVx1MDAwYopCwFwijOqsbqzR2omSYO/sydH9XHUwMDExLONKSyNe9ouGXHUwMDE3KtRV/ybOkHR4q1x1MDAwZdDbb7VOypWpzpWtxe98lMdJT149zFIyQ5v2ZHJcdTAwMWHh/MxXcfPKda7flsCqlzxx/WRRY6Y5yeJ/f/X9X+1RMcsifQ==Host REST API VAST localhost:80 Developer HTTP
VAST only listens on localhost addresses, accepts plain HTTP but still
checks authentication tokens.
Pass --mode=upstream
to start the REST API in server mode:
vast web server --mode=upstream
Mutual TLS Mode The mutual TLS mode is suitable when VAST sits upstream of a separate TLS
terminator that may be running on a different machine. In this scenario,
the connection between the terminator and VAST must again be encrypted
to avoid leaking the authentication token to the network.
Regular TLS requires only the server to present a certificate to prove his
identity. In mutual TLS mode, the client additionally needs to provide a
valid client certificate to the server. This ensures that the TLS terminator
cannot be impersonated or bypassed.
Typically self-signed certificates are used for that purpose, since both ends of
the connection are configured together and not exposed to the public internet.
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1dWVdcIsuyfu9f4erz2tTJKXLYb844oVxiXG5491kuXHUwMDA0xFImXHUwMDAxXHUwMDA1Pav/+4ksXHUwMDA3ipqYbXrfZu9uW6oqKyszvogvXCIjo/77bWPje/+lU/v+18b32rBSbrjVbnnw/Yf9/rnW7bntXHUwMDE2XHUwMDFlYt7vvfZTt+Kdedfvd3p//fvf5U7HXHUwMDE5XeVU2s23K2uNWrPW6vfw3P/D3zc2/uv97btXt1bpl1v1Rs27wDs0ulx1MDAxZOWMXHUwMDA1v860W969KVx1MDAwMcaEXHUwMDE2Rn6e4fZ28Ib9Wlx1MDAxNVx1MDAwZt+WXHUwMDFivdroiP3qe/r0XHUwMDA0mlx1MDAxN/SyVLi+bu7Ru4qpPjVH9711XHUwMDFijVxc/6Xx9mTlyt1T19erXr/bfqhcdTAwMTXcav/O3j3w/ed1vTaOweiqbvupfteq9Xpj17Q75Yrbf/Gegnx++zZcZn9tjL5cdTAwMTnibylqxOhcdTAwMWLvXHUwMDFhLkng9tvtRrtrb9/vllu9TrmLgz7qxE258lDHnrSqyedccj5cdTAwMWWO+e54V3Prd338XHUwMDE2XGJxiP8zXHUwMDFh+F7NXHUwMDFic3xcdTAwMTjBmJRq9KT2tp2DqidcdTAwMDD/8Y9Kq/o+Kq2nRmPUU3tgNyg0fsHxTWf5tPqQe3jZ21x1MDAwN/dAVaGk9uXjy+fTjElZudttXHUwMDBmvn9cdTAwMWX5+f6vUY+eOtXym+BQqSTVylx1MDAxMI1cdTAwMGbyebzhtlx1MDAxZYKdbbQrXHUwMDBmI1nzvv35Y1x1MDAxZSknjMZKudJEcMPV9FI+TG/Wtyr7dVKkstTU5cLl7WBzyVJeLffuaktcdTAwMTZzKYNirmPF/F9vXHUwMDEyOL+I+yH0KeHCj6tcdTAwMGaRlqBcdTAwMTRcdTAwMTNMfIlI71x1MDAxZF9ccjd3XG6Zmpvfr+2cdM+6r6nraJHu14Z9n0T/SGp2pUjRSlx1MDAxMsaXhVx1MDAxNO+xXCJAorSIxVxiM1x1MDAxY1x1MDAxOFx1MDAxOD49RpLHeVx1MDAxYyNcdTAwMDGNPi1C2v3+0lx1MDAxMcLAgSBGYFx1MDAxMYz8q1Krimo5jFx1MDAwZmZoXHUwMDA0PlhcdTAwMTBcdTAwMWVKo6lQgspcdTAwMTnQMZLPj0ln79/8jFx1MDAwN80y5W80ze1WP+e+1jx9MPbtXrnpNl7GpspcdTAwMTNMXHUwMDFjsnyt23Rb5X67u5Fu98asbK+GN/daI2OXbTbcupXh71x1MDAxNXycWndMvPsusqbPXHUwMDEz+u3O6GhcdTAwMDU7UsZcdTAwMDa7XHUwMDA30+j1dtetY79cdTAwMWH5mH7Ob5+MgljoKcK5QSo2PfRcdTAwMDbNbfesx1LweL952Lnbfcq2j09/XHUwMDAz80S/0jyJKFx1MDAwMlx1MDAxNmWeXHUwMDE0clx1MDAwN8mZ/lx1MDAxMutcdTAwMDS7e/nNl9TTQ/r19PFMbklcdTAwMDGV3T/WyepBzmMhXHUwMDAyXHUwMDFjlDBcdTAwMDBsaogkj/O6Wifi40grtU1U6lxicIRsXHUwMDEz48ZwKn1I+sfbpsvNXFw+wSrxsVx1MDAwYpZjlSao86BVXHUwMDFh9XB+eyRBx4ONSS00/j812G4uXHUwMDFlr6+a52z42EiVnlx1MDAwNldcdTAwMDdtdjBY/6BcdTAwMDBlxNFcXFx1MDAxMKGokFxufDLitSDiQ1x1MDAwNEvwnVwiuCHnOlxiQMpcdNXAmFmMXHUwMDFk0slcYkyyLsPX6l3nuVg6o2XTbG+Z7ddcdTAwMWQ9nMpoTWlcXEbPvaBxqTVcdTAwMWFup1x1MDAxNynyKNZxXCKvNTXons4g8fc4XG77otfo7pU7x9mLzNNe6bm/VPOyfHk3OsC+gEpHXHUwMDAzYcZIqqjmalx1MDAxMXHHc8riloZFXWlHaspcdTAwMTU3QuJcdTAwMGZcdTAwMTZheOJP+bBDRIBUTMxkiOYnafebXHUwMDA3hcd+5pyVOoebev9aslx1MDAwZctOx6ZcdTAwMTJZ2mPusSFerofbN89cdTAwMDPRqN635Fx1MDAxNt9aQru76Vx1MDAxYl04U6VB7ir1mNnkO8XKYXGp7G9pXHUwMDAwfbt/XHUwMDA0PDmIWJNcdTAwMDRMXHUwMDEzacRcZlx1MDAxZVLyXGauKz61o4UyTKApXHUwMDAykIEwXHUwMDA1SOpQJow0mnHtI1wiQbBCxVxiUp1cdTAwMGasjOJNgFx1MDAxMVx1MDAwNUJyIbiAMFqjXHUwMDAyfNgxbcjyXHUwMDAyfMuUR99Albv9LbdVdVv1cTP5vsZyMIVu91x1MDAxOGTlyfYyRXBCQCCXJoKCNlJcdTAwMWLfWfVyXHUwMDA3zzFcdTAwMGUxRoNWQjOCbkzIXHUwMDEw11rVUZfGn6Lc62+3m03X+lx1MDAxOWdtt9VcdTAwMGae4T3QpkXUXa1cXFxyXHUwMDFlxZb9x6zDMprwjm1vXFxcdTAwMTGO/rUxmmPvl89//+dH5NmpeLFcdFxc/83/c1x1MDAwZSMuUPJjiatcdTAwMDHFXHUwMDEwPXIkhpPUxGHnUFRy/cLt/utQbF+cNbaou7fmaoJcdTAwMWFcblx1MDAwZbNemdJEW+yt0KonR1i4Q9AtJ1xmNNdS+8Z9RGmNI1EkOKozoTm6kyHdIVx1MDAxNDFcdTAwMDTAjHxPv+5cdTAwMTjBSTWK8mm7Ws/vnrde71/l4Fxujt1cdTAwMGZD9qtVTKI4e65jlCxcdTAwMDONX5k1jFxuXHUwMDBlRk8vy5W7q8zOQ/38rFx1MDAwNlx1MDAwNXL1yNJbuSVHPFYgy9owR1x1MDAxMa1cdTAwMTjhXGZcdTAwMDXFXHUwMDE3lXiTZdBcdTAwMGXXhKJnRFxyzo1eRJbjXHUwMDAz9Vx1MDAwZaXokFx1MDAxMcVcdTAwMTTCRnCfozCKjWiHSCFcdTAwMTSgNpec6FCohFx1MDAxYWXZK4NoT20hQV5JSGUuXHUwMDEzumSbNHZsySYpdlLtJzSdM5qoWExcdTAwMGJcdTAwMTZcdTAwMWZYMVx1MDAxMigl1ExcdTAwMWbFPFx1MDAwMn7VLeZf1Fx1MDAwYm1cdTAwMTZ7hcxJ4+iWrD+mhVx1MDAwMzjiXGJqz5lcdTAwMGKENHFOXHUwMDFjXHSSXHUwMDExjcZcdTAwMWOMiieyXHUwMDBiXHUwMDA1OJF4MVx0nKA99JJcXFwiMM2MwylDU4p9kfi3P9b6XHUwMDA2asGlXHUwMDA2wWQ0sf2Dae/ol2E6fk7tJzyby8N0POfkaJokY2x6O331kE43nlx1MDAxZtv3T3snW1x1MDAwZqf6rNNcdTAwMTisPaZcciGOUEpcdTAwMTAuOFx1MDAwNeEjlW+YJsr6OcZGcVx1MDAwNLqvq7HTSGyZMlIgydeEg5JRmFbIjYnWhlx1MDAwYjzOXHUwMDA1XHUwMDE1QUyjiSaMK2Sjf0C9XHUwMDA2oE7Fz6r9hOdzWahcdTAwMDZKYlFNUIVgZ+T0XHUwMDAx4eF+cVx1MDAwYi77w86ezGVvRD9993hfXFx7VKNGZVx1MDAwMkfXXHUwMDEybEUhsFx1MDAwMIJunSNcYlpqdEOkZqsx1FxmXHUwMDFjpPk4uUJIg1x1MDAxM1x1MDAxY1x1MDAwNWpcdTAwMTRcdTAwMTFK0b1neFx1MDAxYVx1MDAwM1x1MDAwNWFM49WGMn+K31x1MDAxZkz/OkzHz6n9pELTuTRIq/gkUMpRwchcdTAwMTns9KlMlTOXvSrP1PKbm8Pt61x1MDAxN5o+WHdEo55Ef1pSXHUwMDA1XHUwMDAwikMwNCSlQ1x1MDAwMP1pzbmNWrKVIJoqx1x1MDAxOEBcdTAwMGZcdTAwMDBcYqFcblVHhJWmXHUwMDBlsiqJM1x1MDAwMoRcdTAwMWKgoVx1MDAwNVx1MDAxZiBcdTAwMDIph1x1MDAxMn+I9zrgOXZG7Sc0lzOiOS5cdTAwMWZIxK9cdTAwMDfZqLvWwGbYt5C8hL2m+UBGQ3KCwmqSg6bLW2XKRu+EiqbR6469uXODvi4taEJWTVRaUHJGUCzSTHxyKlx1MDAwZS9cdTAwMWFNTadHWj3/vHkxSNfTV+1rnlUv7Kh4e7/udtOwQG6EXHUwMDE09Fx1MDAwYnIjgIeRxmlcdTAwMTBpVFiDTfz7LX5TqDFpXHKJUlKDZoxr3/LyXHUwMDA06F30/DjyQc/H6Mag16jd9udcdTAwMDPe2DNcdTAwMDVR5vUjXHUwMDExZbFcdTAwMTlcdTAwMGU6YemSUcWZNjNsUUrOJVlPmGlDXHUwMDFjhJOWXHUwMDA0XHUwMDE0XHUwMDAyK+hugnZcdTAwMTg1xuY3XHUwMDE4sVjia/K6pXRAUlRsdlx1MDAwNUCTSJdcdTAwMTMtL0F/XHUwMDAxj1tp9SdDfpg/gU9A9Fx1MDAxMjOSfoucXHUwMDA34thgXGZ6XHUwMDE3YEBQm5HlW+p/z3mgxFGoslBn2fVcdTAwMTeJxiOkecayXHUwMDFl4jpVb2/fXHUwMDE3ZX43fXI4VM20+ypcdTAwMWbOXHUwMDBlYzolXHUwMDE4w4miSJZcZqdKQmSvXGLSU05cYifG4OzzUK9+XHUwMDFiQlx1MDAxZS/B9pOiXHUwMDBllzZPSKKOtWswdLH2NPqUjFx1MDAxOYFcZlx1MDAxZmycaEaCXHUwMDFm565LXHUwMDFkn5Fp7I5dpqZfKcvWLtJnp418ppnL5kvbz9Wrk924TI71SUG2S2VcdTAwMDI44/i4XHUwMDAyXHUwMDA1OLhUJpnjeevoXHUwMDBiob5cdTAwMTGL0f3b8lxyIVx1MDAxMEH3pWNcdTAwMTcl0XnTYFxmjUrjoIw7NjzLJDDgQEVEVN1IUFx1MDAxNnqR+nBcdTAwMDTGk3K2d8tuTuhxtUJcdTAwMDaD2s4jXFw8+kGdLz+fVvPZ1+5maVBo71x1MDAxNVx1MDAwN63haXnshEy7skuP26We7MnhZf21XFzayfhPOHOHhV6bqXu3/nh9dLVbybjViv+EI7N3/ZzdlndnXHUwMDA1IbImX6teXHUwMDFkkN8lalx1MDAxMNDoQVx1MDAwNfQ1yWSrU23E4VbuXHUwMDE5YVx1MDAwMkeIKDJaILZcdTAwMWbDXHUwMDFkVFKoxZXQUmhiJrdHKPovXG7HXUiDfN4nvPZDiXA4U1xcv60rXHUwMDFhwie1KFx1MDAxY0SiXduWSGKVXHUwMDFjz3WjRDuGXHUwMDBiZLbKJj1JpSY1x2ymXHUwMDAyWJQzido10DvKbFx1MDAwNFx1MDAwMMFPwVx1MDAwNljMxN5cdTAwMDF1sGdaIXchlPnS5d6aXHUwMDEzaCq1kGhcdTAwMDeFtO77pOaUdrRcdTAwMDTOgSmBvZNcdTAwMTDsXHUwMDFkJUZcdTAwMTlcdTAwMWKe4FxciYmzgdNcdTAwMDfIcpXdcEdcdTAwMTW6XHUwMDAy42OnXHUwMDFjobjde4KGXHUwMDA2XHUwMDFmV09sXHUwMDBlXHUwMDFjaXNcdTAwMGVx7Fx1MDAxOOeBXHUwMDA1YUrwZlx1MDAxMtBv4spoijIwRXNGKqaxXHUwMDBm6KRcYqPHJFx1MDAwZudcdTAwMWSVMVNcdTAwMWFdXHUwMDE4m4A7RWsoVkxwq75RsMZaU+hdYktKKdBcdTAwMTJNK0zRXHUwMDFhQ3aMtllILtXYPKRcdTAwMTA0KG5CKW6MsplIMHFitXGINzpEXHUwMDEzfJzx3qXwWZHCgUSubrTA+06UXHUwMDEzNFwiduo4tbKCdm2sOeWgaOODXCI68Fx1MDAwZs7zXHUwMDE0hFx1MDAwNGfTXHUwMDAzXHUwMDEyk1aMx5/XOFx1MDAxYZ9cdTAwMTHpniGerphcdTAwMDZkSqI+kVx1MDAxYU2gZabj7WlcdTAwMDdshlx1MDAxMM4tXHUwMDBlIJqyibMhrNxj/5BcdTAwMTcp8G30flx1MDAxZjz7iFx1MDAwNNkmMmV0XCLUxOZwXHUwMDAyXHTqXHUwMDFlVHzCbkbFZ1x1MDAxYVx1MDAxN2XvOHbPoNyhW0KspZ3YaJzenYq0JeTgXCLgXHUwMDEy8iFcdTAwMDTqXGLkitOvsySz/HV1ZJFcdTAwMTKjgkDNI3DaRDBcdTAwMWRcdTAwMDKYQ1x1MDAxOGpcdTAwMGKJoERfdrF1ltvb21xi0lx1MDAwNo4gXHUwMDFjlShcIlxu/MM94mzGwXmQSOtcdTAwMDSl1lFcckVwJXI+NKV60lwiy29K2ebf/7PAPp1Qj1acXFxcdTAwMWNcdTAwMTfTpcLEYVx1MDAxNOVcdTAwMTKsYEyf3GDEyf1Z43Bn0zTPXG6mXHUwMDAyT+ZJrHtqMVx1MDAxYXFcdTAwMWJrRLvIqSWUQYiaZe59i1tJgVxiXFz61kM/Qkk2aUpwQqJjSVx1MDAwYoFgJX6LmUF6R1LiXHUwMDBiXHUwMDAzk7FvXHUwMDEzwr7lp/7d360+TkirXHUwMDE3XHUwMDE5/lx1MDAxNePXLGXlJTFcdTAwMDA81qO5oClIbNjDS1dGfudcdTAwMWKgSdjsXrDB62H5MpXpn5WO6ntcdTAwMDelZv9ozbFpZCh/8Ct2okJkQZAgXHUwMDFhkf7ZLEf961x1MDAwYvJ8XHUwMDFkzM53c/m/W5tnXHUwMDA3M2FsRUsso84kwmtCPThcdTAwMTmbPYDeJ1x1MDAxMulcdTAwMTlcdTAwMThqvn7EO/niy/Do4qhxWnC38ieQWXOIUYDAiib4Llpquk9UnVx1MDAxZH9cdTAwMGY/cEUpXHUwMDAzY92mhXC1YCmDw1x1MDAxZLo7bD2KYjqz38vcPfc6xfvzZZYymFx1MDAwNbRzmVx1MDAwZk7id43ZgkqgZlx1MDAxMO3k4VhX0UZvPrg5mi1cdTAwMTZcdTAwMWLXrGJoLSzcOmL/c4TJ8KpcdTAwMTZAXFxK+T/SZOSPc39bivVeIG255KzpVqt+xVx1MDAxZciMmaCQQ2XcXHUwMDAyXZ1cdTAwMGJ2/u2tQdhcdJtcdTAwMTZHZzEp5cyluWieXFy4KV0+NuJ4hzQ79XXHnY3P2orBmnFcdTAwMDDBSHD9ninHgERcdTAwMWRcdTAwMGZSq0UrV8WWXHUwMDEziVxmdYRcdTAwMTCpjC3rXHUwMDA2K1x1MDAwN2SSrem2+tm2uN2t7mbciruXXHUwMDFmZFx1MDAwZjMxtd7mXGYjLFxudzp16lx1MDAxYnG8//5CPzVcdTAwMTLqXHUwMDE0xi5ZNUf0d2dcdTAwMDGWyJL2gEikTNLMsFuTZ0yhXrwtXHUwMDFjXHUwMDBmUjnunpvdevEyLiVnfdagKVx1MDAwNGtj++u9LdOYUlx1MDAxNsFcdTAwMTR1iChyw1xyYWxB/2tBnmgq91x1MDAxN/dpQa9KOuuqq1op+1BoT8VcdTAwMTN/JDW7+ko9K+efQsZGXHUwMDE2KVx1MDAxMYLKmeo0Jo/zmlx1MDAxYUJgJEhAfVx1MDAxOUfLJaBRudjhXGJcIudS+Fe2//n8s9JwsVN/o+ChSblFo9KvfSlcdTAwMDedoOyDXHUwMDA2K6q7ifCLTSNFpqniXHUwMDAwyJCeSaaYnj5+mKyR1nRjXHUwMDA0XHUwMDE1lDlMXG6q+Fik51xyiotcdTAwMTVcdTAwMTWOhaLgeE9Ub1x1MDAxY1xiWMpvwsiMXGJ7XGJcdTAwMDZSXHUwMDEyXHUwMDE5U0JgXHUwMDE1eaJzYXDKPNFkqd/wpWT6vnvLv1SO4qCZ1IYznFx1MDAwM5gzKXSW6lxcXHUwMDEy4UCIXHUwMDAyriRwXHUwMDAxXCLUJ+lILYi0mUaAc1x1MDAwN+HyXFzLLsLV77pcdTAwMDE6utTsKc1cdTAwMWRcdTAwMDb2zVx1MDAxYlJcdTAwMWFtw5zLuzqFXHUwMDAzNKmBWIiEXHUwMDFi+Ob/OStcdTAwMDdhlMfqQC+1XGL4LK8yeK5cXOSrd6Xtrmzs3Fx1MDAxZD3unj20yql1JyFEojcuKKGaXHUwMDE5QXiwcpKWjiFgk1x1MDAwM4BzTVx1MDAxNtu8XHUwMDFklzpcdTAwMWG1fyXCXHUwMDE5XHUwMDA3MIRcdTAwMWLFf/tcdTAwMTWV6f3lZ/tcdTAwMWWnOE5cdTAwMTLnLK9s0fKzN3NSXHUwMDBlZmJjzqjRjWJkXHUwMDA2xpHZ6Vd3+F72ZLsxKLTb9VZmuzNXzFl8Idq4Mlx1MDAwZbUvsWFUXHUwMDAz+JNp3ndWo+qk1OZtUaZcdTAwMTRcdTAwMGZ2bbbqnLFLLTyuXHUwMDEzI/SNd8Of3PPxvlx1MDAxMbR1XHUwMDEyQTFLaGwhQuJ7k8fvluZcdTAwMWOExHJ3VcfNpv2kwlx1MDAxM7kk26lVfCBcdTAwMWLvw5iQM1x1MDAxNNo121x1MDAxN+yWtivnXHUwMDE1lk5x8ygrr0dy7d1cdTAwMDckhOFcdTAwMTWkeK9hXHUwMDExzMpcYlx1MDAxM+kvpfLuwFx1MDAxYlSjRi+4Nrq4hZxcdTAwMGarcznw6Xz+LFx1MDAxN21cdTAwMWX12MmrN49vXZnPNtos/1g8XHUwMDE5hTTN+DfuTsLT9tVlm16eXHUwMDE0T1qvt+e5TDZLXHUwMDBl5c66U1FcdTAwMTBcdTAwMWHJptboa6H3QHnIOFx1MDAxMlx1MDAwN1x1MDAxNLFFkCX6YybYteWUrqZAXHUwMDFkbJtcdTAwMWHDvFx1MDAxMnBRS7eBflxiXHUwMDFlXspcdTAwMTWAyliJmZZy/9+ax1x1MDAxNZaUjp9O73B4Jmc0j1x0ZJfHXHUwMDA3uFx1MDAxOZM2UX+W/LxcdTAwMTdS2Cnvd++GZFhRmb1qsZRZe7arkZpwpInce1x1MDAxM4xvXHUwMDBi1sdObYmH0cvXXFxpQ1l8ut5CbJdELFx1MDAxN4Xia7bwjN2z8VvBNS641bg/3ro/NGJ/62TngKR22/w1p6OCW1x1MDAxNPWttFx1MDAxYp5cdTAwMTTh3jtiwrEtylx1MDAxZCVcdTAwMDRcdTAwMTVMXHUwMDAxaIliXHUwMDFiXCJcdTAwMDf/XHUwMDEwXHUwMDFhTeLOX4gm+6vMXHUwMDA1o+xAuFx1MDAwMrR3UyuB5HldV5asXHUwMDE5c4imXHUwMDAyIYxcdTAwMThcdTAwMTM0qFx1MDAwNX4pY6ZUKEO49lx1MDAwNVx1MDAxZX5Fikeidlx1MDAxZlx1MDAxM7T51nP/XHUwMDEw8lx1MDAxONwmJ3b4X6dcdTAwMWFRhpsjx5thkfqkuDnMXeVqj5lOti5r7TZcZo9K65/YXHUwMDExeum5SEDsXCJhYFx1MDAxZLFcdTAwMTRcdTAwMTbO60A2wTlarcVyslx1MDAxNszrcDubasCbjb1cdTAwMTJcXO1VXHUwMDBmXHUwMDBmtvK3XHUwMDA1XHUwMDFkXHLYWfI6JKlcdTAwMGa2XHUwMDA2cr8hXlx1MDAxYq1qs9vNXHUwMDFmXHUwMDE3n36ZXHUwMDFlmMvg0YQtY1RcdKTgTM9QcC95oNdcdTAwMTczVFx1MDAwNyNDgq8mkzGqMGY4tUPbvb62Xs2qzdz6XHUwMDE4XCK7xWrjfY/Vl+Z0TNDzUVvBNt56mYi4eFdT+LRkRCxWXHUwMDEzo2eogXM8rLCivkmd7+1TcEu19HH1Ib3usSNkcVx1MDAwZVxiXHUwMDA2XHUwMDFhpFx1MDAxMLZcdTAwMTTBOPikII5cdTAwMDJNNVx1MDAxMUoxxVx1MDAxNtxKXHUwMDFkY8BcIlx1MDAxY00ukPtyW5iHaGJhXHUwMDEwXHUwMDAyJvrHXG59ry9L7PiNXHUwMDAzRSssXHUwMDE34z87XHUwMDE1mrTR5d/8P2dGKihcdTAwMTJvXHUwMDFjkUqC0TOUlj6hzy/Xe7mqebk86Fx1MDAxNtz6sO3eXHUwMDFmr787XGLCodxWXHUwMDA0UZRcdTAwMTJcdTAwMTNIOFx1MDAxMGBcdTAwMWPCpbAgRYwl1KqqSaXmTiEmzFx1MDAxNubTNlx1MDAwNmc3XHUwMDFjmFxiXHUwMDFiSpV0mPZetycpXHUwMDA36kuX+1ht0cJcdTAwMTBbvu9cdTAwMGZ0f3nGXHUwMDEyXHUwMDA1R3CK1o5cdTAwMWFbPkxcdTAwMDXrnkiFyLLVloi0TGxi1Vx1MDAxM8psqVx1MDAxNGXzupjUfHxVVVx1MDAwYodr+9YhdFx1MDAwMZHuTqyLXHUwMDE3L272Y4hDsXO2VpHXtylaY1x1MDAwZTJpxbk0+MuoWr13VIEjrVTaQka2XHUwMDE26LJcdTAwMTZ8bVxuXFyc7mKIXHUwMDBl8L9wd5LqovRqt8RSJpu6Tm+fZ1x1MDAwZu/LZyq35lx1MDAxY1x1MDAwM6XA0bb4PdH2tUAqsPlcdTAwMWO811x1MDAxNXDk2ZyAXHUwMDAxiI9mT6O5YlOlXCI0XHUwMDE1XHUwMDBmaSaK2lPhlKy+1O/nNVx1MDAxMd7sjTvc7z7vlOWNymTrj7lh7/ni/pd5s1HOxPSJWJV209aBTXInVlG9OzG8XHUwMDE16NO3j5HzRu17udPJ9W2y1sfMfn92a4Ot6MpAtjjQt/eJtuireVx1MDAwMvHz28//XHUwMDAxSUyBXHUwMDBlIn0=Terminator Host VAST Host VAST User auth tokens REST API TLS terminator 0.0.0.0:443 client certificate validate HTTPS HTTPS auth token compare token
Pass --mode=mtls
to start the REST API in mutual TLS mode:
vast web server --mode=mtls
Usage Examples Now that you know how we put the REST API together, let's look at some
end-to-end examples.
See what's inside VAST One straightforward example is checking the number of records in VAST:
curl "https://vast.example.org:42001/api/v0/status?verbosity=detailed" \
| jq .index.statistics
{
"events" : {
"total" : 8462
},
"layouts" : {
"zeek.conn" : {
"count" : 8462 ,
"percentage" : 100
}
}
}
In the upcoming v3.0 release, the statistics under the key .index.statistics
will move to .catalog
. This change is already merged into the master branch.
Consult the status key reference for details.
The /status
endpoint can also be used as a HTTP health check in
docker-compose
:
version : '3.4'
services :
web :
image : tenzir/vast
environment :
- "VAST_START__COMMANDS=web server --mode=dev"
ports :
- "42001:42001"
healthcheck :
test : curl --fail http://localhost:42001/status || exit 1
interval : 60s
retries : 5
start_period : 20s
timeout : 10s
Run a query The other initial endpoints can be used to get data out of VAST. For example, to
get up to two zeek.conn
events which connect to the subnet 192.168.0.0/16
, using
the VAST query expression net.src.ip in 192.168.0.0/16
:
curl "http://127.0.0.1:42001/api/v0/export?limit=2&expression=net.src.ip%20in%20192.168.0.0%2f16"
{
"version" : "v2.4.0-457-gb35c25d88a" ,
"num_events" : 2 ,
"events" : [
{
"ts" : "2009-11-18T08:00:21.486539" ,
"uid" : "Pii6cUUq1v4" ,
"id.orig_h" : "192.168.1.102" ,
"id.orig_p" : 68 ,
"id.resp_h" : "192.168.1.1" ,
"id.resp_p" : 67 ,
"proto" : "udp" ,
"service" : null ,
"duration" : "163.82ms" ,
"orig_bytes" : 301 ,
"resp_bytes" : 300 ,
"conn_state" : "SF" ,
"local_orig" : null ,
"missed_bytes" : 0 ,
"history" : "Dd" ,
"orig_pkts" : 1 ,
"orig_ip_bytes" : 329 ,
"resp_pkts" : 1 ,
"resp_ip_bytes" : 328 ,
"tunnel_parents" : []
},
{
"ts" : "2009-11-18T08:08:00.237253" ,
"uid" : "nkCxlvNN8pi" ,
"id.orig_h" : "192.168.1.103" ,
"id.orig_p" : 137 ,
"id.resp_h" : "192.168.1.255" ,
"id.resp_p" : 137 ,
"proto" : "udp" ,
"service" : "dns" ,
"duration" : "3.78s" ,
"orig_bytes" : 350 ,
"resp_bytes" : 0 ,
"conn_state" : "S0" ,
"local_orig" : null ,
"missed_bytes" : 0 ,
"history" : "D" ,
"orig_pkts" : 7 ,
"orig_ip_bytes" : 546 ,
"resp_pkts" : 0 ,
"resp_ip_bytes" : 0 ,
"tunnel_parents" : []
}
]
}
Note that when using curl
, all request parameters need to be properly
urlencoded. This can be cumbersome for the expression
and pipeline
parameters, so we also provide an /export
POST endpoint that accepts
parameters in the JSON body. The next example shows how to use POST requests
from curl. It also uses the /query
endpoint instead of /export
to get
results iteratively instead of a one-shot result. The cost for this is having to
make two API calls instead of one:
curl -XPOST -H "Content-Type: application/json" -d '{"expression": "udp"}' http://127.0.0.1:42001/api/v0/query/new
{ "id" : "31cd0f6c-915f-448e-b64a-b5ab7aae2474" }
curl http://127.0.0.1:42001/api/v0/query/31cd0f6c-915f-448e-b64a-b5ab7aae2474/next?n= 2 | jq
{
"position" : 0 ,
"events" : [
{
"ts" : "2009-11-18T08:00:21.486539" ,
"uid" : "Pii6cUUq1v4" ,
"id.orig_h" : "192.168.1.102" ,
"id.orig_p" : 68 ,
"id.resp_h" : "192.168.1.1" ,
"id.resp_p" : 67 ,
"proto" : "udp" ,
"service" : null ,
"duration" : "163.82ms" ,
"orig_bytes" : 301 ,
"resp_bytes" : 300 ,
"conn_state" : "SF" ,
"local_orig" : null ,
"missed_bytes" : 0 ,
"history" : "Dd" ,
"orig_pkts" : 1 ,
"orig_ip_bytes" : 329 ,
"resp_pkts" : 1 ,
"resp_ip_bytes" : 328 ,
"tunnel_parents" : []
},
{
"ts" : "2009-11-18T08:08:00.237253" ,
"uid" : "nkCxlvNN8pi" ,
"id.orig_h" : "192.168.1.103" ,
"id.orig_p" : 137 ,
"id.resp_h" : "192.168.1.255" ,
"id.resp_p" : 137 ,
"proto" : "udp" ,
"service" : "dns" ,
"duration" : "3.78s" ,
"orig_bytes" : 350 ,
"resp_bytes" : 0 ,
"conn_state" : "S0" ,
"local_orig" : null ,
"missed_bytes" : 0 ,
"history" : "D" ,
"orig_pkts" : 7 ,
"orig_ip_bytes" : 546 ,
"resp_pkts" : 0 ,
"resp_ip_bytes" : 0 ,
"tunnel_parents" : []
}
]
}
Please note that we consider the API version v0
experimental, and we make no
stability guarantees at the moment.
As always, if you have any question on usage, swing by our community
chat . Missing routes? Let us know so that we know
what to prioritize. Now happy curling! 🥌