feat(website): migrates nav data format and updates docs pages (#1049)

* migrates nav data format and updates docs pages

* removes sidebar_title from content files

* updates api docs to work with new format
This commit is contained in:
Bryce Kalow authored and GitHub committed 2021-04-05 13:04:57 -04:00
1 parent d3b72899f1
commit bd8cc5464e
72 files changed
+613 -634

No files matched your search

+5 -8
View File
@@ -1,5 +1,4 @@
import { useState, useRef } from 'react'
import { useRouter } from 'next/router'
import Link from 'next/link'
import OperationObject from './partials/operation-object'
import Head from 'next/head'
@@ -13,12 +12,11 @@ import useOnClickOutside from 'lib/hooks/use-on-click-outside'
function OpenApiPage({
info,
operationCategory,
sidenavOrder,
navData,
productName,
productSlug,
pathFromRoot,
currentPath,
}) {
const router = useRouter()
const operationsRef = useRef(null)
const [expandedOperations, setExpandedOperations] = useState([])
useOnClickOutside(operationsRef, () => setExpandedOperations([]))
@@ -41,11 +39,10 @@ function OpenApiPage({
/>
<DocsSidenav
Link={Link}
currentPage={router.asPath}
category={pathFromRoot}
currentPath={currentPath}
baseRoute={'api-docs'}
disableFilter={true}
order={sidenavOrder}
data={[]}
navData={navData}
/>
<Content
product={productSlug}
@@ -8,9 +8,12 @@ export function getPropsForPage(schema, params) {
const serviceIds = getServiceIds(operationObjects)
// info and sidenav data are needed on all pages
const info = schema.info
const sidenavOrder = getSidenavData(serviceIds)
const navData = getSidenavData(serviceIds)
// If there's no "page" param, then this is the landing page
const isLanding = !params || !params.page || params.page.length == 0
const currentPath = params && params.page ? params.page.join('/') : ''
// Otherwise, we should have an operationCategory that matches the slug-ified ID from the URL path
const operationCategory = isLanding
? false
@@ -24,7 +27,8 @@ export function getPropsForPage(schema, params) {
)
return { name, slug, operations }
})[0]
return { info, sidenavOrder, operationCategory }
return { info, navData, operationCategory, currentPath }
}
/* Given a schema, return all the paths we'll render for our openapi generated docs */
@@ -44,7 +48,7 @@ to render a flat list of services */
function getSidenavData(serviceIds) {
const order = serviceIds.map((serviceId) => {
return {
sidebar_title: capitalCase(serviceId),
title: capitalCase(serviceId),
indexData: true,
path: getServiceSlug(serviceId),
}
-1
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: API
sidebar_title: API
description: |-
Boundary's HTTP API standards
---
+32 -34
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: CLI
sidebar_title: CLI
description: |-
Boundary's CLI behavior
---
@@ -46,9 +45,9 @@ On Windows, the Windows credential store (`wincred`) is used.
Available keyring types:
* `wincred` (default)
* `pass`
* `none`
- `wincred` (default)
- `pass`
- `none`
### macOS
@@ -57,9 +56,9 @@ to keep the Boundary binary statically linked, which we prefer.)
Available keyring types:
* `keychain` (default)
* `pass`
* `none`
- `keychain` (default)
- `pass`
- `none`
### Other platforms
@@ -70,21 +69,20 @@ available (via `gnome-keyring`, `kwallet`, or others) it can be used.
Available keyring types:
* `pass` (default)
* `secret-service`
* `none`
- `pass` (default)
- `secret-service`
- `none`
## Mapping to Collections and Sub-Types
Generally speaking, Boundary's CLI commands map to the collections they operate
on. For instance, when operating on roles, the command will be `boundary roles
...`.
on. For instance, when operating on roles, the command will be `boundary roles ...`.
As a result, the patterns for reading, deleting, and listing are predictable:
* `boundary <collection> read`
* `boundary <collection> delete`
* `boundary <collection> list`
- `boundary <collection> read`
- `boundary <collection> delete`
- `boundary <collection> list`
`read` and `delete` will always operate on a particular resource identifier, so
will always take in an `-id` parameter. `list` operates on collections so will
@@ -97,15 +95,15 @@ operated on through an implementation. As an example, a role is not an abstract
type, and does not have various implementations of it. As a result, a role can
be operated on directly:
* `boundary roles create`
* `boundary roles update`.
- `boundary roles create`
- `boundary roles update`.
However, a target can be one of many types of targets, and a concrete
implementation of a target is a `tcp` type of target. Therefore an extra
parameter is required when creating or updating a target:
* `boundary targets tcp create`
* `boundary targets tcp update`
- `boundary targets tcp create`
- `boundary targets tcp update`
This allows the CLI to perform proper presentation and validation of parameters
and functions for the given type.
@@ -127,12 +125,12 @@ definition, but are otherwise order independent.
For instance, the following are equivalent:
* `boundary roles create -scope-id global -name foo`
* `boundary roles create -name foo -scope-id global`
- `boundary roles create -scope-id global -name foo`
- `boundary roles create -name foo -scope-id global`
But the following results in an error:
* `boundary roles -name foo -scope-id global create`
- `boundary roles -name foo -scope-id global create`
This applies to `-h` as well!
@@ -163,20 +161,20 @@ connection options, which control TLS and other settings for the connection.
Every command that results in an API call contains a set of flags that control
client options. Some notable options:
* `output-curl-string`: This will format the command that would have been run as
a string using `curl` that can be used directly on the command line. This is a
great way to discover how CLI functions map to API calls.
- `output-curl-string`: This will format the command that would have been run as
a string using `curl` that can be used directly on the command line. This is a
great way to discover how CLI functions map to API calls.
* `token-name`: When the CLI authenticates, it stores the token in the
platform-specific OS credential store. By using the `token-name` parameter, more
than one token can be stored at a time. Specifying this parameter at
authentication time uses the given name as part of the key for storage;
specifying it for any other command will cause the corresponding token to be
used for that call.
- `token-name`: When the CLI authenticates, it stores the token in the
platform-specific OS credential store. By using the `token-name` parameter, more
than one token can be stored at a time. Specifying this parameter at
authentication time uses the given name as part of the key for storage;
specifying it for any other command will cause the corresponding token to be
used for that call.
* `recovery-config`: This is used to specify a configuration file that contains
the information necessary to access a KMS configured to be used for the recovery
workflow within a Boundary controller.
- `recovery-config`: This is used to specify a configuration file that contains
the information necessary to access a KMS configured to be used for the recovery
workflow within a Boundary controller.
### Output Options
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Boundary Desktop
sidebar_title: Desktop
description: |-
Get up and running with Boundary Desktop
---
+4 -5
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Go SDK
sidebar_title: Go SDK
description: |-
Boundary's Go SDK
---
@@ -21,7 +20,7 @@ authenticating to Boundary:
1. Via an auth method
1. Via the recovery KMS workflow
We'll cover how to authenticate to Boundary via both of these workflows.
We'll cover how to authenticate to Boundary via both of these workflows.
### Auth Method
@@ -33,7 +32,7 @@ For this example, we're going to use the Password auth method. This example
assumes there's already a valid user and an associated account in Boundary
against which the client can authenticate. To simplify this example, we're
assuming you're running a Boundary instance in dev mode, where the default auth
method, login name, and password are pre-configured.
method, login name, and password are pre-configured.
First, we need to create a client from the Boundary API and set the address to reach Boundary:
@@ -71,7 +70,7 @@ am := authmethods.NewClient(client)
~> This creates a shallow copy of the base client. Modifications made to the client via `am.ApiClient()` will not be reflected in the base client.
The last thing you'll need is the ID of the auth method in Boundary. You can get this on the CLI
The last thing you'll need is the ID of the auth method in Boundary. You can get this on the CLI
with:
```bash
@@ -170,4 +169,4 @@ client.SetRecoveryKmsWrapper(w)
The client will now use the recovery KMS wrapper for all authenticated calls
(even if you have previously set a token). You can remove it by instantiating a
new client, or by passing `nil` into `SetRecoveryKmsWrapper`.
new client, or by passing `nil` into `SetRecoveryKmsWrapper`.
+1 -3
View File
@@ -1,14 +1,12 @@
---
layout: docs
page_title: API/Clients
sidebar_title: API/Clients
description: |-
An introduction to Boundary's API and clients.
---
# Clients
Boundary is a purely-API-driven system. This section contains information
describing its API norms and the clients that HashiCorp provide (apart from the
web UI), which include a CLI and a Go SDK.
web UI), which include a CLI and a Go SDK.
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Common Workflows
sidebar_title: Common Workflows
description: Common workflows for Boundary
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Manage Roles and Permissions
sidebar_title: Manage Roles
description: How to manage Roles and Permissions
---
@@ -22,7 +21,6 @@ Roles can live in the global, org, or project scopes. In this example we will cr
<Tabs>
<Tab heading="CLI">
```bash
$ boundary roles create -scope-id o_1234567890 -name my_role -description "My first role"
@@ -45,7 +43,6 @@ Role information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to an org, then to roles.
1. Choose the **New** button.
1. Fill the role details.
@@ -61,7 +58,6 @@ Role information:
</Tab>
<Tab heading="Terraform">
```hcl
resource "boundary_scope" "role" {
name = "my_role"
@@ -73,7 +69,6 @@ resource "boundary_scope" "role" {
</Tab>
</Tabs>
# Assign Principals to a Role
Users and groups are granted permissions to perform actions by assigning them to a role.
@@ -81,7 +76,6 @@ Users and groups are granted permissions to perform actions by assigning them to
<Tabs>
<Tab heading="CLI">
```bash
boundary roles add-principals -id $role_id -principal $principal_id
@@ -109,7 +103,6 @@ Role information:
</Tab>
<Tab heading="Admin Console">
1. From the role edit form, navigate to the **Principals** tab.
1. Choose **Add Principals** from the **Manage** dropdown.
1. Select one or more users and groups to associate with the role.
@@ -125,7 +118,6 @@ Role information:
</Tab>
<Tab heading="Terraform">
```hcl
resource "boundary_scope" "role" {
name = "my_role"
@@ -138,7 +130,6 @@ resource "boundary_scope" "role" {
</Tab>
</Tabs>
# Assign Grants to a Role
Grants describe the actions that the principals should be allowed to perform. For more information on how to format grants see [Permission Grant Formats](https://boundaryproject.io/docs/concepts/security/permissions#permission-grant-formats).
@@ -147,7 +138,6 @@ In this example we give a role read and list permissions to all resources.
<Tabs>
<Tab heading="CLI">
```bash
boundary roles add-grants -id $role_id -grant 'id=*;type=*;actions=read,list'
@@ -179,7 +169,6 @@ Role information:
</Tab>
<Tab heading="Admin Console">
1. From the role edit form, navigate to the **Grants** tab.
1. Fill a new grant string.
1. Choose **Add**.
@@ -205,10 +194,8 @@ Role information:
</Tab>
<Tab heading="Terraform">
```hcl
resource "boundary_scope" "role" {
name = "my_role"
@@ -221,4 +208,3 @@ resource "boundary_scope" "role" {
</Tab>
</Tabs>
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Manage Scopes
sidebar_title: Manage Scopes
description: How to manage Boundary scopes
---
@@ -42,7 +41,6 @@ scope.
<Tabs>
<Tab heading="CLI">
```bash
$ boundary scopes create -scope-id global -name my_org -description 'My first org'
@@ -63,7 +61,6 @@ Scope information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to the Boundary landing page.
1. Choose the **New** button.
1. Fill org details.
@@ -79,7 +76,6 @@ Scope information:
</Tab>
<Tab heading="Terraform">
```hcl
resource "boundary_scope" "org" {
scope_id = "global"
@@ -93,7 +89,6 @@ resource "boundary_scope" "org" {
</Tab>
</Tabs>
## Create a Project
Next, we're going to add a project scope to our org.
@@ -101,7 +96,6 @@ Next, we're going to add a project scope to our org.
<Tabs>
<Tab heading="CLI">
```bash
$ boundary scopes create -scope-id o_0MkQUfE9jA -name my_project -description 'My first project'
@@ -123,7 +117,6 @@ Scope information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to an org, which leads to an overview of projects within that org.
1. Choose the **New** button.
1. Fill project details.
@@ -140,7 +133,6 @@ Scope information:
</Tab>
<Tab heading="Terraform">
```hcl
resource "boundary_scope" "project" {
name = "my_project"
@@ -155,4 +147,3 @@ resource "boundary_scope" "project" {
</Tab>
</Tabs>
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Manage Sessions
sidebar_title: Manage Sessions
description: How to manage Boundary sessions
---
@@ -36,7 +35,6 @@ For more information regarding different ways to connect to a target behind Boun
<Tabs>
<Tab heading="CLI">
View all sessions which Boundary has for the project `p_1234567890` by listing them.
```bash
@@ -90,7 +88,6 @@ Session information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to a project, then to sessions.
1. View the session information provided there.
@@ -103,14 +100,12 @@ Session information:
</Tab>
</Tabs>
## Cancel a Session
<Tabs>
<Tab heading="CLI">
To send a request to Boundary to cancel a session:
```bash
$ boundary sessions cancel -id s_h7vBIhH5SZ
@@ -153,7 +148,6 @@ Boundary then cancels the session and move it into a "Terminated" state.
</Tab>
<Tab heading="Admin Console">
1. Navigate to a project, then to sessions.
1. Choose a session and its **Cancel** button.
1. View the session status update from _canceling_ to _terminated_.
@@ -167,7 +161,6 @@ Boundary then cancels the session and move it into a "Terminated" state.
</Tab>
</Tabs>
## Advanced Session Establishment
Above, we discussed connecting to a target using the `boundary connect` command. In addition to this we can create a session to a target and connect to that session in separate steps. This is accomplished using the `boundary targets authorize-session` command, which generates an authorization token that a user can use to start a session via `boundary connect -authz-token` at their own convenience.
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Manage Targets
sidebar_title: Manage Targets
description: How to manage Boundary targets
---
@@ -27,7 +26,6 @@ For this example, we're going to create a target to access postgres on `localhos
<Tabs>
<Tab heading="CLI">
```bash
boundary hosts create static -name postgres -description "Postgres host" -address "127.0.0.1" -host-catalog-id "hcst_1234567890"
@@ -54,7 +52,6 @@ Host information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to a host catalog (Projects > Project > Host Catalogs > Host Catalog).
1. Choose **New Host** from the **Manage** dropdown.
1. Fill host details.
@@ -70,7 +67,6 @@ Host information:
</Tab>
<Tab heading="Terraform">
To define this same host using our Terraform provider:
```hcl
@@ -86,7 +82,6 @@ resource "boundary_host" "postgres" {
</Tab>
</Tabs>
## Define a Host Set
Host sets allow us to group hosts providing equivalient services together. A target works off of host sets, so even though we are only defining one host in this example, we're going to create a host set of one host.
@@ -94,7 +89,6 @@ Host sets allow us to group hosts providing equivalient services together. A tar
<Tabs>
<Tab heading="CLI">
```bash
boundary host-sets create static -name "postgres" -description "Postgres host set" -host-catalog-id hcst_1234567890
@@ -118,7 +112,6 @@ Host Set information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to a host catalog, then to the **Host Sets** tab.
1. Choose **Create Host Set** from the **Manage** dropdown.
1. Fill host set details.
@@ -148,7 +141,6 @@ Then associate the host set with a host:
</Tab>
<Tab heading="Terraform">
To define this host set in Terraform:
```hcl
@@ -166,13 +158,11 @@ resource "boundary_host_set" "postgres" {
</Tab>
</Tabs>
## Define a Target
<Tabs>
<Tab heading="CLI">
```bash
boundary targets create tcp -name 'postgres' -description 'Postgres target' -default-port 5432 -scope-id p_1234567890 -session-connection-limit '-1'
@@ -199,7 +189,6 @@ Target information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to a project, then to targets.
1. Choose the **New** button.
1. Fill the target details.
@@ -229,7 +218,6 @@ Then associate the host set with a host:
</Tab>
<Tab heading="Terraform">
To define this target in Terraform:
```hcl
@@ -250,4 +238,3 @@ resource "boundary_target" "postgres" {
</Tab>
</Tabs>
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Manage Users and Groups
sidebar_title: Manage Users and Groups
description: How to manage Boundary users and groups
---
@@ -48,7 +47,6 @@ Create a password-type auth method in the generated default org:
<Tabs>
<Tab heading="CLI">
```bash
$ boundary auth-methods create password -scope-id o_1234567890 -name org_auth_method -description 'Org auth method'
@@ -75,7 +73,6 @@ Auth Method information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to an org, then to auth methods.
1. Choose the **New** button.
1. Fill in the auth method details.
@@ -91,7 +88,6 @@ Auth Method information:
</Tab>
<Tab heading="Terraform">
```hcl
resource "boundary_auth_method" "password" {
name = "org_auth_method"
@@ -104,7 +100,6 @@ resource "boundary_auth_method" "password" {
</Tab>
</Tabs>
## Create Account
Create an account for the org-scoped auth method. Note that by default, user
@@ -115,7 +110,6 @@ the attributes for the auth method, if desired.)
<Tabs>
<Tab heading="CLI">
```bash
boundary accounts create password -auth-method-id ampw_PbE6nNT72a -login-name 'myuser' -password supersecure -name my_account -description 'My password account'
@@ -142,7 +136,6 @@ Account information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to orgs > auth methods > auth method, then to the **Accounts** tab.
1. Choose the **New** button.
1. Fill the account details.
@@ -158,7 +151,6 @@ Account information:
</Tab>
<Tab heading="Terraform">
```hcl
resource "boundary_account" "my_user" {
name = "myuser"
@@ -173,7 +165,6 @@ resource "boundary_account" "my_user" {
</Tab>
</Tabs>
## Create a User
Next, create a user at the org scope.
@@ -181,7 +172,6 @@ Next, create a user at the org scope.
<Tabs>
<Tab heading="CLI">
First, create the user resource:
```bash
@@ -229,7 +219,6 @@ User information:
</Tab>
<Tab heading="Admin Console">
1. Navigate to an org, then to users.
1. Choose the **New** button.
1. Fill the user details.
@@ -259,7 +248,6 @@ Then associate the user with an account:
</Tab>
<Tab heading="Terraform">
```hcl
resource "boundary_user" "myuser" {
name = "myuser"
@@ -274,7 +262,6 @@ resource "boundary_user" "myuser" {
</Tab>
</Tabs>
## Login
Now you can test logging in.
@@ -282,7 +269,6 @@ Now you can test logging in.
<Tabs>
<Tab heading="CLI">
```bash
$ boundary authenticate password -login-name myuser -password supersecure -auth-method-id ampw_PbE6nNT72a
```
@@ -290,7 +276,6 @@ $ boundary authenticate password -login-name myuser -password supersecure -auth-
</Tab>
<Tab heading="Admin Console">
1. Navigate to the authenticate page.
1. Choose an org scope with which to authenticate.
1. Fill the credentials.
@@ -306,7 +291,6 @@ $ boundary authenticate password -login-name myuser -password supersecure -auth-
</Tab>
<Tab heading="Terraform">
```hcl
provider "boundary" {
addr = "http://127.0.0.1:9200"
@@ -318,4 +302,3 @@ provider "boundary" {
</Tab>
</Tabs>
@@ -1,16 +1,15 @@
---
layout: docs
page_title: SSH ProxyCommand Workflow
sidebar_title: SSH ProxyCommand Workflow
page_title: SSH ProxyCommand Workflow
description: How to manage SSH proxy configuration with Boundary
---
# SSH ProxyCommand Workflow
# SSH ProxyCommand Workflow
The most common pattern for using Boundary to SSH is with the built-in `boundary connect ssh` command. However,
there are more idomatic approaches that can be employed to make Boundary transparent to users, and at the same
time simplify common developer and operator workflows. Using `ProxyCommand` to execute a proxy when invoking the
SSH client is a common practice. In this workflow, we'll cover configuring your SSH client to execute the
SSH client is a common practice. In this workflow, we'll cover configuring your SSH client to execute the
`boundary` command, enabling a simplified SSH workflow that leverages Boundary's authenticated proxy for accessing
targets.
@@ -23,17 +22,17 @@ Host ttcp_*
ProxyCommand sh -c "boundary connect -target-id %h -exec nc -- {{boundary.ip}} {{boundary.port}}"
```
The `ProxyCommand` tells the SSH client to invoke `boundary connect`. We are passing the `-exec nc` flag to
The `ProxyCommand` tells the SSH client to invoke `boundary connect`. We are passing the `-exec nc` flag to
`boundary connect` to wrap [netcat](http://netcat.sourceforge.net/), and then pass the `boundary.ip` and `boundary.port`
varibles as arguments to `nc`. This allows us to proxy our SSH connection through a local netcat tunnel that's
managed as a Boundary session.
When you run `ssh ttcp_1234567890` (example target ID), SSH will invoke `boundary connect`, and will tunnel the traffic through
When you run `ssh ttcp_1234567890` (example target ID), SSH will invoke `boundary connect`, and will tunnel the traffic through
the local Boundary proxy in a wrapped netcat session, passing in the target ID as the hostname to the `boundary` command.
## Authenticate to Boundary
Before `ssh` can invoke `boundary connect` you need to authenticate. In this example, we're using `boundary dev` with the
Before `ssh` can invoke `boundary connect` you need to authenticate. In this example, we're using `boundary dev` with the
default username (admin) and password (password):
```bash
@@ -42,14 +41,14 @@ $ boundary authenticate password -login-name=admin -password password -auth-meth
## SSH to Target
Running Boundary in [dev mode](https://www.boundaryproject.io/docs/getting-started#what-is-dev-mode) creates other
Running Boundary in [dev mode](https://www.boundaryproject.io/docs/getting-started#what-is-dev-mode) creates other
default resources such as a target and auth method. The default target (ttcp_1234567890) is already setup with a host
at `localhost` and a default port of `22`.
at `localhost` and a default port of `22`.
You can simply run `ssh` as you normally would and all the traffic will be proxied over the Boundary proxy to your target machine:
```bash
$ ssh ttcp_1234567890
$ ssh ttcp_1234567890
Password:
Last login: Thu Nov 19 10:32:09 2020
➜ ~
@@ -98,13 +97,13 @@ Session information:
# Advanced Usage
Another way to access targets using ProxyCommand is by setting the `Host` value to the target domain instead of the target ID.
This is useful if you want to use the domain name instead of the target ID when forking SSH. An extra step is required to make this
Another way to access targets using ProxyCommand is by setting the `Host` value to the target domain instead of the target ID.
This is useful if you want to use the domain name instead of the target ID when forking SSH. An extra step is required to make this
work where you must authorize the session to the target and store it in your environment since we're no longer passing the target
ID to the SSH command. This will allow Boundary to pull the target information from the token you created in the `authorize session`
command.
command.
## Configure SSH
## Configure SSH
```bash
Host localhost
@@ -114,7 +113,7 @@ Host localhost
## Authenticate to Boundary
Before `ssh` can invoke `boundary connect` you need to authenticate. In this example, we're using `boundary dev` with the
Before `ssh` can invoke `boundary connect` you need to authenticate. In this example, we're using `boundary dev` with the
default username (admin) and password (password):
```bash
@@ -123,11 +122,11 @@ $ boundary authenticate password -login-name=admin -password password -auth-meth
## Authorize the Session
Running Boundary in [dev mode](https://www.boundaryproject.io/docs/getting-started#what-is-dev-mode) creates other
Running Boundary in [dev mode](https://www.boundaryproject.io/docs/getting-started#what-is-dev-mode) creates other
default resources such as a target and auth method. The default target (ttcp_1234567890) is already setup with a host
at `localhost` and a default port of `22`.
at `localhost` and a default port of `22`.
Authorize a session to the default target and store the token in the `BOUNDARY_CONNECT_AUTHZ_TOKEN` environment variable.
Authorize a session to the default target and store the token in the `BOUNDARY_CONNECT_AUTHZ_TOKEN` environment variable.
This will be used by Boundary when it's invoked by SSH:
```bash
@@ -135,8 +134,9 @@ $ export BOUNDARY_CONNECT_AUTHZ_TOKEN=$(boundary targets authorize-session -id t
```
## SSH to Target
```bash
$ ssh user@localhost
$ ssh user@localhost
Password:
Last login: Thu Nov 19 10:32:09 2020
➜ ~
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Accounts
sidebar_title: Accounts
description: |-
The anatomy of a Boundary account
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Auth Methods
sidebar_title: Auth Methods
description: |-
The anatomy of a Boundary auth method
---
@@ -49,5 +48,5 @@ The password auth method has the following additional attributes:
The following services are relevant to this resource:
* [Auth Method Service](/api-docs/auth-method-service)
* [Auth Token Service](/api-docs/auth-token-service)
- [Auth Method Service](/api-docs/auth-method-service)
- [Auth Token Service](/api-docs/auth-token-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Groups
sidebar_title: Groups
description: |-
The anatomy of a Boundary group
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Host Catalogs
sidebar_title: Host Catalogs
description: |-
The anatomy of a Boundary host catalog
---
@@ -37,4 +36,4 @@ A host catalog has the following configurable attributes:
The following services are relevant to this resource:
* [Host Catalog Service](/api-docs/host-catalog-service)
- [Host Catalog Service](/api-docs/host-catalog-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Host Sets
sidebar_title: Host Sets
description: |-
The anatomy of a Boundary host set
---
@@ -45,4 +44,4 @@ A host set has the following configurable attributes:
The following services are relevant to this resource:
* [Host Set Service](/api-docs/host-set-service)
- [Host Set Service](/api-docs/host-set-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Hosts
sidebar_title: Hosts
description: |-
The anatomy of a Boundary host
---
@@ -12,8 +11,8 @@ A host is a resource
that represents a computing element with a network address
reachable from Boundary.
A host belongs to a [host catalog][].
Hosts can only be associated with [host sets][]
from the same host catalog as the host.
Hosts can only be associated with [host sets][]
from the same host catalog as the host.
## Attributes
@@ -45,4 +44,4 @@ Static host types have the following additional attribute:
The following services are relevant to this resource:
* [Host Service](/api-docs/host-service)
- [Host Service](/api-docs/host-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model Index
sidebar_title: Domain Model
description: |-
Reference documentation for Boundary's domain model.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Roles
sidebar_title: Roles
description: |-
The anatomy of a Boundary role
---
@@ -43,4 +42,4 @@ A role has the following configurable attributes:
The following services are relevant to this resource:
* [Role Service](/api-docs/role-service)
- [Role Service](/api-docs/role-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Scopes
sidebar_title: Scopes
description: |-
The anatomy of a Boundary scope
---
@@ -81,4 +80,4 @@ A scope has the following configurable attributes:
The following services are relevant to this resource:
* [Scope Service](/api-docs/scope-service)
- [Scope Service](/api-docs/scope-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Sessions
sidebar_title: Sessions
description: |-
The anatomy of a Boundary session
---
@@ -81,4 +80,4 @@ Changes to a user's permissions do not effect existing sessions.
The following services are relevant to this resource:
* [Session Service](/api-docs/session-service)
- [Session Service](/api-docs/session-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Targets
sidebar_title: Targets
description: |-
The anatomy of a Boundary target
---
@@ -84,4 +83,4 @@ TCP targets have the following additional attributes:
The following services are relevant to this resource:
* [Target Service](/api-docs/target-service)
- [Target Service](/api-docs/target-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Domain Model - Users
sidebar_title: Users
description: |-
The anatomy of a Boundary user
---
@@ -58,4 +57,4 @@ A user has the following configurable attributes:
The following services are relevant to this resource:
* [User Service](/api-docs/user-service)
- [User Service](/api-docs/user-service)
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Filtering
sidebar_title: Filtering
description: |-
An introduction to the filtering syntax used in Boundary.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Filtering - Resource Listing
sidebar_title: Resource Listing
description: |-
How to use filter list responses coming back from Boundary.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Filtering - Worker Tags
sidebar_title: Worker Tags
description: |-
How to use worker tags to control which workers can handle a given target.
---
-1
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Concepts
sidebar_title: Concepts
description: |-
An introduction to Boundary concepts and architecture.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Connections/TLS
sidebar_title: Connections/TLS
description: |-
How Boundary secures its connections
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Data Encryption
sidebar_title: Data Encryption
description: |-
How Boundary secures data at rest
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Security
sidebar_title: Security
description: |-
Boundary security overview.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Permissions
sidebar_title: Permissions
description: |-
Boundary's permissions model
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Controller - Configuration
sidebar_title: controller
description: |-
The controller stanza configures controller-specifc parameters.
---
+4 -5
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Server Configuration
sidebar_title: Configuration
description: Boundary configuration reference.
---
@@ -22,13 +21,13 @@ After the configuration is written, use the `-config` flag to specify a local pa
## Parameters
- [`controller`](/docs/configuration/controller): Controller specific
configuration. If present, `boundary server` will start a Controller subprocess.
configuration. If present, `boundary server` will start a Controller subprocess.
- [`worker`](/docs/configuration/worker): Worker specific configuration. If
present, `boundary server` will start a Worker subprocess.
present, `boundary server` will start a Worker subprocess.
- [`listener`](/docs/configuration/listener): Configures the listeners on which
Boundary serves traffic (API, cluster, and proxy).
Boundary serves traffic (API, cluster, and proxy).
Controllers will have two listener blocks: one marked for `api` purpose and
the other marked for `cluster` purpose. By default, the API listener runs on
@@ -38,7 +37,7 @@ Boundary serves traffic (API, cluster, and proxy).
Workers will have only one listener, marked for `proxy` purpose.
- [`kms`](/docs/configuration/kms): Configures KMS blocks [for various
purposes](/docs/concepts/security/data-encryption).
purposes](/docs/concepts/security/data-encryption).
- `disable_mlock` `(bool: false)` – Disables the server from executing the
`mlock` syscall, which prevents memory from being swapped to disk. This is
@@ -1,7 +1,6 @@
---
layout: docs
page_title: AEAD - Configuration
sidebar_title: AEAD
description: |-
The AEAD KMS configures AEAD-specifc parameters.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: AliCloud KMS - KMSs - Configuration
sidebar_title: AliCloud KMS
description: >-
The AliCloud KMS configures Boundary to use AliCloud KMS for key management.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: AWS KMS - KMSs - Configuration
sidebar_title: AWS KMS
description: |-
The AWS KMS configures Boundary to use AWS KMS for key management.
mechanism.
@@ -32,7 +31,7 @@ kms "awskms" {
These parameters apply to the `kms` stanza in the Boundary configuration file:
- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `root`,
`recovery`, or `config`.
`recovery`, or `config`.
- `region` `(string: "us-east-1")`: The AWS region where the encryption key
lives. If not provided, may be populated from the `AWS_REGION` or
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Azure Key Vault - Seals - Configuration
sidebar_title: Azure Key Vault
description: >-
The Azure Key Vault seal configures Boundary to use Azure Key Vault for key management.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: GCP Cloud KMS - KMSs - Configuration
sidebar_title: GCP Cloud KMS
description: >-
The GCP Cloud KMS configures Boundary to use GCP Cloud KMS for key management.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: KMS - Configuration
sidebar_title: KMS
description: |-
The KMS stanza configures KMS-specifc parameters.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: OCI KMS - KMSs - Configuration
sidebar_title: OCI KMS
description: |-
The OCI KMS configures Boundary to use OCI KMS for key management.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Vault Transit - Seals - Configuration
sidebar_title: Vault Transit
description: |-
The Transit configures Boundary to use Vault's Transit Secret Engine for key management.
---
@@ -43,7 +42,7 @@ kms "transit" {
These parameters apply to the `kms` stanza in the Vault configuration file:
- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `root`,
`recovery`, or `config`.
`recovery`, or `config`.
- `address` `(string: <required>)`: The full address to the Vault cluster.
This may also be specified by the `VAULT_ADDR` environment variable.
@@ -95,7 +94,7 @@ variables or as configuration parameters.
~> **Note:** Although the configuration file allows you to pass in
`token` as part of the KMS stanza's parameters, it is _strongly_ recommended
to omit the `token` parameter from the configuration file and set the
to omit the `token` parameter from the configuration file and set the
token used to authenticate to Vault via the `VAULT_TOKEN` environment variable.
The Vault token used to authenticate needs the following permissions on the
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Listeners - Configuration
sidebar_title: listener
description: |-
The listener stanza configures the addresses and ports on which Boundary will
respond to requests.
@@ -13,4 +12,4 @@ The `listener` stanza configures the addresses and ports on which Boundary will
respond to requests. At this time, there are two listeners - [TCP][tcp] and [Unix][unix].
[tcp]: /docs/configuration/listener/tcp
[unix]: /docs/configuration/listener/unix
[unix]: /docs/configuration/listener/unix
@@ -1,7 +1,6 @@
---
layout: docs
page_title: TCP - Listeners - Configuration
sidebar_title: TCP
description: |-
The TCP listener configures Boundary to listen on the specified TCP address and
port.
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Unix Domain Socket - Listeners - Configuration
sidebar_title: Unix
description: |-
The Unix listener configures Boundary to listen on the specified Unix domain socket.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Worker - Configuration
sidebar_title: worker
description: |-
The worker stanza configures worker-specific parameters.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Documentation
sidebar_title: Building
description: Building Boundary
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Developing Boundary
sidebar_title: Developing Boundary
description: Developing Boundary
---
-1
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Developing the UI
sidebar_title: Developing the UI
description: Developing the Boundary User Interface
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Connect to Target
sidebar_title: Connect to Target
description: |-
Connecting to your first target
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Getting Started
sidebar_title: Getting Started
description: Getting started with Boundary
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Installing Boundary
sidebar_title: Installing
description: |-
How to install boundary.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Production Installation
sidebar_title: Production Install
description: |-
How to install Boundary in a production environment
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Run and Login
sidebar_title: Run and Login
description: |-
How to run Boundary services in dev mode and login for the first time.
---
-1
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Documentation
sidebar_title: Overview
description: Boundary reference documentation
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: High Availability Installation
sidebar_title: High Availability Install
description: |-
How to install Boundary as a high availability service
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Installing Boundary
sidebar_title: Installing
description: |-
How to install boundary.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Running Boundary in Non-Dev Environments
sidebar_title: Non-Dev Environments
description: |-
How to install boundary in non-dev environments.
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Postgres Installation
sidebar_title: Postgres Install
description: |-
Postgres configuration for Boundary
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Systemd Installation
sidebar_title: Systemd Install
description: |-
How to install Boundary under Systemd on Linux
---
-1
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Releases
sidebar_title: Releases
description: |-
Boundary releases
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Release Notes
sidebar_title: Release Notes
description: |-
Boundary release notes
---
@@ -1,7 +1,6 @@
---
layout: docs
page_title: v0.1.0
sidebar_title: v0.1.0
description: |-
Boundary release notes for v0.1.0
---
-1
View File
@@ -1,7 +1,6 @@
---
layout: docs
page_title: Roadmap
sidebar_title: Roadmap
description: Boundary Roadmap
---
+293
View File
@@ -0,0 +1,293 @@
[
{
"title": "Getting Started",
"routes": [
{
"title": "Overview",
"path": "getting-started"
},
{
"title": "Run and Login",
"path": "getting-started/run-and-login"
},
{
"title": "Connect to Target",
"path": "getting-started/connect-to-target"
}
]
},
{
"title": "Installing",
"routes": [
{
"title": "Overview",
"path": "installing"
},
{
"title": "Non-Dev Environments",
"path": "installing/no-gen-resources"
},
{
"title": "Systemd Install",
"path": "installing/systemd"
},
{
"title": "Postgres Install",
"path": "installing/postgres"
},
{
"title": "High Availability Install",
"path": "installing/high-availability"
}
]
},
{
"title": "API/Clients",
"routes": [
{
"title": "Overview",
"path": "api-clients"
},
{
"title": "API",
"path": "api-clients/api"
},
{
"title": "CLI",
"path": "api-clients/cli"
},
{
"title": "Go SDK",
"path": "api-clients/go-sdk"
},
{
"title": "Desktop",
"path": "api-clients/desktop"
}
]
},
{
"title": "Concepts",
"routes": [
{
"title": "Overview",
"path": "concepts"
},
{
"title": "Security",
"routes": [
{
"title": "Overview",
"path": "concepts/security"
},
{
"title": "Permissions",
"path": "concepts/security/permissions"
},
{
"title": "Data Encryption",
"path": "concepts/security/data-encryption"
},
{
"title": "Connections/TLS",
"path": "concepts/security/connections-tls"
}
]
},
{
"title": "Domain Model",
"routes": [
{
"title": "Overview",
"path": "concepts/domain-model"
},
{
"title": "Accounts",
"path": "concepts/domain-model/accounts"
},
{
"title": "Auth Methods",
"path": "concepts/domain-model/auth-methods"
},
{
"title": "Groups",
"path": "concepts/domain-model/groups"
},
{
"title": "Hosts",
"path": "concepts/domain-model/hosts"
},
{
"title": "Host Catalogs",
"path": "concepts/domain-model/host-catalogs"
},
{
"title": "Host Sets",
"path": "concepts/domain-model/host-sets"
},
{
"title": "Scopes",
"path": "concepts/domain-model/scopes"
},
{
"title": "Sessions",
"path": "concepts/domain-model/sessions"
},
{
"title": "Targets",
"path": "concepts/domain-model/targets"
},
{
"title": "Roles",
"path": "concepts/domain-model/roles"
},
{
"title": "Users",
"path": "concepts/domain-model/users"
}
]
},
{
"title": "Filtering",
"routes": [
{
"title": "Overview",
"path": "concepts/filtering"
},
{
"title": "Resource Listing",
"path": "concepts/filtering/resource-listing"
},
{
"title": "Worker Tags",
"path": "concepts/filtering/worker-tags"
}
]
}
]
},
{
"title": "Developing Boundary",
"routes": [
{
"title": "Overview",
"path": "developing"
},
{
"title": "Building",
"path": "developing/building"
},
{
"title": "Developing the UI",
"path": "developing/ui"
}
]
},
{
"divider": true
},
{
"title": "Configuration",
"routes": [
{
"title": "Overview",
"path": "configuration"
},
{
"title": "listener",
"routes": [
{
"title": "Overview",
"path": "configuration/listener"
},
{
"title": "TCP",
"path": "configuration/listener/tcp"
},
{
"title": "Unix",
"path": "configuration/listener/unix"
}
]
},
{
"title": "KMS",
"routes": [
{
"title": "Overview",
"path": "configuration/kms"
},
{
"title": "AEAD",
"path": "configuration/kms/aead"
},
{
"title": "AWS KMS",
"path": "configuration/kms/awskms"
},
{
"title": "AliCloud KMS",
"path": "configuration/kms/alicloudkms"
},
{
"title": "Azure Key Vault",
"path": "configuration/kms/azurekeyvault"
},
{
"title": "GCP Cloud KMS",
"path": "configuration/kms/gcpckms"
},
{
"title": "OCI KMS",
"path": "configuration/kms/ocikms"
},
{
"title": "Vault Transit",
"path": "configuration/kms/transit"
}
]
},
{
"title": "controller",
"path": "configuration/controller"
},
{
"title": "worker",
"path": "configuration/worker"
}
]
},
{
"title": "Common Workflows",
"href": "https://learn.hashicorp.com/collections/boundary/common-workflows"
},
{
"divider": true
},
{
"title": "Roadmap",
"path": "roadmap"
},
{
"title": "Releases",
"routes": [
{
"title": "Overview",
"path": "releases"
},
{
"title": "Release Notes",
"routes": [
{
"title": "Overview",
"path": "releases/release-notes"
},
{
"title": "v0.1.0",
"path": "releases/release-notes/v0_1_0"
}
]
}
]
}
]
-95
View File
@@ -1,95 +0,0 @@
// The root folder for this documentation category is `pages/docs`
//
// - A string refers to the name of a file
// - A "category" value refers to the name of a directory
// - All directories must have an "index.mdx" file to serve as the landing page
// for the category, or a "name" property to serve as the category title in
// the sidebar
export default [
{
category: 'getting-started',
content: ['run-and-login', 'connect-to-target'],
},
{
category: 'installing',
content: ['no-gen-resources', 'systemd', 'postgres', 'high-availability'],
},
{
category: 'api-clients',
content: ['api', 'cli', 'go-sdk', 'desktop'],
},
{
category: 'concepts',
content: [
{
category: 'security',
content: ['permissions', 'data-encryption', 'connections-tls'],
},
{
category: 'domain-model',
content: [
'accounts',
'auth-methods',
'groups',
'hosts',
'host-catalogs',
'host-sets',
'scopes',
'sessions',
'targets',
'roles',
'users',
],
},
{
category: 'filtering',
content: ['resource-listing', 'worker-tags'],
},
],
},
{
category: 'developing',
content: ['building', 'ui'],
},
'---',
{
category: 'configuration',
content: [
{
category: 'listener',
content: ['tcp', 'unix'],
},
{
category: 'kms',
content: [
'aead',
'awskms',
'alicloudkms',
'azurekeyvault',
'gcpckms',
'ocikms',
'transit',
],
},
'controller',
'worker',
],
},
{
title: 'Common Workflows',
href: 'https://learn.hashicorp.com/collections/boundary/common-workflows',
},
'---',
'roadmap',
{
category: 'releases',
content: [
{
category: 'release-notes',
content: ['v0_1_0'],
},
],
},
]
+211 -321
View File
@@ -5,118 +5,118 @@
"requires": true,
"dependencies": {
"@algolia/cache-browser-local-storage": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.8.3.tgz",
"integrity": "sha512-Cwc03hikHSUI+xvgUdN+H+f6jFyoDsC9fegzXzJ2nPn1YSN9EXzDMBnbrgl0sbl9iLGXe0EIGMYqR2giCv1wMQ==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.8.6.tgz",
"integrity": "sha512-Bam7otzjIEgrRXWmk0Amm1+B3ROI5dQnUfJEBjIy0YPM0kMahEoJXCw6160tGKxJLl1g6icoC953nGshQKO7cA==",
"requires": {
"@algolia/cache-common": "4.8.3"
"@algolia/cache-common": "4.8.6"
}
},
"@algolia/cache-common": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.8.3.tgz",
"integrity": "sha512-Cf7zZ2i6H+tLSBTkFePHhYvlgc9fnMPKsF9qTmiU38kFIGORy/TN2Fx5n1GBuRLIzaSXvcf+oHv1HvU0u1gE1g=="
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.8.6.tgz",
"integrity": "sha512-eGQlsXU5G7n4RvV/K6qe6lRAeL6EKAYPT3yZDBjCW4pAh7JWta+77a7BwUQkTqXN1MEQWZXjex3E4z/vFpzNrg=="
},
"@algolia/cache-in-memory": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.8.3.tgz",
"integrity": "sha512-+N7tkvmijXiDy2E7u1mM73AGEgGPWFmEmPeJS96oT46I98KXAwVPNYbcAqBE79YlixdXpkYJk41cFcORzNh+Iw==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.8.6.tgz",
"integrity": "sha512-kbJrvCFANxL/l5Pq1NFyHLRphKDwmqcD/OJga0IbNKEulRGDPkt1+pC7/q8d2ikP12adBjLLg2CVias9RJpIaw==",
"requires": {
"@algolia/cache-common": "4.8.3"
"@algolia/cache-common": "4.8.6"
}
},
"@algolia/client-account": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.8.3.tgz",
"integrity": "sha512-Uku8LqnXBwfDCtsTCDYTUOz2/2oqcAQCKgaO0uGdIR8DTQENBXFQvzziambHdn9KuFuY+6Et9k1+cjpTPBDTBg==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.8.6.tgz",
"integrity": "sha512-FQVJE/BgCb78jtG7V0r30sMl9P5JKsrsOacGtGF2YebqI0YF25y8Z1nO39lbdjahxUS3QkDw2d0P2EVMj65g2Q==",
"requires": {
"@algolia/client-common": "4.8.3",
"@algolia/client-search": "4.8.3",
"@algolia/transporter": "4.8.3"
"@algolia/client-common": "4.8.6",
"@algolia/client-search": "4.8.6",
"@algolia/transporter": "4.8.6"
}
},
"@algolia/client-analytics": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.8.3.tgz",
"integrity": "sha512-9ensIWmjYJprZ+YjAVSZdWUG05xEnbytENXp508X59tf34IMIX8BR2xl0RjAQODtxBdAteGxuKt5THX6U9tQLA==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.8.6.tgz",
"integrity": "sha512-ZBYFUlzNaWDFtt0rYHI7xbfVX0lPWU9lcEEXI/BlnkRgEkm247H503tNatPQFA1YGkob52EU18sV1eJ+OFRBLA==",
"requires": {
"@algolia/client-common": "4.8.3",
"@algolia/client-search": "4.8.3",
"@algolia/requester-common": "4.8.3",
"@algolia/transporter": "4.8.3"
"@algolia/client-common": "4.8.6",
"@algolia/client-search": "4.8.6",
"@algolia/requester-common": "4.8.6",
"@algolia/transporter": "4.8.6"
}
},
"@algolia/client-common": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.8.3.tgz",
"integrity": "sha512-TU3623AEFAWUQlDTznkgAMSYo8lfS9pNs5QYDQzkvzWdqK0GBDWthwdRfo9iIsfxiR9qdCMHqwEu+AlZMVhNSA==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.8.6.tgz",
"integrity": "sha512-8dI+K3Nvbes2YRZm2LY7bdCUD05e60BhacrMLxFuKxnBGuNehME1wbxq/QxcG1iNFJlxLIze5TxIcNN3+pn76g==",
"requires": {
"@algolia/requester-common": "4.8.3",
"@algolia/transporter": "4.8.3"
"@algolia/requester-common": "4.8.6",
"@algolia/transporter": "4.8.6"
}
},
"@algolia/client-recommendation": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.8.3.tgz",
"integrity": "sha512-qysGbmkcc6Agt29E38KWJq9JuxjGsyEYoKuX9K+P5HyQh08yR/BlRYrA8mB7vT/OIUHRGFToGO6Vq/rcg0NIOQ==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.8.6.tgz",
"integrity": "sha512-Kg8DpjwvaWWujNx6sAUrSL+NTHxFe/UNaliCcSKaMhd3+FiPXN+CrSkO0KWR7I+oK2qGBTG/2Y0BhFOJ5/B/RA==",
"requires": {
"@algolia/client-common": "4.8.3",
"@algolia/requester-common": "4.8.3",
"@algolia/transporter": "4.8.3"
"@algolia/client-common": "4.8.6",
"@algolia/requester-common": "4.8.6",
"@algolia/transporter": "4.8.6"
}
},
"@algolia/client-search": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.8.3.tgz",
"integrity": "sha512-rAnvoy3GAhbzOQVniFcKVn1eM2NX77LearzYNCbtFrFYavG+hJI187bNVmajToiuGZ10FfJvK99X2OB1AzzezQ==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.8.6.tgz",
"integrity": "sha512-vXLS6umL/9G3bwqc6pkrS9K5/s8coq55mpfRARL+bs0NsToOf77WSTdwzlxv/KdbVF7dHjXgUpBvJ6RyR4ZdAw==",
"requires": {
"@algolia/client-common": "4.8.3",
"@algolia/requester-common": "4.8.3",
"@algolia/transporter": "4.8.3"
"@algolia/client-common": "4.8.6",
"@algolia/requester-common": "4.8.6",
"@algolia/transporter": "4.8.6"
}
},
"@algolia/logger-common": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.8.3.tgz",
"integrity": "sha512-03wksHRbhl2DouEKnqWuUb64s1lV6kDAAabMCQ2Du1fb8X/WhDmxHC4UXMzypeOGlH5BZBsgVwSB7vsZLP3MZg=="
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.8.6.tgz",
"integrity": "sha512-FMRxZGdDxSzd0/Mv0R1021FvUt0CcbsQLYeyckvSWX8w+Uk4o0lcV6UtZdERVR5XZsGOqoXLMIYDbR2vkbGbVw=="
},
"@algolia/logger-console": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.8.3.tgz",
"integrity": "sha512-Npt+hI4UF8t3TLMluL5utr9Gc11BjL5kDnGZOhDOAz5jYiSO2nrHMFmnpLT4Cy/u7a5t7EB5dlypuC4/AGStkA==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.8.6.tgz",
"integrity": "sha512-TYw9lwUCjvApC6Z0zn36T6gkCl7hbfJmnU+Z/D8pFJ3Yp7lz06S3oWGjbdrULrYP1w1VOhjd0X7/yGNsMhzutQ==",
"requires": {
"@algolia/logger-common": "4.8.3"
"@algolia/logger-common": "4.8.6"
}
},
"@algolia/requester-browser-xhr": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.8.3.tgz",
"integrity": "sha512-/LTTIpgEmEwkyhn8yXxDdBWqXqzlgw5w2PtTpIwkSlP2/jDwdR/9w1TkFzhNbJ81ki6LAEQM5mSwoTTnbIIecg==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.8.6.tgz",
"integrity": "sha512-omh6uJ3CJXOmcrU9M3/KfGg8XkUuGJGIMkqEbkFvIebpBJxfs6TVs0ziNeMFAcAfhi8/CGgpLbDSgJtWdGQa6w==",
"requires": {
"@algolia/requester-common": "4.8.3"
"@algolia/requester-common": "4.8.6"
}
},
"@algolia/requester-common": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.8.3.tgz",
"integrity": "sha512-+Yo9vBkofoKR1SCqqtMnmnfq9yt/BiaDewY/6bYSMNxSYCnu2Fw1JKSIaf/4zos09PMSsxGpLohZwGas3+0GDQ=="
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.8.6.tgz",
"integrity": "sha512-r5xJqq/D9KACkI5DgRbrysVL5DUUagikpciH0k0zjBbm+cXiYfpmdflo/h6JnY6kmvWgjr/4DoeTjKYb/0deAQ=="
},
"@algolia/requester-node-http": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.8.3.tgz",
"integrity": "sha512-k2fiKIeMIFqgC01FnzII6kqC2GQBAfbNaUX4k7QCPa6P8t4sp2xE6fImOUiztLnnL3C9X9ZX6Fw3L+cudi7jvQ==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.8.6.tgz",
"integrity": "sha512-TB36OqTVOKyHCOtdxhn/IJyI/NXi/BWy8IEbsiWwwZWlL79NWHbetj49jXWFolEYEuu8PgDjjZGpRhypSuO9XQ==",
"requires": {
"@algolia/requester-common": "4.8.3"
"@algolia/requester-common": "4.8.6"
}
},
"@algolia/transporter": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.8.3.tgz",
"integrity": "sha512-nU7fy2iU8snxATlsks0MjMyv97QJWQmOVwTjDc+KZ4+nue8CLcgm4LA4dsTBqvxeCQIoEtt3n72GwXcaqiJSjQ==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.8.6.tgz",
"integrity": "sha512-NRb31J0TP7EPoVMpXZ4yAtr61d26R8KGaf6qdULknvq5sOVHuuH4PwmF08386ERfIsgnM/OBhl+uzwACdCIjSg==",
"requires": {
"@algolia/cache-common": "4.8.3",
"@algolia/logger-common": "4.8.3",
"@algolia/requester-common": "4.8.3"
"@algolia/cache-common": "4.8.6",
"@algolia/logger-common": "4.8.6",
"@algolia/requester-common": "4.8.6"
}
},
"@ampproject/toolbox-core": {
@@ -1826,21 +1826,32 @@
"integrity": "sha512-X6BauLEsv6VOi+iGnDBxC6nzvx06WKM7s8K/VqJHQ5PTmCaPrgaaRZh99qQcnIXpuHcmScs85wq8yAfD8zpOUQ=="
},
"@hashicorp/react-docs-page": {
"version": "10.3.1",
"resolved": "https://registry.npmjs.org/@hashicorp/react-docs-page/-/react-docs-page-10.3.1.tgz",
"integrity": "sha512-vTwniJkY+8a7t+C7+sDt2G1k+mnG3sv0AfY3VyVSVIFp2TniLn3NJMbpb8cyoMbxcrHOYqS/M5woqJd4ktuGwg==",
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/@hashicorp/react-docs-page/-/react-docs-page-12.0.0.tgz",
"integrity": "sha512-t5HpVsENkUSpbs8Eb5odTVt+Ke2z/LDKiJgC9Jq3+mVtRDXZ0+w5X6XQic8xVRP5McmOKPqoSeqBmgLwIBm1WQ==",
"requires": {
"@hashicorp/react-content": "^6.1.1",
"@hashicorp/react-docs-sidenav": "^6.0.1",
"@hashicorp/react-head": "^1.1.6",
"@hashicorp/react-search": "^3.0.0",
"@hashicorp/react-content": "^6.3.0",
"@hashicorp/react-docs-sidenav": "^7.0.0",
"@hashicorp/react-head": "^1.2.0",
"@hashicorp/react-search": "^4.2.0",
"fs-exists-sync": "0.1.0",
"gray-matter": "4.0.2",
"js-yaml": "3.14.0",
"line-reader": "0.4.0",
"moize": "^5.4.7",
"readdirp": "3.5.0"
},
"dependencies": {
"@hashicorp/react-content": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/@hashicorp/react-content/-/react-content-6.3.0.tgz",
"integrity": "sha512-B+QMlkMGryeNx3dGON4ExbzNvvll2ZXN3x+TkX80tUGClMI80MKjfSXiXIoVixlp22DMNG6wrnL42LC4WzZOxg=="
},
"@hashicorp/react-head": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@hashicorp/react-head/-/react-head-1.2.0.tgz",
"integrity": "sha512-6BNmhsrzVwJFOAcT3WhSeDlCdtlD3d7vzhXOGfkpPYVnYRaIpLLC6seemAr/wqZhYB87W+KvFilz8vZcpDAZzQ=="
},
"js-yaml": {
"version": "3.14.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
@@ -1853,12 +1864,19 @@
}
},
"@hashicorp/react-docs-sidenav": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/@hashicorp/react-docs-sidenav/-/react-docs-sidenav-6.0.1.tgz",
"integrity": "sha512-M1G9iehFrNCaBj0v9l9gAi6nRSc43wdkIf6OUeQS82I3QkIKzrBw3hx1PJpElkqoq+CJKk45yZv9jFFjEF3yxg==",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@hashicorp/react-docs-sidenav/-/react-docs-sidenav-7.0.0.tgz",
"integrity": "sha512-gzOEG4fwfdfdHvxMuRC73bZUIpUzSPrG826NIM4N0lqUPzsAkDsfEl2+Vg1ZVfgzy2+41E+lIpHW4ZmWc5OZ7A==",
"requires": {
"@hashicorp/react-link-wrap": "^0.0.3",
"@hashicorp/react-link-wrap": "^2.0.2",
"fuzzysearch": "1.0.3"
},
"dependencies": {
"@hashicorp/react-link-wrap": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@hashicorp/react-link-wrap/-/react-link-wrap-2.0.2.tgz",
"integrity": "sha512-q8s2TTd9Uy3BSYyUe2TTr2Kbc0ViRc7XQga2fZI0bzlFqBTiMXtf6gh2cg3QvimHY42y4YtaO5C109V9ahMUpQ=="
}
}
},
"@hashicorp/react-enterprise-alert": {
@@ -2000,141 +2018,20 @@
}
},
"@hashicorp/react-search": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@hashicorp/react-search/-/react-search-3.0.0.tgz",
"integrity": "sha512-62ttyCxjVFSHz1aNbdjeOcqCezpk3dLhMWTXeQb9Zsi0JYaJdBzK1M9khW1bfozTzjTXXGd/B79orlHMj/Zo9A==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@hashicorp/react-search/-/react-search-4.2.0.tgz",
"integrity": "sha512-ITj3UC06w+bZKrHv77kYdtWlEH9gbtk+pAzZ5ZRxt2GMnw8qMzWnXZKVf1yHvyKAKkHkGXA5s+uFElxRJj3AVQ==",
"requires": {
"@hashicorp/react-inline-svg": "^1.0.2",
"@hashicorp/remark-plugins": "^3.0.0",
"algoliasearch": "^4.4.0",
"algoliasearch": "^4.8.4",
"dotenv": "^8.2.0",
"glob": "^7.1.6",
"gray-matter": "^4.0.2",
"react-instantsearch-dom": "^6.7.0",
"react-instantsearch-dom": "^6.9.0",
"remark": "^12.0.1",
"search-insights": "^1.6.0",
"unist-util-visit": "^2.0.3"
},
"dependencies": {
"markdown-table": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
"integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
"requires": {
"repeat-string": "^1.0.0"
}
},
"mdast-util-compact": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz",
"integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==",
"requires": {
"unist-util-visit": "^2.0.0"
}
},
"parse-entities": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
"integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
"requires": {
"character-entities": "^1.0.0",
"character-entities-legacy": "^1.0.0",
"character-reference-invalid": "^1.0.0",
"is-alphanumerical": "^1.0.0",
"is-decimal": "^1.0.0",
"is-hexadecimal": "^1.0.0"
}
},
"remark": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz",
"integrity": "sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==",
"requires": {
"remark-parse": "^8.0.0",
"remark-stringify": "^8.0.0",
"unified": "^9.0.0"
}
},
"remark-parse": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
"integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
"requires": {
"ccount": "^1.0.0",
"collapse-white-space": "^1.0.2",
"is-alphabetical": "^1.0.0",
"is-decimal": "^1.0.0",
"is-whitespace-character": "^1.0.0",
"is-word-character": "^1.0.0",
"markdown-escapes": "^1.0.0",
"parse-entities": "^2.0.0",
"repeat-string": "^1.5.4",
"state-toggle": "^1.0.0",
"trim": "0.0.1",
"trim-trailing-lines": "^1.0.0",
"unherit": "^1.0.4",
"unist-util-remove-position": "^2.0.0",
"vfile-location": "^3.0.0",
"xtend": "^4.0.1"
}
},
"remark-stringify": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz",
"integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==",
"requires": {
"ccount": "^1.0.0",
"is-alphanumeric": "^1.0.0",
"is-decimal": "^1.0.0",
"is-whitespace-character": "^1.0.0",
"longest-streak": "^2.0.1",
"markdown-escapes": "^1.0.0",
"markdown-table": "^2.0.0",
"mdast-util-compact": "^2.0.0",
"parse-entities": "^2.0.0",
"repeat-string": "^1.5.4",
"state-toggle": "^1.0.0",
"stringify-entities": "^3.0.0",
"unherit": "^1.0.4",
"xtend": "^4.0.1"
}
},
"stringify-entities": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz",
"integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==",
"requires": {
"character-entities-html4": "^1.0.0",
"character-entities-legacy": "^1.0.0",
"xtend": "^4.0.0"
}
},
"unified": {
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
"integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
"requires": {
"bail": "^1.0.0",
"extend": "^3.0.0",
"is-buffer": "^2.0.0",
"is-plain-obj": "^2.0.0",
"trough": "^1.0.0",
"vfile": "^4.0.0"
}
},
"unist-util-remove-position": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
"integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
"requires": {
"unist-util-visit": "^2.0.0"
}
},
"vfile-location": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",
"integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA=="
}
}
},
"@hashicorp/react-section-header": {
@@ -2238,17 +2135,17 @@
}
},
"@hashicorp/remark-plugins": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@hashicorp/remark-plugins/-/remark-plugins-3.0.0.tgz",
"integrity": "sha512-K5gn2kXW8zs2MSduobwnv5hXPANXfuH3bL5Ji42UoExoUmbitbIONtsn5N8ckeUVL+Ykk8dlMsb7gZkFHalLZg==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@hashicorp/remark-plugins/-/remark-plugins-3.1.1.tgz",
"integrity": "sha512-qlN/e6UZoaDfBxLduYh7C0CSN7mgCQDqYoBeJmy/KjLHGF54+mUaZAjD3YqNVRm7mPLJYdQzY0sDiL0zG1TbBA==",
"requires": {
"github-slugger": "^1.3.0",
"remark": "^11.0.2",
"remark": "^12.0.1",
"to-vfile": "^6.1.0",
"unist-util-flatmap": "^1.0.0",
"unist-util-is": "^4.0.2",
"unist-util-map": "^2.0.1",
"unist-util-visit": "^2.0.2"
"unist-util-visit": "^2.0.3"
}
},
"@jsdevtools/ono": {
@@ -2959,30 +2856,30 @@
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
},
"algoliasearch": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.8.3.tgz",
"integrity": "sha512-pljX9jEE2TQ3i1JayhG8afNdE8UuJg3O9c7unW6QO67yRWCKr6b0t5aKC3hSVtjt7pA2TQXLKoAISb4SHx9ozQ==",
"version": "4.8.6",
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.8.6.tgz",
"integrity": "sha512-G8IA3lcgaQB4r9HuQ4G+uSFjjz0Wv2OgEPiQ8emA+G2UUlroOfMl064j1bq/G+QTW0LmTQp9JwrFDRWxFM9J7w==",
"requires": {
"@algolia/cache-browser-local-storage": "4.8.3",
"@algolia/cache-common": "4.8.3",
"@algolia/cache-in-memory": "4.8.3",
"@algolia/client-account": "4.8.3",
"@algolia/client-analytics": "4.8.3",
"@algolia/client-common": "4.8.3",
"@algolia/client-recommendation": "4.8.3",
"@algolia/client-search": "4.8.3",
"@algolia/logger-common": "4.8.3",
"@algolia/logger-console": "4.8.3",
"@algolia/requester-browser-xhr": "4.8.3",
"@algolia/requester-common": "4.8.3",
"@algolia/requester-node-http": "4.8.3",
"@algolia/transporter": "4.8.3"
"@algolia/cache-browser-local-storage": "4.8.6",
"@algolia/cache-common": "4.8.6",
"@algolia/cache-in-memory": "4.8.6",
"@algolia/client-account": "4.8.6",
"@algolia/client-analytics": "4.8.6",
"@algolia/client-common": "4.8.6",
"@algolia/client-recommendation": "4.8.6",
"@algolia/client-search": "4.8.6",
"@algolia/logger-common": "4.8.6",
"@algolia/logger-console": "4.8.6",
"@algolia/requester-browser-xhr": "4.8.6",
"@algolia/requester-common": "4.8.6",
"@algolia/requester-node-http": "4.8.6",
"@algolia/transporter": "4.8.6"
}
},
"algoliasearch-helper": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.3.4.tgz",
"integrity": "sha512-1Ts2XcgGdjGlDrp3v6zbY8VW+X9+jJ5rBmtPBmXOQLd4b5t/LpJlaBdxoAnlMfVFjywP7KSAdmyFUNNYVHDyRQ==",
"version": "3.4.4",
"resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.4.4.tgz",
"integrity": "sha512-OjyVLjykaYKCMxxRMZNiwLp8CS310E0qAeIY2NaublcmLAh8/SL19+zYHp7XCLtMem2ZXwl3ywMiA32O9jszuw==",
"requires": {
"events": "^1.1.1"
},
@@ -6273,6 +6170,11 @@
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
},
"fast-equals": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-1.6.3.tgz",
"integrity": "sha512-4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ=="
},
"fast-glob": {
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
@@ -6296,6 +6198,11 @@
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
"fast-stringify": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fast-stringify/-/fast-stringify-1.1.2.tgz",
"integrity": "sha512-SfslXjiH8km0WnRiuPfpUKwlZjW5I878qsOm+2x8x3TgqmElOOLh1rgJFb+PolNdNRK3r8urEefqx0wt7vx1dA=="
},
"fast-xml-parser": {
"version": "3.19.0",
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz",
@@ -8733,9 +8640,12 @@
"integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg=="
},
"markdown-table": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
"integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q=="
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
"integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
"requires": {
"repeat-string": "^1.0.0"
}
},
"marked": {
"version": "0.7.0",
@@ -8766,21 +8676,11 @@
}
},
"mdast-util-compact": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz",
"integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz",
"integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==",
"requires": {
"unist-util-visit": "^1.1.0"
},
"dependencies": {
"unist-util-visit": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
"integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
"requires": {
"unist-util-visit-parents": "^2.0.0"
}
}
"unist-util-visit": "^2.0.0"
}
},
"mdast-util-definitions": {
@@ -8933,6 +8833,11 @@
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"micro-memoize": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-2.1.2.tgz",
"integrity": "sha512-COjNutiFgnDHXZEIM/jYuZPwq2h8zMUeScf6Sh6so98a+REqdlpaNS7Cb2ffGfK5I+xfgoA3Rx49NGuNJTJq3w=="
},
"micromark": {
"version": "2.11.4",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz",
@@ -9097,6 +9002,16 @@
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
"optional": true
},
"moize": {
"version": "5.4.7",
"resolved": "https://registry.npmjs.org/moize/-/moize-5.4.7.tgz",
"integrity": "sha512-7PZH8QFJ51cIVtDv7wfUREBd3gL59JB0v/ARA3RI9zkSRa9LyGjS1Bdldii2J1/NQXRQ/3OOVOSdnZrCcVaZlw==",
"requires": {
"fast-equals": "^1.6.0",
"fast-stringify": "^1.1.0",
"micro-memoize": "^2.1.1"
}
},
"mozjpeg": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-7.0.0.tgz",
@@ -10300,9 +10215,9 @@
}
},
"parse-entities": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz",
"integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
"integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
"requires": {
"character-entities": "^1.0.0",
"character-entities-legacy": "^1.0.0",
@@ -11371,27 +11286,27 @@
"integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA=="
},
"react-instantsearch-core": {
"version": "6.8.2",
"resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.8.2.tgz",
"integrity": "sha512-UdAjcNIXb2mSECEDS/2XuB4W6rcbnph1NjJBUpY5TLLzSCdKXNTzS2PxF5hkdeuY0L/m/hvDQX6YqxV28PqKLA==",
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.10.3.tgz",
"integrity": "sha512-7twp3OJrPGTFpyXwjJNeOTbQw7RTv+0cUyKkXR9njEyLdXKcPWfpeBirXfdQHjYIHEY2b0V2Vom1B9IHSDSUtQ==",
"requires": {
"@babel/runtime": "^7.1.2",
"algoliasearch-helper": "^3.1.0",
"prop-types": "^15.5.10",
"algoliasearch-helper": "^3.4.3",
"prop-types": "^15.6.2",
"react-fast-compare": "^3.0.0"
}
},
"react-instantsearch-dom": {
"version": "6.8.2",
"resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.8.2.tgz",
"integrity": "sha512-d6YBsjW/aF3qzul7qqUV/KuzEFPVxlAZm3QhREPqMvOyrPTnG5itZZBLe7sFm9OKJ/8shR4TyNp3hb94as7COg==",
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.10.3.tgz",
"integrity": "sha512-kxc6IEruxJrc7O9lsLV5o4YK/RkGt3l7D1Y51JfmYkgeLuQHApwgcy/TAIoSN7wfR/1DONFbX8Y5VhU9Wqh87Q==",
"requires": {
"@babel/runtime": "^7.1.2",
"algoliasearch-helper": "^3.1.0",
"algoliasearch-helper": "^3.4.3",
"classnames": "^2.2.5",
"prop-types": "^15.5.10",
"prop-types": "^15.6.2",
"react-fast-compare": "^3.0.0",
"react-instantsearch-core": "^6.8.2"
"react-instantsearch-core": "^6.10.3"
}
},
"react-intersection-observer": {
@@ -11653,13 +11568,13 @@
}
},
"remark": {
"version": "11.0.2",
"resolved": "https://registry.npmjs.org/remark/-/remark-11.0.2.tgz",
"integrity": "sha512-bh+eJgn8wgmbHmIBOuwJFdTVRVpl3fcVP6HxmpPWO0ULGP9Qkh6INJh0N5Uy7GqlV7DQYGoqaKiEIpM5LLvJ8w==",
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz",
"integrity": "sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==",
"requires": {
"remark-parse": "^7.0.0",
"remark-stringify": "^7.0.0",
"unified": "^8.2.0"
"remark-parse": "^8.0.0",
"remark-stringify": "^8.0.0",
"unified": "^9.0.0"
}
},
"remark-footnotes": {
@@ -11930,24 +11845,25 @@
}
},
"remark-parse": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz",
"integrity": "sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==",
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
"integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
"requires": {
"ccount": "^1.0.0",
"collapse-white-space": "^1.0.2",
"is-alphabetical": "^1.0.0",
"is-decimal": "^1.0.0",
"is-whitespace-character": "^1.0.0",
"is-word-character": "^1.0.0",
"markdown-escapes": "^1.0.0",
"parse-entities": "^1.1.0",
"parse-entities": "^2.0.0",
"repeat-string": "^1.5.4",
"state-toggle": "^1.0.0",
"trim": "0.0.1",
"trim-trailing-lines": "^1.0.0",
"unherit": "^1.0.4",
"unist-util-remove-position": "^1.0.0",
"vfile-location": "^2.0.0",
"unist-util-remove-position": "^2.0.0",
"vfile-location": "^3.0.0",
"xtend": "^4.0.1"
}
},
@@ -11968,9 +11884,9 @@
}
},
"remark-stringify": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-7.0.4.tgz",
"integrity": "sha512-qck+8NeA1D0utk1ttKcWAoHRrJxERYQzkHDyn+pF5Z4whX1ug98uCNPPSeFgLSaNERRxnD6oxIug6DzZQth6Pg==",
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz",
"integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==",
"requires": {
"ccount": "^1.0.0",
"is-alphanumeric": "^1.0.0",
@@ -11978,12 +11894,12 @@
"is-whitespace-character": "^1.0.0",
"longest-streak": "^2.0.1",
"markdown-escapes": "^1.0.0",
"markdown-table": "^1.1.0",
"mdast-util-compact": "^1.0.0",
"parse-entities": "^1.0.2",
"markdown-table": "^2.0.0",
"mdast-util-compact": "^2.0.0",
"parse-entities": "^2.0.0",
"repeat-string": "^1.5.4",
"state-toggle": "^1.0.0",
"stringify-entities": "^2.0.0",
"stringify-entities": "^3.0.0",
"unherit": "^1.0.4",
"xtend": "^4.0.1"
}
@@ -12156,9 +12072,9 @@
}
},
"search-insights": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/search-insights/-/search-insights-1.6.3.tgz",
"integrity": "sha512-Tvqm+M5A7Udw4MgVMYsy1zRbO1f1wb92ZpexADVu01WLX9yCLHek71EpjPsLDSqkbDwlXI3KFjM+1Y+JFQHpsQ=="
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/search-insights/-/search-insights-1.7.1.tgz",
"integrity": "sha512-CSuSKIJp+WcSwYrD9GgIt1e3xmI85uyAefC4/KYGgtvNEm6rt4kBGilhVRmTJXxRE2W1JknvP598Q7SMhm7qKA=="
},
"section-matter": {
"version": "1.0.0",
@@ -13075,15 +12991,13 @@
}
},
"stringify-entities": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz",
"integrity": "sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz",
"integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==",
"requires": {
"character-entities-html4": "^1.0.0",
"character-entities-legacy": "^1.0.0",
"is-alphanumerical": "^1.0.0",
"is-decimal": "^1.0.2",
"is-hexadecimal": "^1.0.0"
"xtend": "^4.0.0"
}
},
"stringify-object": {
@@ -14155,12 +14069,13 @@
"integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg=="
},
"unified": {
"version": "8.4.2",
"resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz",
"integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==",
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz",
"integrity": "sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==",
"requires": {
"bail": "^1.0.0",
"extend": "^3.0.0",
"is-buffer": "^2.0.0",
"is-plain-obj": "^2.0.0",
"trough": "^1.0.0",
"vfile": "^4.0.0"
@@ -14241,21 +14156,11 @@
}
},
"unist-util-remove-position": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz",
"integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
"integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
"requires": {
"unist-util-visit": "^1.1.0"
},
"dependencies": {
"unist-util-visit": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
"integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
"requires": {
"unist-util-visit-parents": "^2.0.0"
}
}
"unist-util-visit": "^2.0.0"
}
},
"unist-util-stringify-position": {
@@ -14287,21 +14192,6 @@
}
}
},
"unist-util-visit-parents": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
"integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
"requires": {
"unist-util-is": "^3.0.0"
},
"dependencies": {
"unist-util-is": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
"integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
}
}
},
"universalify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
@@ -14537,9 +14427,9 @@
}
},
"vfile-location": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz",
"integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA=="
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",
"integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA=="
},
"vfile-message": {
"version": "2.0.4",
+1 -1
View File
@@ -10,7 +10,7 @@
"@hashicorp/react-alert-banner": "5.0.0",
"@hashicorp/react-button": "4.0.0",
"@hashicorp/react-content": "6.1.1",
"@hashicorp/react-docs-page": "10.3.1",
"@hashicorp/react-docs-page": "12.0.0",
"@hashicorp/react-hashi-stack-menu": "1.1.0",
"@hashicorp/react-head": "1.1.6",
"@hashicorp/react-hero": "5.0.0",
+20 -9
View File
@@ -1,30 +1,41 @@
import { productName, productSlug } from 'data/metadata'
import order from 'data/docs-navigation.js'
import DocsPage from '@hashicorp/react-docs-page'
import {
generateStaticPaths,
generateStaticProps,
} from '@hashicorp/react-docs-page/server'
const subpath = 'docs'
const NAV_DATA_FILE = 'data/docs-nav-data.json'
const CONTENT_DIR = 'content/docs'
const basePath = 'docs'
function DocsLayout(props) {
export default function DocsLayout(props) {
return (
<DocsPage
product={{ name: productName, slug: productSlug }}
subpath={subpath}
order={order}
baseRoute={basePath}
staticProps={props}
/>
)
}
export async function getStaticPaths() {
return generateStaticPaths(subpath)
return {
fallback: false,
paths: await generateStaticPaths({
navDataFile: NAV_DATA_FILE,
localContentDir: CONTENT_DIR,
}),
}
}
export async function getStaticProps({ params }) {
return generateStaticProps({ subpath, productName, params })
return {
props: await generateStaticProps({
navDataFile: NAV_DATA_FILE,
localContentDir: CONTENT_DIR,
product: { name: productName, slug: productSlug },
params,
}),
}
}
export default DocsLayout
-1
View File
@@ -10,7 +10,6 @@
@import '~@hashicorp/react-toggle/style.css';
@import '~@hashicorp/react-section-header/style.css';
@import '~@hashicorp/react-vertical-text-block-list/style.css';
@import '~@hashicorp/react-docs-sidenav/style.css';
@import '~@hashicorp/react-docs-page/style.css';
@import '~@hashicorp/react-search/style.css';
@import '~@hashicorp/react-content/style.css';