From c1eae29f24e5a202eaf0c39423dc662f491a87f1 Mon Sep 17 00:00:00 2001 From: Dan Heath <76443935+Dan-Heath@users.noreply.github.com> Date: Wed, 25 Feb 2026 10:46:48 -0500 Subject: [PATCH] docs: Deletes website content from repo (#6426) --- website/.editorconfig | 18 - website/.env | 3 - website/.env.production | 1 - website/.eslintrc.js | 4 - website/.gitignore | 6 - website/.nvmrc | 1 - website/.stylelintrc.js | 9 - website/LICENSE | 10 - website/Makefile | 61 - website/README.md | 538 - website/content/docs/api-clients/desktop.mdx | 207 - website/content/docs/api-clients/index.mdx | 17 - website/content/docs/api/index.mdx | 115 - website/content/docs/api/pagination.mdx | 109 - website/content/docs/api/rate-limiting.mdx | 204 - .../docs/architecture/fault-tolerance.mdx | 46 - .../docs/architecture/high-availability.mdx | 63 - .../architecture/recommended-architecture.mdx | 58 - .../docs/architecture/system-requirements.mdx | 234 - .../docs/client-agent/configuration.mdx | 164 - .../client-agent/conflicting-software.mdx | 237 - website/content/docs/client-agent/index.mdx | 118 - website/content/docs/client-agent/manage.mdx | 79 - .../docs/client-agent/troubleshoot.mdx | 288 - website/content/docs/client-cache/index.mdx | 84 - .../commands/accounts/change-password.mdx | 87 - .../content/docs/commands/accounts/create.mdx | 195 - .../content/docs/commands/accounts/delete.mdx | 44 - .../content/docs/commands/accounts/index.mdx | 92 - .../content/docs/commands/accounts/list.mdx | 82 - .../content/docs/commands/accounts/read.mdx | 75 - .../docs/commands/accounts/set-password.mdx | 85 - .../content/docs/commands/accounts/update.mdx | 193 - .../content/docs/commands/aliases/create.mdx | 83 - .../content/docs/commands/aliases/delete.mdx | 41 - .../content/docs/commands/aliases/index.mdx | 54 - .../content/docs/commands/aliases/list.mdx | 50 - .../content/docs/commands/aliases/read.mdx | 41 - .../content/docs/commands/aliases/update.mdx | 81 - .../commands/auth-methods/change-state.mdx | 138 - .../docs/commands/auth-methods/create.mdx | 298 - .../docs/commands/auth-methods/delete.mdx | 41 - .../docs/commands/auth-methods/index.mdx | 114 - .../docs/commands/auth-methods/list.mdx | 110 - .../docs/commands/auth-methods/read.mdx | 86 - .../docs/commands/auth-methods/update.mdx | 313 - .../docs/commands/auth-tokens/delete.mdx | 43 - .../docs/commands/auth-tokens/index.mdx | 80 - .../docs/commands/auth-tokens/list.mdx | 99 - .../docs/commands/auth-tokens/read.mdx | 70 - .../docs/commands/authenticate/index.mdx | 69 - .../docs/commands/authenticate/ldap.mdx | 53 - .../docs/commands/authenticate/oidc.mdx | 68 - .../docs/commands/authenticate/password.mdx | 69 - .../content/docs/commands/billing/index.mdx | 50 - .../commands/billing/monthly-active-users.mdx | 51 - .../content/docs/commands/cache/add-token.mdx | 79 - website/content/docs/commands/cache/index.mdx | 48 - website/content/docs/commands/cache/start.mdx | 54 - .../content/docs/commands/cache/status.mdx | 57 - website/content/docs/commands/cache/stop.mdx | 37 - .../docs/commands/client-agent/index.mdx | 64 - .../docs/commands/client-agent/pause.mdx | 43 - .../docs/commands/client-agent/resume.mdx | 44 - .../docs/commands/client-agent/sessions.mdx | 42 - .../docs/commands/client-agent/status.mdx | 44 - .../docs/commands/config/autocomplete.mdx | 58 - .../content/docs/commands/config/decrypt.mdx | 70 - .../content/docs/commands/config/encrypt.mdx | 71 - .../docs/commands/config/get-token.mdx | 97 - .../content/docs/commands/config/index.mdx | 65 - .../docs/commands/connect/cassandra.mdx | 74 - .../content/docs/commands/connect/http.mdx | 69 - .../content/docs/commands/connect/index.mdx | 104 - .../content/docs/commands/connect/kube.mdx | 63 - .../content/docs/commands/connect/mongo.mdx | 90 - .../content/docs/commands/connect/mysql.mdx | 79 - .../docs/commands/connect/postgres.mdx | 74 - website/content/docs/commands/connect/rdp.mdx | 62 - .../content/docs/commands/connect/redis.mdx | 66 - website/content/docs/commands/connect/ssh.mdx | 99 - .../commands/credential-libraries/create.mdx | 202 - .../commands/credential-libraries/delete.mdx | 42 - .../commands/credential-libraries/index.mdx | 94 - .../commands/credential-libraries/list.mdx | 73 - .../commands/credential-libraries/read.mdx | 76 - .../commands/credential-libraries/update.mdx | 200 - .../commands/credential-stores/create.mdx | 161 - .../commands/credential-stores/delete.mdx | 43 - .../docs/commands/credential-stores/index.mdx | 75 - .../docs/commands/credential-stores/list.mdx | 74 - .../docs/commands/credential-stores/read.mdx | 78 - .../commands/credential-stores/update.mdx | 164 - .../docs/commands/credentials/create.mdx | 252 - .../docs/commands/credentials/delete.mdx | 42 - .../docs/commands/credentials/index.mdx | 94 - .../docs/commands/credentials/list.mdx | 92 - .../docs/commands/credentials/read.mdx | 75 - .../docs/commands/credentials/update.mdx | 252 - .../content/docs/commands/database/index.mdx | 59 - .../content/docs/commands/database/init.mdx | 135 - .../docs/commands/database/migrate.mdx | 64 - website/content/docs/commands/delete.mdx | 46 - website/content/docs/commands/dev.mdx | 262 - .../docs/commands/groups/add-members.mdx | 80 - .../content/docs/commands/groups/create.mdx | 80 - .../content/docs/commands/groups/delete.mdx | 44 - .../content/docs/commands/groups/index.mdx | 97 - website/content/docs/commands/groups/list.mdx | 104 - website/content/docs/commands/groups/read.mdx | 78 - .../docs/commands/groups/remove-members.mdx | 81 - .../docs/commands/groups/set-members.mdx | 85 - .../content/docs/commands/groups/update.mdx | 96 - .../docs/commands/host-catalogs/create.mdx | 158 - .../docs/commands/host-catalogs/delete.mdx | 41 - .../docs/commands/host-catalogs/index.mdx | 51 - .../docs/commands/host-catalogs/list.mdx | 55 - .../docs/commands/host-catalogs/read.mdx | 41 - .../docs/commands/host-catalogs/update.mdx | 155 - .../docs/commands/host-sets/add-hosts.mdx | 45 - .../docs/commands/host-sets/create.mdx | 146 - .../docs/commands/host-sets/delete.mdx | 41 - .../content/docs/commands/host-sets/index.mdx | 57 - .../content/docs/commands/host-sets/list.mdx | 52 - .../content/docs/commands/host-sets/read.mdx | 41 - .../docs/commands/host-sets/remove-hosts.mdx | 45 - .../docs/commands/host-sets/set-hosts.mdx | 45 - .../docs/commands/host-sets/update.mdx | 148 - .../content/docs/commands/hosts/create.mdx | 75 - .../content/docs/commands/hosts/delete.mdx | 41 - website/content/docs/commands/hosts/index.mdx | 51 - website/content/docs/commands/hosts/list.mdx | 52 - website/content/docs/commands/hosts/read.mdx | 41 - .../content/docs/commands/hosts/update.mdx | 76 - website/content/docs/commands/index.mdx | 433 - website/content/docs/commands/logout.mdx | 58 - .../docs/commands/managed-groups/create.mdx | 115 - .../docs/commands/managed-groups/delete.mdx | 41 - .../docs/commands/managed-groups/index.mdx | 51 - .../docs/commands/managed-groups/list.mdx | 52 - .../docs/commands/managed-groups/read.mdx | 41 - .../docs/commands/managed-groups/update.mdx | 117 - .../content/docs/commands/policies/create.mdx | 66 - .../content/docs/commands/policies/delete.mdx | 43 - .../content/docs/commands/policies/index.mdx | 56 - .../content/docs/commands/policies/list.mdx | 52 - .../content/docs/commands/policies/read.mdx | 43 - .../content/docs/commands/policies/update.mdx | 66 - website/content/docs/commands/read.mdx | 46 - .../docs/commands/roles/add-grant-scopes.mdx | 53 - .../docs/commands/roles/add-grants.mdx | 51 - .../docs/commands/roles/add-principals.mdx | 48 - .../content/docs/commands/roles/create.mdx | 45 - .../content/docs/commands/roles/delete.mdx | 41 - website/content/docs/commands/roles/index.mdx | 69 - website/content/docs/commands/roles/list.mdx | 56 - website/content/docs/commands/roles/read.mdx | 41 - .../commands/roles/remove-grant-scopes.mdx | 54 - .../docs/commands/roles/remove-grants.mdx | 51 - .../docs/commands/roles/remove-principals.mdx | 48 - .../docs/commands/roles/set-grant-scopes.mdx | 53 - .../docs/commands/roles/set-grants.mdx | 52 - .../docs/commands/roles/set-principals.mdx | 48 - .../content/docs/commands/roles/update.mdx | 45 - .../content/docs/commands/scopes/create.mdx | 49 - .../content/docs/commands/scopes/delete.mdx | 41 - .../commands/scopes/destroy-key-version.mdx | 45 - .../content/docs/commands/scopes/index.mdx | 59 - .../list-key-version-destruction-jobs.mdx | 42 - .../docs/commands/scopes/list-keys.mdx | 41 - website/content/docs/commands/scopes/list.mdx | 56 - website/content/docs/commands/scopes/read.mdx | 41 - .../docs/commands/scopes/rotate-keys.mdx | 43 - .../content/docs/commands/scopes/update.mdx | 48 - .../content/docs/commands/search/index.mdx | 111 - website/content/docs/commands/server.mdx | 89 - .../commands/session-recordings/delete.mdx | 43 - .../commands/session-recordings/download.mdx | 50 - .../commands/session-recordings/index.mdx | 53 - .../docs/commands/session-recordings/list.mdx | 54 - .../docs/commands/session-recordings/read.mdx | 43 - .../reapply-storage-policy.mdx | 43 - .../content/docs/commands/sessions/cancel.mdx | 42 - .../content/docs/commands/sessions/index.mdx | 47 - .../content/docs/commands/sessions/list.mdx | 60 - .../content/docs/commands/sessions/read.mdx | 41 - .../docs/commands/storage-buckets/create.mdx | 46 - .../docs/commands/storage-buckets/delete.mdx | 43 - .../docs/commands/storage-buckets/index.mdx | 53 - .../docs/commands/storage-buckets/list.mdx | 58 - .../docs/commands/storage-buckets/read.mdx | 43 - .../docs/commands/storage-buckets/update.mdx | 93 - .../targets/add-credential-sources.mdx | 51 - .../commands/targets/add-host-sources.mdx | 45 - .../commands/targets/authorize-session.mdx | 58 - .../content/docs/commands/targets/create.mdx | 192 - .../content/docs/commands/targets/delete.mdx | 41 - .../content/docs/commands/targets/index.mdx | 67 - .../content/docs/commands/targets/list.mdx | 56 - .../content/docs/commands/targets/read.mdx | 41 - .../targets/remove-credential-sources.mdx | 49 - .../commands/targets/remove-host-sources.mdx | 45 - .../targets/set-credential-sources.mdx | 52 - .../commands/targets/set-host-sources.mdx | 45 - .../content/docs/commands/targets/update.mdx | 175 - website/content/docs/commands/update.mdx | 46 - .../docs/commands/users/add-accounts.mdx | 45 - .../content/docs/commands/users/create.mdx | 45 - .../content/docs/commands/users/delete.mdx | 41 - website/content/docs/commands/users/index.mdx | 59 - website/content/docs/commands/users/list.mdx | 55 - website/content/docs/commands/users/read.mdx | 41 - .../docs/commands/users/remove-accounts.mdx | 45 - .../docs/commands/users/set-accounts.mdx | 45 - .../content/docs/commands/users/update.mdx | 45 - .../docs/commands/workers/add-worker-tags.mdx | 45 - .../workers/certificate-authority.mdx | 84 - .../content/docs/commands/workers/create.mdx | 116 - .../content/docs/commands/workers/delete.mdx | 41 - .../content/docs/commands/workers/index.mdx | 61 - .../content/docs/commands/workers/list.mdx | 49 - .../content/docs/commands/workers/read.mdx | 41 - .../commands/workers/remove-worker-tags.mdx | 45 - .../docs/commands/workers/set-worker-tags.mdx | 45 - .../content/docs/commands/workers/update.mdx | 45 - .../content/docs/common-workflows/index.mdx | 16 - .../docs/common-workflows/manage-scopes.mdx | 154 - .../docs/common-workflows/manage-sessions.mdx | 206 - .../docs/common-workflows/manage-targets.mdx | 245 - website/content/docs/community/index.mdx | 37 - website/content/docs/concepts/aliases.mdx | 37 - website/content/docs/concepts/auditing.mdx | 48 - .../docs/concepts/credential-management.mdx | 152 - website/content/docs/concepts/iam.mdx | 120 - .../docs/concepts/transparent-sessions.mdx | 38 - website/content/docs/concepts/workers.mdx | 88 - .../content/docs/configuration/controller.mdx | 348 - .../events/common-sink-parameters.mdx | 27 - .../docs/configuration/events/file-sink.mdx | 23 - .../docs/configuration/events/index.mdx | 19 - .../docs/configuration/events/stderr-sink.mdx | 23 - website/content/docs/configuration/index.mdx | 111 - .../content/docs/configuration/kms/aead.mdx | 38 - .../docs/configuration/kms/alicloudkms.mdx | 85 - .../content/docs/configuration/kms/awskms.mdx | 127 - .../docs/configuration/kms/azurekeyvault.mdx | 76 - .../docs/configuration/kms/gcpckms.mdx | 75 - .../content/docs/configuration/kms/index.mdx | 46 - .../content/docs/configuration/kms/ocikms.mdx | 106 - .../docs/configuration/kms/transit.mdx | 121 - .../docs/configuration/listeners/index.mdx | 22 - .../configuration/listeners/tcp-listeners.mdx | 60 - .../listeners/unix-listeners.mdx | 50 - .../content/docs/configuration/plugins.mdx | 31 - .../content/docs/configuration/workers.mdx | 21 - .../configure-credential-brokering.mdx | 83 - .../configure-credential-injection.mdx | 99 - website/content/docs/credentials/index.mdx | 72 - .../rdp-testing-and-compatibility-matrix.mdx | 208 - .../docs/credentials/static-cred-boundary.mdx | 131 - .../docs/credentials/static-cred-vault.mdx | 114 - .../self-managed/configure-controllers.mdx | 355 - .../deploy/self-managed/deploy-workers.mdx | 283 - .../docs/deploy/self-managed/index.mdx | 56 - .../docs/deploy/self-managed/initialize.mdx | 473 - .../deploy/self-managed/install-clients.mdx | 64 - .../docs/deploy/self-managed/install.mdx | 199 - .../docs/deploy/self-managed/systemd.mdx | 95 - .../docs/deploy/terraform-patterns/index.mdx | 69 - ...form-credentials-and-credential-stores.mdx | 204 - .../terraform-groups-and-rbac.mdx | 105 - .../terraform-hosts-and-host-management.mdx | 159 - .../terraform-patterns/terraform-scopes.mdx | 64 - .../terraform-session-recording.mdx | 93 - .../terraform-patterns/terraform-targets.mdx | 130 - .../terraform-users-and-auth-methods.mdx | 111 - website/content/docs/developing/building.mdx | 47 - website/content/docs/developing/index.mdx | 16 - website/content/docs/developing/ui.mdx | 27 - .../content/docs/domain-model/accounts.mdx | 85 - website/content/docs/domain-model/aliases.mdx | 41 - .../docs/domain-model/auth-methods.mdx | 231 - .../domain-model/credential-libraries.mdx | 161 - .../docs/domain-model/credential-stores.mdx | 221 - .../content/docs/domain-model/credentials.mdx | 99 - website/content/docs/domain-model/groups.mdx | 62 - .../docs/domain-model/host-catalogs.mdx | 57 - .../content/docs/domain-model/host-sets.mdx | 70 - website/content/docs/domain-model/hosts.mdx | 59 - website/content/docs/domain-model/index.mdx | 229 - .../docs/domain-model/managed-groups.mdx | 76 - website/content/docs/domain-model/roles.mdx | 57 - website/content/docs/domain-model/scopes.mdx | 152 - .../docs/domain-model/session-connections.mdx | 32 - .../docs/domain-model/session-recordings.mdx | 122 - .../content/docs/domain-model/sessions.mdx | 113 - .../docs/domain-model/storage-buckets.mdx | 99 - .../docs/domain-model/storage-policy.mdx | 66 - website/content/docs/domain-model/targets.mdx | 196 - website/content/docs/domain-model/users.mdx | 65 - .../automated-license-reporting.mdx | 160 - website/content/docs/enterprise/index.mdx | 37 - website/content/docs/enterprise/licensing.mdx | 61 - .../docs/enterprise/supported-versions.mdx | 67 - website/content/docs/errors/index.mdx | 124 - website/content/docs/filtering/index.mdx | 205 - .../dev-mode/connect-to-dev-target.mdx | 133 - .../docs/getting-started/dev-mode/index.mdx | 76 - .../dev-mode/run-and-login.mdx | 123 - .../content/docs/getting-started/index.mdx | 50 - website/content/docs/go-sdk/index.mdx | 220 - .../hcp/get-started/connect-to-target.mdx | 138 - .../docs/hcp/get-started/deploy-and-login.mdx | 234 - website/content/docs/hcp/index.mdx | 22 - website/content/docs/hosts/aws.mdx | 399 - website/content/docs/hosts/azure.mdx | 205 - website/content/docs/hosts/gcp.mdx | 503 - website/content/docs/hosts/index.mdx | 70 - website/content/docs/index.mdx | 19 - .../docs/interoperability-matrix/index.mdx | 182 - .../content/docs/monitor/events/common.mdx | 27 - .../content/docs/monitor/events/events.mdx | 19 - website/content/docs/monitor/events/file.mdx | 23 - .../docs/monitor/events/filter-events.mdx | 99 - .../content/docs/monitor/events/stderr.mdx | 23 - website/content/docs/monitor/health.mdx | 138 - website/content/docs/monitor/index.mdx | 61 - .../content/docs/monitor/listeners/index.mdx | 22 - .../content/docs/monitor/listeners/tcp.mdx | 60 - .../content/docs/monitor/listeners/unix.mdx | 50 - website/content/docs/monitor/metrics.mdx | 108 - .../content/docs/overview/bastion-hosts.mdx | 37 - website/content/docs/overview/faq.mdx | 78 - website/content/docs/overview/pam.mdx | 36 - website/content/docs/overview/sdp.mdx | 17 - .../docs/overview/secrets-management.mdx | 29 - website/content/docs/overview/use-cases.mdx | 54 - website/content/docs/overview/vpn.mdx | 35 - website/content/docs/overview/zero-trust.mdx | 25 - .../docs/rbac/assignable-permissions.mdx | 109 - website/content/docs/rbac/index.mdx | 90 - website/content/docs/rbac/manage-roles.mdx | 424 - .../docs/rbac/permission-grant-formats.mdx | 163 - .../docs/rbac/users/manage-users-groups.mdx | 324 - .../docs/rbac/users/managed-groups.mdx | 171 - .../content/docs/release-notes/v0_10_0.mdx | 54 - .../content/docs/release-notes/v0_11_0.mdx | 43 - .../content/docs/release-notes/v0_12_0.mdx | 111 - .../content/docs/release-notes/v0_13_0.mdx | 159 - .../content/docs/release-notes/v0_14_0.mdx | 394 - .../content/docs/release-notes/v0_15_0.mdx | 385 - .../content/docs/release-notes/v0_16_0.mdx | 392 - .../content/docs/release-notes/v0_17_0.mdx | 337 - .../content/docs/release-notes/v0_18_0.mdx | 353 - .../content/docs/release-notes/v0_19_0.mdx | 460 - website/content/docs/release-notes/v0_1_0.mdx | 28 - .../content/docs/release-notes/v0_20_0.mdx | 217 - website/content/docs/release-notes/v0_2_0.mdx | 50 - website/content/docs/release-notes/v0_3_0.mdx | 29 - website/content/docs/release-notes/v0_4_0.mdx | 31 - website/content/docs/release-notes/v0_5_0.mdx | 34 - website/content/docs/release-notes/v0_6_0.mdx | 31 - website/content/docs/release-notes/v0_7_0.mdx | 33 - website/content/docs/release-notes/v0_8_0.mdx | 37 - website/content/docs/release-notes/v0_9_0.mdx | 46 - .../secure/encryption/connections-tls.mdx | 315 - .../secure/encryption/data-encryption.mdx | 196 - .../content/docs/secure/security-model.mdx | 147 - .../compliance/configure-storage-policy.mdx | 704 - .../compliance/update-storage-policy.mdx | 355 - .../compliance/validate-data-store.mdx | 24 - .../validate-session-recordings.mdx | 68 - .../configure-worker-storage.mdx | 120 - .../configuration/create-storage-bucket.mdx | 490 - .../enable-session-recording.mdx | 121 - .../manage-recorded-sessions.mdx | 107 - .../storage-providers/configure-minio.mdx | 120 - .../configure-s3-compliant.mdx | 119 - .../storage-providers/configure-s3.mdx | 136 - .../troubleshoot-recorded-sessions.mdx | 47 - .../data/bsr-file-structure.mdx | 276 - .../session-recording/data/read-bsr-file.mdx | 36 - .../content/docs/session-recording/index.mdx | 176 - .../configure-transparent-sessions.mdx | 84 - .../configuration/create-target-alias.mdx | 710 - .../docs/targets/configuration/index.mdx | 88 - .../targets/connections/connect-helpers.mdx | 229 - .../connections/connect-target-alias.mdx | 35 - .../docs/targets/connections/exec-flag.mdx | 87 - .../docs/targets/connections/index.mdx | 83 - .../connections/transparent-sessions.mdx | 78 - .../connections/workflow-ssh-proxycommand.mdx | 142 - website/content/docs/vault/index.mdx | 113 - website/content/docs/what-is-boundary.mdx | 88 - website/content/docs/workers/create.mdx | 15 - website/content/docs/workers/filters.mdx | 172 - website/content/docs/workers/index.mdx | 128 - .../docs/workers/multi-hop/enterprise.mdx | 35 - .../content/docs/workers/multi-hop/hcp.mdx | 70 - .../content/docs/workers/multi-hop/index.mdx | 111 - website/content/docs/workers/registration.mdx | 202 - website/content/docs/workers/worker-tags.mdx | 400 - website/content/partials/alerts/beta.mdx | 6 - .../partials/alerts/enterprise-only.mdx | 1 - .../partials/cmd-connect-command-options.mdx | 31 - .../content/partials/cmd-connect-env-vars.mdx | 10 - website/content/partials/cmd-option-note.mdx | 11 - .../events/common-audit_config-examples.mdx | 32 - .../events/common-audit_config-parameters.mdx | 2 - ...mmon-audit_filter_overrides-parameters.mdx | 5 - .../events/common-sink-intro.mdx | 29 - .../events/default-events-stanza.mdx | 15 - .../events/events-stanza-intro.mdx | 40 - .../events/file-parameters.mdx | 13 - .../events/file-sink-intro.mdx | 18 - .../events/stderr-intro.mdx | 11 - .../events/stderr-parameters.mdx | 1 - .../listeners/listener-purpose.mdx | 24 - ...configure-custom-http-response-headers.mdx | 83 - .../listeners/tcp-configure-tls.mdx | 9 - .../tcp-custom-api-response-headers.mdx | 18 - .../listeners/tcp-custom-response-headers.mdx | 13 - .../tcp-custom-ui-response-headers.mdx | 18 - .../listeners/tcp-general-parameters.mdx | 58 - .../listeners/tcp-intro.mdx | 12 - .../tcp-listen-on-mulitple-interfaces.mdx | 17 - .../listeners/tcp-telemetry.mdx | 2 - .../listeners/tcp-tls.mdx | 69 - .../listeners/unix-configure-tls.mdx | 10 - .../listeners/unix-general-parameters.mdx | 57 - .../listeners/unix-intro.mdx | 15 - .../unix-listen-on-multiple-interfaces.mdx | 13 - .../listeners/unix-telemetry.mdx | 2 - .../listeners/unix-tls-parameters.mdx | 70 - .../workers/common-worker-parameters.mdx | 78 - .../complete-configuration-example.mdx | 43 - .../content/partials/release-notes/intro.mdx | 4 - .../partials/workers/egress-worker-config.mdx | 102 - .../workers/ingress-worker-config.mdx | 66 - .../workers/intermediate-worker-config.mdx | 66 - .../partials/workers/single-worker-config.mdx | 102 - website/content/security.mdx | 28 - website/data/docs-nav-data.json | 2237 --- website/package-lock.json | 13833 ---------------- website/package.json | 30 - website/prettier.config.js | 3 - website/public/_favicon.ico | Bin 15086 -> 0 bytes .../data/vault/boundary-controller-policy.hcl | 40 - website/public/files/press-kit.zip | Bin 191102 -> 0 bytes website/public/ie-warning.js | 36 - .../api-pagination/pagination-workflow.png | Bin 27883 -> 0 bytes website/public/img/architecture-overview.png | Bin 170680 -> 0 bytes .../img/boundary-core-workflow_dark.png | Bin 56035 -> 0 bytes .../img/boundary-core-workflow_light.png | Bin 56157 -> 0 bytes .../img/boundary-domain-model-overview.jpg | Bin 366610 -> 0 bytes website/public/img/boundary-network_dark.png | Bin 84873 -> 0 bytes website/public/img/boundary-network_light.png | Bin 84612 -> 0 bytes website/public/img/boundary.png | Bin 178107 -> 0 bytes website/public/img/brokered-creds-ui.png | Bin 61484 -> 0 bytes website/public/img/component-relationship.png | Bin 221270 -> 0 bytes website/public/img/concepts-multihop.png | Bin 38000 -> 0 bytes website/public/img/credential-brokering.png | Bin 22726 -> 0 bytes website/public/img/credential-injection.png | Bin 19811 -> 0 bytes website/public/img/cta-bg.svg | 22 - .../desktop/macos/boundary-desktop-active.png | Bin 254504 -> 0 bytes .../macos/boundary-desktop-connect.png | Bin 371910 -> 0 bytes .../boundary-desktop-drag-to-install.png | Bin 471360 -> 0 bytes .../macos/boundary-desktop-landing.png | Bin 375875 -> 0 bytes .../desktop/macos/boundary-desktop-login.png | Bin 395254 -> 0 bytes .../desktop/macos/boundary-desktop-open.png | Bin 3031710 -> 0 bytes .../desktop/macos/boundary-desktop-origin.png | Bin 386234 -> 0 bytes .../macos/boundary-desktop-pending.png | Bin 262973 -> 0 bytes .../macos/boundary-desktop-terminated.png | Bin 250378 -> 0 bytes .../windows/boundary-desktop-active.png | Bin 33642 -> 0 bytes .../windows/boundary-desktop-connect.png | Bin 42191 -> 0 bytes .../windows/boundary-desktop-landing.png | Bin 35192 -> 0 bytes .../windows/boundary-desktop-login.png | Bin 53761 -> 0 bytes .../desktop/windows/boundary-desktop-open.png | Bin 106938 -> 0 bytes .../windows/boundary-desktop-origin.png | Bin 47860 -> 0 bytes .../windows/boundary-desktop-pending.png | Bin 33600 -> 0 bytes .../windows/boundary-desktop-terminated.png | Bin 31038 -> 0 bytes website/public/img/hcp-deploy-form.png | Bin 143676 -> 0 bytes website/public/img/hero-pattern.svg | 56 - .../public/img/how-boundary-works_dark.png | Bin 18197 -> 0 bytes .../public/img/how-boundary-works_light.png | Bin 17832 -> 0 bytes website/public/img/iam-example-structure.png | Bin 196110 -> 0 bytes website/public/img/inject-creds.png | Bin 233777 -> 0 bytes website/public/img/login-dev-mode.png | Bin 133746 -> 0 bytes website/public/img/manage-id-acct-defined.png | Bin 263462 -> 0 bytes .../public/img/manage-id-acct-settings.png | Bin 247102 -> 0 bytes .../public/img/manage-id-acct-undefined.png | Bin 274887 -> 0 bytes .../img/manage-id-auth-method-defined.png | Bin 248510 -> 0 bytes .../img/manage-id-auth-method-setting.png | Bin 268440 -> 0 bytes .../img/manage-id-auth-method-undefined.png | Bin 251780 -> 0 bytes website/public/img/manage-id-login.png | Bin 157371 -> 0 bytes website/public/img/manage-id-user-defined.png | Bin 302048 -> 0 bytes .../public/img/manage-id-user-settings.png | Bin 212014 -> 0 bytes .../public/img/manage-id-user-undefined.png | Bin 304721 -> 0 bytes .../public/img/manage-scopes-org-defined.png | Bin 257447 -> 0 bytes .../public/img/manage-scopes-org-settings.png | Bin 187728 -> 0 bytes .../img/manage-scopes-org-undefined.png | Bin 249526 -> 0 bytes .../img/manage-scopes-project-defined.png | Bin 288790 -> 0 bytes .../img/manage-scopes-project-settings.png | Bin 214400 -> 0 bytes .../img/manage-scopes-project-undefined.png | Bin 307615 -> 0 bytes .../img/manage-targets-host-undefined.png | Bin 277586 -> 0 bytes .../public/img/manage-targets-new-host-2.png | Bin 284786 -> 0 bytes .../img/manage-targets-new-host-defined.png | Bin 296088 -> 0 bytes .../manage-targets-new-host-set-defined.png | Bin 293654 -> 0 bytes .../manage-targets-new-host-set-settings.png | Bin 253120 -> 0 bytes .../manage-targets-new-host-set-undefined.png | Bin 296147 -> 0 bytes .../public/img/manage-targets-new-host.png | Bin 293337 -> 0 bytes .../img/manage-targets-new-target-defined.png | Bin 315592 -> 0 bytes .../img/manage-targets-new-target-project.png | Bin 293398 -> 0 bytes .../manage-targets-new-target-settings.png | Bin 276447 -> 0 bytes .../manage-targets-new-target-undefined.png | Bin 301057 -> 0 bytes website/public/img/multi-hop-workers.png | Bin 57815 -> 0 bytes website/public/img/og-image.png | Bin 30761 -> 0 bytes website/public/img/quick-start-targets.png | Bin 62846 -> 0 bytes .../security-model/boundary-architecture.png | Bin 106032 -> 0 bytes .../img/security-model/data-at-rest.png | Bin 46938 -> 0 bytes .../img/security-model/data-in-transit.png | Bin 72792 -> 0 bytes .../img/setup-wizard-address-target.png | Bin 69799 -> 0 bytes website/public/img/setup-wizard.png | Bin 48927 -> 0 bytes website/public/img/single-region.png | Bin 47506 -> 0 bytes website/public/img/ui/add-role-grant_dark.png | Bin 64041 -> 0 bytes .../public/img/ui/add-role-grant_light.png | Bin 63027 -> 0 bytes .../public/img/ui/add-role-principal_dark.png | Bin 71980 -> 0 bytes .../img/ui/add-role-principal_light.png | Bin 69993 -> 0 bytes .../public/img/ui/add-role-scopes_dark.png | Bin 75157 -> 0 bytes .../public/img/ui/add-role-scopes_light.png | Bin 74388 -> 0 bytes .../img/ui/enable-session-recording_dark.png | Bin 130980 -> 0 bytes .../img/ui/enable-session-recording_light.png | Bin 130457 -> 0 bytes .../img/ui/multi-hop-egress-filter_dark.png | Bin 136499 -> 0 bytes .../img/ui/multi-hop-egress-filter_light.png | Bin 135740 -> 0 bytes website/public/img/ui/new-role_dark.png | Bin 70373 -> 0 bytes website/public/img/ui/new-role_light.png | Bin 68689 -> 0 bytes .../img/ui/session-rec-worker-filter_dark.png | Bin 211751 -> 0 bytes .../ui/session-rec-worker-filter_light.png | Bin 213695 -> 0 bytes .../ui/target-ingress-worker-filter_dark.png | Bin 147055 -> 0 bytes .../ui/target-ingress-worker-filter_light.png | Bin 126504 -> 0 bytes .../img/ui/vault-worker-filter_dark.png | Bin 78196 -> 0 bytes .../img/ui/vault-worker-filter_light.png | Bin 77471 -> 0 bytes .../public/img/ui/worker-tags-api_dark.png | Bin 61304 -> 0 bytes .../public/img/ui/worker-tags-api_light.png | Bin 59647 -> 0 bytes .../public/img/ui/worker-tags-config_dark.png | Bin 56278 -> 0 bytes .../img/ui/worker-tags-config_light.png | Bin 54605 -> 0 bytes website/public/img/worker-deployment.png | Bin 129158 -> 0 bytes website/public/img/worker-tags.png | Bin 29916 -> 0 bytes website/redirects.js | 3290 ---- website/scripts/should-build.sh | 21 - website/scripts/website-build.sh | 55 - website/scripts/website-start.sh | 47 - website/vercel.json | 7 - 553 files changed, 61489 deletions(-) delete mode 100644 website/.editorconfig delete mode 100644 website/.env delete mode 100644 website/.env.production delete mode 100644 website/.eslintrc.js delete mode 100644 website/.gitignore delete mode 100644 website/.nvmrc delete mode 100644 website/.stylelintrc.js delete mode 100644 website/LICENSE delete mode 100644 website/Makefile delete mode 100644 website/README.md delete mode 100644 website/content/docs/api-clients/desktop.mdx delete mode 100644 website/content/docs/api-clients/index.mdx delete mode 100644 website/content/docs/api/index.mdx delete mode 100644 website/content/docs/api/pagination.mdx delete mode 100644 website/content/docs/api/rate-limiting.mdx delete mode 100644 website/content/docs/architecture/fault-tolerance.mdx delete mode 100644 website/content/docs/architecture/high-availability.mdx delete mode 100644 website/content/docs/architecture/recommended-architecture.mdx delete mode 100644 website/content/docs/architecture/system-requirements.mdx delete mode 100644 website/content/docs/client-agent/configuration.mdx delete mode 100644 website/content/docs/client-agent/conflicting-software.mdx delete mode 100644 website/content/docs/client-agent/index.mdx delete mode 100644 website/content/docs/client-agent/manage.mdx delete mode 100644 website/content/docs/client-agent/troubleshoot.mdx delete mode 100644 website/content/docs/client-cache/index.mdx delete mode 100644 website/content/docs/commands/accounts/change-password.mdx delete mode 100644 website/content/docs/commands/accounts/create.mdx delete mode 100644 website/content/docs/commands/accounts/delete.mdx delete mode 100644 website/content/docs/commands/accounts/index.mdx delete mode 100644 website/content/docs/commands/accounts/list.mdx delete mode 100644 website/content/docs/commands/accounts/read.mdx delete mode 100644 website/content/docs/commands/accounts/set-password.mdx delete mode 100644 website/content/docs/commands/accounts/update.mdx delete mode 100644 website/content/docs/commands/aliases/create.mdx delete mode 100644 website/content/docs/commands/aliases/delete.mdx delete mode 100644 website/content/docs/commands/aliases/index.mdx delete mode 100644 website/content/docs/commands/aliases/list.mdx delete mode 100644 website/content/docs/commands/aliases/read.mdx delete mode 100644 website/content/docs/commands/aliases/update.mdx delete mode 100644 website/content/docs/commands/auth-methods/change-state.mdx delete mode 100644 website/content/docs/commands/auth-methods/create.mdx delete mode 100644 website/content/docs/commands/auth-methods/delete.mdx delete mode 100644 website/content/docs/commands/auth-methods/index.mdx delete mode 100644 website/content/docs/commands/auth-methods/list.mdx delete mode 100644 website/content/docs/commands/auth-methods/read.mdx delete mode 100644 website/content/docs/commands/auth-methods/update.mdx delete mode 100644 website/content/docs/commands/auth-tokens/delete.mdx delete mode 100644 website/content/docs/commands/auth-tokens/index.mdx delete mode 100644 website/content/docs/commands/auth-tokens/list.mdx delete mode 100644 website/content/docs/commands/auth-tokens/read.mdx delete mode 100644 website/content/docs/commands/authenticate/index.mdx delete mode 100644 website/content/docs/commands/authenticate/ldap.mdx delete mode 100644 website/content/docs/commands/authenticate/oidc.mdx delete mode 100644 website/content/docs/commands/authenticate/password.mdx delete mode 100644 website/content/docs/commands/billing/index.mdx delete mode 100644 website/content/docs/commands/billing/monthly-active-users.mdx delete mode 100644 website/content/docs/commands/cache/add-token.mdx delete mode 100644 website/content/docs/commands/cache/index.mdx delete mode 100644 website/content/docs/commands/cache/start.mdx delete mode 100644 website/content/docs/commands/cache/status.mdx delete mode 100644 website/content/docs/commands/cache/stop.mdx delete mode 100644 website/content/docs/commands/client-agent/index.mdx delete mode 100644 website/content/docs/commands/client-agent/pause.mdx delete mode 100644 website/content/docs/commands/client-agent/resume.mdx delete mode 100644 website/content/docs/commands/client-agent/sessions.mdx delete mode 100644 website/content/docs/commands/client-agent/status.mdx delete mode 100644 website/content/docs/commands/config/autocomplete.mdx delete mode 100644 website/content/docs/commands/config/decrypt.mdx delete mode 100644 website/content/docs/commands/config/encrypt.mdx delete mode 100644 website/content/docs/commands/config/get-token.mdx delete mode 100644 website/content/docs/commands/config/index.mdx delete mode 100644 website/content/docs/commands/connect/cassandra.mdx delete mode 100644 website/content/docs/commands/connect/http.mdx delete mode 100644 website/content/docs/commands/connect/index.mdx delete mode 100644 website/content/docs/commands/connect/kube.mdx delete mode 100644 website/content/docs/commands/connect/mongo.mdx delete mode 100644 website/content/docs/commands/connect/mysql.mdx delete mode 100644 website/content/docs/commands/connect/postgres.mdx delete mode 100644 website/content/docs/commands/connect/rdp.mdx delete mode 100644 website/content/docs/commands/connect/redis.mdx delete mode 100644 website/content/docs/commands/connect/ssh.mdx delete mode 100644 website/content/docs/commands/credential-libraries/create.mdx delete mode 100644 website/content/docs/commands/credential-libraries/delete.mdx delete mode 100644 website/content/docs/commands/credential-libraries/index.mdx delete mode 100644 website/content/docs/commands/credential-libraries/list.mdx delete mode 100644 website/content/docs/commands/credential-libraries/read.mdx delete mode 100644 website/content/docs/commands/credential-libraries/update.mdx delete mode 100644 website/content/docs/commands/credential-stores/create.mdx delete mode 100644 website/content/docs/commands/credential-stores/delete.mdx delete mode 100644 website/content/docs/commands/credential-stores/index.mdx delete mode 100644 website/content/docs/commands/credential-stores/list.mdx delete mode 100644 website/content/docs/commands/credential-stores/read.mdx delete mode 100644 website/content/docs/commands/credential-stores/update.mdx delete mode 100644 website/content/docs/commands/credentials/create.mdx delete mode 100644 website/content/docs/commands/credentials/delete.mdx delete mode 100644 website/content/docs/commands/credentials/index.mdx delete mode 100644 website/content/docs/commands/credentials/list.mdx delete mode 100644 website/content/docs/commands/credentials/read.mdx delete mode 100644 website/content/docs/commands/credentials/update.mdx delete mode 100644 website/content/docs/commands/database/index.mdx delete mode 100644 website/content/docs/commands/database/init.mdx delete mode 100644 website/content/docs/commands/database/migrate.mdx delete mode 100644 website/content/docs/commands/delete.mdx delete mode 100644 website/content/docs/commands/dev.mdx delete mode 100644 website/content/docs/commands/groups/add-members.mdx delete mode 100644 website/content/docs/commands/groups/create.mdx delete mode 100644 website/content/docs/commands/groups/delete.mdx delete mode 100644 website/content/docs/commands/groups/index.mdx delete mode 100644 website/content/docs/commands/groups/list.mdx delete mode 100644 website/content/docs/commands/groups/read.mdx delete mode 100644 website/content/docs/commands/groups/remove-members.mdx delete mode 100644 website/content/docs/commands/groups/set-members.mdx delete mode 100644 website/content/docs/commands/groups/update.mdx delete mode 100644 website/content/docs/commands/host-catalogs/create.mdx delete mode 100644 website/content/docs/commands/host-catalogs/delete.mdx delete mode 100644 website/content/docs/commands/host-catalogs/index.mdx delete mode 100644 website/content/docs/commands/host-catalogs/list.mdx delete mode 100644 website/content/docs/commands/host-catalogs/read.mdx delete mode 100644 website/content/docs/commands/host-catalogs/update.mdx delete mode 100644 website/content/docs/commands/host-sets/add-hosts.mdx delete mode 100644 website/content/docs/commands/host-sets/create.mdx delete mode 100644 website/content/docs/commands/host-sets/delete.mdx delete mode 100644 website/content/docs/commands/host-sets/index.mdx delete mode 100644 website/content/docs/commands/host-sets/list.mdx delete mode 100644 website/content/docs/commands/host-sets/read.mdx delete mode 100644 website/content/docs/commands/host-sets/remove-hosts.mdx delete mode 100644 website/content/docs/commands/host-sets/set-hosts.mdx delete mode 100644 website/content/docs/commands/host-sets/update.mdx delete mode 100644 website/content/docs/commands/hosts/create.mdx delete mode 100644 website/content/docs/commands/hosts/delete.mdx delete mode 100644 website/content/docs/commands/hosts/index.mdx delete mode 100644 website/content/docs/commands/hosts/list.mdx delete mode 100644 website/content/docs/commands/hosts/read.mdx delete mode 100644 website/content/docs/commands/hosts/update.mdx delete mode 100644 website/content/docs/commands/index.mdx delete mode 100644 website/content/docs/commands/logout.mdx delete mode 100644 website/content/docs/commands/managed-groups/create.mdx delete mode 100644 website/content/docs/commands/managed-groups/delete.mdx delete mode 100644 website/content/docs/commands/managed-groups/index.mdx delete mode 100644 website/content/docs/commands/managed-groups/list.mdx delete mode 100644 website/content/docs/commands/managed-groups/read.mdx delete mode 100644 website/content/docs/commands/managed-groups/update.mdx delete mode 100644 website/content/docs/commands/policies/create.mdx delete mode 100644 website/content/docs/commands/policies/delete.mdx delete mode 100644 website/content/docs/commands/policies/index.mdx delete mode 100644 website/content/docs/commands/policies/list.mdx delete mode 100644 website/content/docs/commands/policies/read.mdx delete mode 100644 website/content/docs/commands/policies/update.mdx delete mode 100644 website/content/docs/commands/read.mdx delete mode 100644 website/content/docs/commands/roles/add-grant-scopes.mdx delete mode 100644 website/content/docs/commands/roles/add-grants.mdx delete mode 100644 website/content/docs/commands/roles/add-principals.mdx delete mode 100644 website/content/docs/commands/roles/create.mdx delete mode 100644 website/content/docs/commands/roles/delete.mdx delete mode 100644 website/content/docs/commands/roles/index.mdx delete mode 100644 website/content/docs/commands/roles/list.mdx delete mode 100644 website/content/docs/commands/roles/read.mdx delete mode 100644 website/content/docs/commands/roles/remove-grant-scopes.mdx delete mode 100644 website/content/docs/commands/roles/remove-grants.mdx delete mode 100644 website/content/docs/commands/roles/remove-principals.mdx delete mode 100644 website/content/docs/commands/roles/set-grant-scopes.mdx delete mode 100644 website/content/docs/commands/roles/set-grants.mdx delete mode 100644 website/content/docs/commands/roles/set-principals.mdx delete mode 100644 website/content/docs/commands/roles/update.mdx delete mode 100644 website/content/docs/commands/scopes/create.mdx delete mode 100644 website/content/docs/commands/scopes/delete.mdx delete mode 100644 website/content/docs/commands/scopes/destroy-key-version.mdx delete mode 100644 website/content/docs/commands/scopes/index.mdx delete mode 100644 website/content/docs/commands/scopes/list-key-version-destruction-jobs.mdx delete mode 100644 website/content/docs/commands/scopes/list-keys.mdx delete mode 100644 website/content/docs/commands/scopes/list.mdx delete mode 100644 website/content/docs/commands/scopes/read.mdx delete mode 100644 website/content/docs/commands/scopes/rotate-keys.mdx delete mode 100644 website/content/docs/commands/scopes/update.mdx delete mode 100644 website/content/docs/commands/search/index.mdx delete mode 100644 website/content/docs/commands/server.mdx delete mode 100644 website/content/docs/commands/session-recordings/delete.mdx delete mode 100644 website/content/docs/commands/session-recordings/download.mdx delete mode 100644 website/content/docs/commands/session-recordings/index.mdx delete mode 100644 website/content/docs/commands/session-recordings/list.mdx delete mode 100644 website/content/docs/commands/session-recordings/read.mdx delete mode 100644 website/content/docs/commands/session-recordings/reapply-storage-policy.mdx delete mode 100644 website/content/docs/commands/sessions/cancel.mdx delete mode 100644 website/content/docs/commands/sessions/index.mdx delete mode 100644 website/content/docs/commands/sessions/list.mdx delete mode 100644 website/content/docs/commands/sessions/read.mdx delete mode 100644 website/content/docs/commands/storage-buckets/create.mdx delete mode 100644 website/content/docs/commands/storage-buckets/delete.mdx delete mode 100644 website/content/docs/commands/storage-buckets/index.mdx delete mode 100644 website/content/docs/commands/storage-buckets/list.mdx delete mode 100644 website/content/docs/commands/storage-buckets/read.mdx delete mode 100644 website/content/docs/commands/storage-buckets/update.mdx delete mode 100644 website/content/docs/commands/targets/add-credential-sources.mdx delete mode 100644 website/content/docs/commands/targets/add-host-sources.mdx delete mode 100644 website/content/docs/commands/targets/authorize-session.mdx delete mode 100644 website/content/docs/commands/targets/create.mdx delete mode 100644 website/content/docs/commands/targets/delete.mdx delete mode 100644 website/content/docs/commands/targets/index.mdx delete mode 100644 website/content/docs/commands/targets/list.mdx delete mode 100644 website/content/docs/commands/targets/read.mdx delete mode 100644 website/content/docs/commands/targets/remove-credential-sources.mdx delete mode 100644 website/content/docs/commands/targets/remove-host-sources.mdx delete mode 100644 website/content/docs/commands/targets/set-credential-sources.mdx delete mode 100644 website/content/docs/commands/targets/set-host-sources.mdx delete mode 100644 website/content/docs/commands/targets/update.mdx delete mode 100644 website/content/docs/commands/update.mdx delete mode 100644 website/content/docs/commands/users/add-accounts.mdx delete mode 100644 website/content/docs/commands/users/create.mdx delete mode 100644 website/content/docs/commands/users/delete.mdx delete mode 100644 website/content/docs/commands/users/index.mdx delete mode 100644 website/content/docs/commands/users/list.mdx delete mode 100644 website/content/docs/commands/users/read.mdx delete mode 100644 website/content/docs/commands/users/remove-accounts.mdx delete mode 100644 website/content/docs/commands/users/set-accounts.mdx delete mode 100644 website/content/docs/commands/users/update.mdx delete mode 100644 website/content/docs/commands/workers/add-worker-tags.mdx delete mode 100644 website/content/docs/commands/workers/certificate-authority.mdx delete mode 100644 website/content/docs/commands/workers/create.mdx delete mode 100644 website/content/docs/commands/workers/delete.mdx delete mode 100644 website/content/docs/commands/workers/index.mdx delete mode 100644 website/content/docs/commands/workers/list.mdx delete mode 100644 website/content/docs/commands/workers/read.mdx delete mode 100644 website/content/docs/commands/workers/remove-worker-tags.mdx delete mode 100644 website/content/docs/commands/workers/set-worker-tags.mdx delete mode 100644 website/content/docs/commands/workers/update.mdx delete mode 100644 website/content/docs/common-workflows/index.mdx delete mode 100644 website/content/docs/common-workflows/manage-scopes.mdx delete mode 100644 website/content/docs/common-workflows/manage-sessions.mdx delete mode 100644 website/content/docs/common-workflows/manage-targets.mdx delete mode 100644 website/content/docs/community/index.mdx delete mode 100644 website/content/docs/concepts/aliases.mdx delete mode 100644 website/content/docs/concepts/auditing.mdx delete mode 100644 website/content/docs/concepts/credential-management.mdx delete mode 100644 website/content/docs/concepts/iam.mdx delete mode 100644 website/content/docs/concepts/transparent-sessions.mdx delete mode 100644 website/content/docs/concepts/workers.mdx delete mode 100644 website/content/docs/configuration/controller.mdx delete mode 100644 website/content/docs/configuration/events/common-sink-parameters.mdx delete mode 100644 website/content/docs/configuration/events/file-sink.mdx delete mode 100644 website/content/docs/configuration/events/index.mdx delete mode 100644 website/content/docs/configuration/events/stderr-sink.mdx delete mode 100644 website/content/docs/configuration/index.mdx delete mode 100644 website/content/docs/configuration/kms/aead.mdx delete mode 100644 website/content/docs/configuration/kms/alicloudkms.mdx delete mode 100644 website/content/docs/configuration/kms/awskms.mdx delete mode 100644 website/content/docs/configuration/kms/azurekeyvault.mdx delete mode 100644 website/content/docs/configuration/kms/gcpckms.mdx delete mode 100644 website/content/docs/configuration/kms/index.mdx delete mode 100644 website/content/docs/configuration/kms/ocikms.mdx delete mode 100644 website/content/docs/configuration/kms/transit.mdx delete mode 100644 website/content/docs/configuration/listeners/index.mdx delete mode 100644 website/content/docs/configuration/listeners/tcp-listeners.mdx delete mode 100644 website/content/docs/configuration/listeners/unix-listeners.mdx delete mode 100644 website/content/docs/configuration/plugins.mdx delete mode 100644 website/content/docs/configuration/workers.mdx delete mode 100644 website/content/docs/credentials/configure-credential-brokering.mdx delete mode 100644 website/content/docs/credentials/configure-credential-injection.mdx delete mode 100644 website/content/docs/credentials/index.mdx delete mode 100644 website/content/docs/credentials/rdp-testing-and-compatibility-matrix.mdx delete mode 100644 website/content/docs/credentials/static-cred-boundary.mdx delete mode 100644 website/content/docs/credentials/static-cred-vault.mdx delete mode 100644 website/content/docs/deploy/self-managed/configure-controllers.mdx delete mode 100644 website/content/docs/deploy/self-managed/deploy-workers.mdx delete mode 100644 website/content/docs/deploy/self-managed/index.mdx delete mode 100644 website/content/docs/deploy/self-managed/initialize.mdx delete mode 100644 website/content/docs/deploy/self-managed/install-clients.mdx delete mode 100644 website/content/docs/deploy/self-managed/install.mdx delete mode 100644 website/content/docs/deploy/self-managed/systemd.mdx delete mode 100644 website/content/docs/deploy/terraform-patterns/index.mdx delete mode 100644 website/content/docs/deploy/terraform-patterns/terraform-credentials-and-credential-stores.mdx delete mode 100644 website/content/docs/deploy/terraform-patterns/terraform-groups-and-rbac.mdx delete mode 100644 website/content/docs/deploy/terraform-patterns/terraform-hosts-and-host-management.mdx delete mode 100644 website/content/docs/deploy/terraform-patterns/terraform-scopes.mdx delete mode 100644 website/content/docs/deploy/terraform-patterns/terraform-session-recording.mdx delete mode 100644 website/content/docs/deploy/terraform-patterns/terraform-targets.mdx delete mode 100644 website/content/docs/deploy/terraform-patterns/terraform-users-and-auth-methods.mdx delete mode 100644 website/content/docs/developing/building.mdx delete mode 100644 website/content/docs/developing/index.mdx delete mode 100644 website/content/docs/developing/ui.mdx delete mode 100644 website/content/docs/domain-model/accounts.mdx delete mode 100644 website/content/docs/domain-model/aliases.mdx delete mode 100644 website/content/docs/domain-model/auth-methods.mdx delete mode 100644 website/content/docs/domain-model/credential-libraries.mdx delete mode 100644 website/content/docs/domain-model/credential-stores.mdx delete mode 100644 website/content/docs/domain-model/credentials.mdx delete mode 100644 website/content/docs/domain-model/groups.mdx delete mode 100644 website/content/docs/domain-model/host-catalogs.mdx delete mode 100644 website/content/docs/domain-model/host-sets.mdx delete mode 100644 website/content/docs/domain-model/hosts.mdx delete mode 100644 website/content/docs/domain-model/index.mdx delete mode 100644 website/content/docs/domain-model/managed-groups.mdx delete mode 100644 website/content/docs/domain-model/roles.mdx delete mode 100644 website/content/docs/domain-model/scopes.mdx delete mode 100644 website/content/docs/domain-model/session-connections.mdx delete mode 100644 website/content/docs/domain-model/session-recordings.mdx delete mode 100644 website/content/docs/domain-model/sessions.mdx delete mode 100644 website/content/docs/domain-model/storage-buckets.mdx delete mode 100644 website/content/docs/domain-model/storage-policy.mdx delete mode 100644 website/content/docs/domain-model/targets.mdx delete mode 100644 website/content/docs/domain-model/users.mdx delete mode 100644 website/content/docs/enterprise/automated-license-reporting.mdx delete mode 100644 website/content/docs/enterprise/index.mdx delete mode 100644 website/content/docs/enterprise/licensing.mdx delete mode 100644 website/content/docs/enterprise/supported-versions.mdx delete mode 100644 website/content/docs/errors/index.mdx delete mode 100644 website/content/docs/filtering/index.mdx delete mode 100644 website/content/docs/getting-started/dev-mode/connect-to-dev-target.mdx delete mode 100644 website/content/docs/getting-started/dev-mode/index.mdx delete mode 100644 website/content/docs/getting-started/dev-mode/run-and-login.mdx delete mode 100644 website/content/docs/getting-started/index.mdx delete mode 100644 website/content/docs/go-sdk/index.mdx delete mode 100644 website/content/docs/hcp/get-started/connect-to-target.mdx delete mode 100644 website/content/docs/hcp/get-started/deploy-and-login.mdx delete mode 100644 website/content/docs/hcp/index.mdx delete mode 100644 website/content/docs/hosts/aws.mdx delete mode 100644 website/content/docs/hosts/azure.mdx delete mode 100644 website/content/docs/hosts/gcp.mdx delete mode 100644 website/content/docs/hosts/index.mdx delete mode 100644 website/content/docs/index.mdx delete mode 100644 website/content/docs/interoperability-matrix/index.mdx delete mode 100644 website/content/docs/monitor/events/common.mdx delete mode 100644 website/content/docs/monitor/events/events.mdx delete mode 100644 website/content/docs/monitor/events/file.mdx delete mode 100644 website/content/docs/monitor/events/filter-events.mdx delete mode 100644 website/content/docs/monitor/events/stderr.mdx delete mode 100644 website/content/docs/monitor/health.mdx delete mode 100644 website/content/docs/monitor/index.mdx delete mode 100644 website/content/docs/monitor/listeners/index.mdx delete mode 100644 website/content/docs/monitor/listeners/tcp.mdx delete mode 100644 website/content/docs/monitor/listeners/unix.mdx delete mode 100644 website/content/docs/monitor/metrics.mdx delete mode 100644 website/content/docs/overview/bastion-hosts.mdx delete mode 100644 website/content/docs/overview/faq.mdx delete mode 100644 website/content/docs/overview/pam.mdx delete mode 100644 website/content/docs/overview/sdp.mdx delete mode 100644 website/content/docs/overview/secrets-management.mdx delete mode 100644 website/content/docs/overview/use-cases.mdx delete mode 100644 website/content/docs/overview/vpn.mdx delete mode 100644 website/content/docs/overview/zero-trust.mdx delete mode 100644 website/content/docs/rbac/assignable-permissions.mdx delete mode 100644 website/content/docs/rbac/index.mdx delete mode 100644 website/content/docs/rbac/manage-roles.mdx delete mode 100644 website/content/docs/rbac/permission-grant-formats.mdx delete mode 100644 website/content/docs/rbac/users/manage-users-groups.mdx delete mode 100644 website/content/docs/rbac/users/managed-groups.mdx delete mode 100644 website/content/docs/release-notes/v0_10_0.mdx delete mode 100644 website/content/docs/release-notes/v0_11_0.mdx delete mode 100644 website/content/docs/release-notes/v0_12_0.mdx delete mode 100644 website/content/docs/release-notes/v0_13_0.mdx delete mode 100644 website/content/docs/release-notes/v0_14_0.mdx delete mode 100644 website/content/docs/release-notes/v0_15_0.mdx delete mode 100644 website/content/docs/release-notes/v0_16_0.mdx delete mode 100644 website/content/docs/release-notes/v0_17_0.mdx delete mode 100644 website/content/docs/release-notes/v0_18_0.mdx delete mode 100644 website/content/docs/release-notes/v0_19_0.mdx delete mode 100644 website/content/docs/release-notes/v0_1_0.mdx delete mode 100644 website/content/docs/release-notes/v0_20_0.mdx delete mode 100644 website/content/docs/release-notes/v0_2_0.mdx delete mode 100644 website/content/docs/release-notes/v0_3_0.mdx delete mode 100644 website/content/docs/release-notes/v0_4_0.mdx delete mode 100644 website/content/docs/release-notes/v0_5_0.mdx delete mode 100644 website/content/docs/release-notes/v0_6_0.mdx delete mode 100644 website/content/docs/release-notes/v0_7_0.mdx delete mode 100644 website/content/docs/release-notes/v0_8_0.mdx delete mode 100644 website/content/docs/release-notes/v0_9_0.mdx delete mode 100644 website/content/docs/secure/encryption/connections-tls.mdx delete mode 100644 website/content/docs/secure/encryption/data-encryption.mdx delete mode 100644 website/content/docs/secure/security-model.mdx delete mode 100644 website/content/docs/session-recording/compliance/configure-storage-policy.mdx delete mode 100644 website/content/docs/session-recording/compliance/update-storage-policy.mdx delete mode 100644 website/content/docs/session-recording/compliance/validate-data-store.mdx delete mode 100644 website/content/docs/session-recording/compliance/validate-session-recordings.mdx delete mode 100644 website/content/docs/session-recording/configuration/configure-worker-storage.mdx delete mode 100644 website/content/docs/session-recording/configuration/create-storage-bucket.mdx delete mode 100644 website/content/docs/session-recording/configuration/enable-session-recording.mdx delete mode 100644 website/content/docs/session-recording/configuration/manage-recorded-sessions.mdx delete mode 100644 website/content/docs/session-recording/configuration/storage-providers/configure-minio.mdx delete mode 100644 website/content/docs/session-recording/configuration/storage-providers/configure-s3-compliant.mdx delete mode 100644 website/content/docs/session-recording/configuration/storage-providers/configure-s3.mdx delete mode 100644 website/content/docs/session-recording/configuration/troubleshoot-recorded-sessions.mdx delete mode 100644 website/content/docs/session-recording/data/bsr-file-structure.mdx delete mode 100644 website/content/docs/session-recording/data/read-bsr-file.mdx delete mode 100644 website/content/docs/session-recording/index.mdx delete mode 100644 website/content/docs/targets/configuration/configure-transparent-sessions.mdx delete mode 100644 website/content/docs/targets/configuration/create-target-alias.mdx delete mode 100644 website/content/docs/targets/configuration/index.mdx delete mode 100644 website/content/docs/targets/connections/connect-helpers.mdx delete mode 100644 website/content/docs/targets/connections/connect-target-alias.mdx delete mode 100644 website/content/docs/targets/connections/exec-flag.mdx delete mode 100644 website/content/docs/targets/connections/index.mdx delete mode 100644 website/content/docs/targets/connections/transparent-sessions.mdx delete mode 100644 website/content/docs/targets/connections/workflow-ssh-proxycommand.mdx delete mode 100644 website/content/docs/vault/index.mdx delete mode 100644 website/content/docs/what-is-boundary.mdx delete mode 100644 website/content/docs/workers/create.mdx delete mode 100644 website/content/docs/workers/filters.mdx delete mode 100644 website/content/docs/workers/index.mdx delete mode 100644 website/content/docs/workers/multi-hop/enterprise.mdx delete mode 100644 website/content/docs/workers/multi-hop/hcp.mdx delete mode 100644 website/content/docs/workers/multi-hop/index.mdx delete mode 100644 website/content/docs/workers/registration.mdx delete mode 100644 website/content/docs/workers/worker-tags.mdx delete mode 100644 website/content/partials/alerts/beta.mdx delete mode 100644 website/content/partials/alerts/enterprise-only.mdx delete mode 100644 website/content/partials/cmd-connect-command-options.mdx delete mode 100644 website/content/partials/cmd-connect-env-vars.mdx delete mode 100644 website/content/partials/cmd-option-note.mdx delete mode 100644 website/content/partials/configuration-reference/events/common-audit_config-examples.mdx delete mode 100644 website/content/partials/configuration-reference/events/common-audit_config-parameters.mdx delete mode 100644 website/content/partials/configuration-reference/events/common-audit_filter_overrides-parameters.mdx delete mode 100644 website/content/partials/configuration-reference/events/common-sink-intro.mdx delete mode 100644 website/content/partials/configuration-reference/events/default-events-stanza.mdx delete mode 100644 website/content/partials/configuration-reference/events/events-stanza-intro.mdx delete mode 100644 website/content/partials/configuration-reference/events/file-parameters.mdx delete mode 100644 website/content/partials/configuration-reference/events/file-sink-intro.mdx delete mode 100644 website/content/partials/configuration-reference/events/stderr-intro.mdx delete mode 100644 website/content/partials/configuration-reference/events/stderr-parameters.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/listener-purpose.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-configure-custom-http-response-headers.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-configure-tls.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-custom-api-response-headers.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-custom-response-headers.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-custom-ui-response-headers.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-general-parameters.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-intro.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-listen-on-mulitple-interfaces.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-telemetry.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/tcp-tls.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/unix-configure-tls.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/unix-general-parameters.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/unix-intro.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/unix-listen-on-multiple-interfaces.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/unix-telemetry.mdx delete mode 100644 website/content/partials/configuration-reference/listeners/unix-tls-parameters.mdx delete mode 100644 website/content/partials/configuration-reference/workers/common-worker-parameters.mdx delete mode 100644 website/content/partials/configuration-reference/workers/complete-configuration-example.mdx delete mode 100644 website/content/partials/release-notes/intro.mdx delete mode 100644 website/content/partials/workers/egress-worker-config.mdx delete mode 100644 website/content/partials/workers/ingress-worker-config.mdx delete mode 100644 website/content/partials/workers/intermediate-worker-config.mdx delete mode 100644 website/content/partials/workers/single-worker-config.mdx delete mode 100644 website/content/security.mdx delete mode 100644 website/data/docs-nav-data.json delete mode 100644 website/package-lock.json delete mode 100644 website/package.json delete mode 100644 website/prettier.config.js delete mode 100644 website/public/_favicon.ico delete mode 100644 website/public/data/vault/boundary-controller-policy.hcl delete mode 100644 website/public/files/press-kit.zip delete mode 100644 website/public/ie-warning.js delete mode 100644 website/public/img/api-pagination/pagination-workflow.png delete mode 100644 website/public/img/architecture-overview.png delete mode 100644 website/public/img/boundary-core-workflow_dark.png delete mode 100644 website/public/img/boundary-core-workflow_light.png delete mode 100644 website/public/img/boundary-domain-model-overview.jpg delete mode 100644 website/public/img/boundary-network_dark.png delete mode 100644 website/public/img/boundary-network_light.png delete mode 100644 website/public/img/boundary.png delete mode 100644 website/public/img/brokered-creds-ui.png delete mode 100644 website/public/img/component-relationship.png delete mode 100644 website/public/img/concepts-multihop.png delete mode 100644 website/public/img/credential-brokering.png delete mode 100644 website/public/img/credential-injection.png delete mode 100644 website/public/img/cta-bg.svg delete mode 100644 website/public/img/desktop/macos/boundary-desktop-active.png delete mode 100644 website/public/img/desktop/macos/boundary-desktop-connect.png delete mode 100644 website/public/img/desktop/macos/boundary-desktop-drag-to-install.png delete mode 100644 website/public/img/desktop/macos/boundary-desktop-landing.png delete mode 100644 website/public/img/desktop/macos/boundary-desktop-login.png delete mode 100644 website/public/img/desktop/macos/boundary-desktop-open.png delete mode 100644 website/public/img/desktop/macos/boundary-desktop-origin.png delete mode 100644 website/public/img/desktop/macos/boundary-desktop-pending.png delete mode 100644 website/public/img/desktop/macos/boundary-desktop-terminated.png delete mode 100644 website/public/img/desktop/windows/boundary-desktop-active.png delete mode 100644 website/public/img/desktop/windows/boundary-desktop-connect.png delete mode 100644 website/public/img/desktop/windows/boundary-desktop-landing.png delete mode 100644 website/public/img/desktop/windows/boundary-desktop-login.png delete mode 100644 website/public/img/desktop/windows/boundary-desktop-open.png delete mode 100644 website/public/img/desktop/windows/boundary-desktop-origin.png delete mode 100644 website/public/img/desktop/windows/boundary-desktop-pending.png delete mode 100644 website/public/img/desktop/windows/boundary-desktop-terminated.png delete mode 100644 website/public/img/hcp-deploy-form.png delete mode 100644 website/public/img/hero-pattern.svg delete mode 100644 website/public/img/how-boundary-works_dark.png delete mode 100644 website/public/img/how-boundary-works_light.png delete mode 100644 website/public/img/iam-example-structure.png delete mode 100644 website/public/img/inject-creds.png delete mode 100644 website/public/img/login-dev-mode.png delete mode 100644 website/public/img/manage-id-acct-defined.png delete mode 100644 website/public/img/manage-id-acct-settings.png delete mode 100644 website/public/img/manage-id-acct-undefined.png delete mode 100644 website/public/img/manage-id-auth-method-defined.png delete mode 100644 website/public/img/manage-id-auth-method-setting.png delete mode 100644 website/public/img/manage-id-auth-method-undefined.png delete mode 100644 website/public/img/manage-id-login.png delete mode 100644 website/public/img/manage-id-user-defined.png delete mode 100644 website/public/img/manage-id-user-settings.png delete mode 100644 website/public/img/manage-id-user-undefined.png delete mode 100644 website/public/img/manage-scopes-org-defined.png delete mode 100644 website/public/img/manage-scopes-org-settings.png delete mode 100644 website/public/img/manage-scopes-org-undefined.png delete mode 100644 website/public/img/manage-scopes-project-defined.png delete mode 100644 website/public/img/manage-scopes-project-settings.png delete mode 100644 website/public/img/manage-scopes-project-undefined.png delete mode 100644 website/public/img/manage-targets-host-undefined.png delete mode 100644 website/public/img/manage-targets-new-host-2.png delete mode 100644 website/public/img/manage-targets-new-host-defined.png delete mode 100644 website/public/img/manage-targets-new-host-set-defined.png delete mode 100644 website/public/img/manage-targets-new-host-set-settings.png delete mode 100644 website/public/img/manage-targets-new-host-set-undefined.png delete mode 100644 website/public/img/manage-targets-new-host.png delete mode 100644 website/public/img/manage-targets-new-target-defined.png delete mode 100644 website/public/img/manage-targets-new-target-project.png delete mode 100644 website/public/img/manage-targets-new-target-settings.png delete mode 100644 website/public/img/manage-targets-new-target-undefined.png delete mode 100644 website/public/img/multi-hop-workers.png delete mode 100644 website/public/img/og-image.png delete mode 100644 website/public/img/quick-start-targets.png delete mode 100644 website/public/img/security-model/boundary-architecture.png delete mode 100644 website/public/img/security-model/data-at-rest.png delete mode 100644 website/public/img/security-model/data-in-transit.png delete mode 100644 website/public/img/setup-wizard-address-target.png delete mode 100644 website/public/img/setup-wizard.png delete mode 100644 website/public/img/single-region.png delete mode 100644 website/public/img/ui/add-role-grant_dark.png delete mode 100644 website/public/img/ui/add-role-grant_light.png delete mode 100644 website/public/img/ui/add-role-principal_dark.png delete mode 100644 website/public/img/ui/add-role-principal_light.png delete mode 100644 website/public/img/ui/add-role-scopes_dark.png delete mode 100644 website/public/img/ui/add-role-scopes_light.png delete mode 100644 website/public/img/ui/enable-session-recording_dark.png delete mode 100644 website/public/img/ui/enable-session-recording_light.png delete mode 100644 website/public/img/ui/multi-hop-egress-filter_dark.png delete mode 100644 website/public/img/ui/multi-hop-egress-filter_light.png delete mode 100644 website/public/img/ui/new-role_dark.png delete mode 100644 website/public/img/ui/new-role_light.png delete mode 100644 website/public/img/ui/session-rec-worker-filter_dark.png delete mode 100644 website/public/img/ui/session-rec-worker-filter_light.png delete mode 100644 website/public/img/ui/target-ingress-worker-filter_dark.png delete mode 100644 website/public/img/ui/target-ingress-worker-filter_light.png delete mode 100644 website/public/img/ui/vault-worker-filter_dark.png delete mode 100644 website/public/img/ui/vault-worker-filter_light.png delete mode 100644 website/public/img/ui/worker-tags-api_dark.png delete mode 100644 website/public/img/ui/worker-tags-api_light.png delete mode 100644 website/public/img/ui/worker-tags-config_dark.png delete mode 100644 website/public/img/ui/worker-tags-config_light.png delete mode 100644 website/public/img/worker-deployment.png delete mode 100644 website/public/img/worker-tags.png delete mode 100644 website/redirects.js delete mode 100644 website/scripts/should-build.sh delete mode 100755 website/scripts/website-build.sh delete mode 100755 website/scripts/website-start.sh delete mode 100644 website/vercel.json diff --git a/website/.editorconfig b/website/.editorconfig deleted file mode 100644 index 36bf83fdb..000000000 --- a/website/.editorconfig +++ /dev/null @@ -1,18 +0,0 @@ -# This file is for unifying the coding style for different editors and IDEs -# editorconfig.org - -root = true - -[*] -end_of_line = lf -charset = utf-8 -insert_final_newline = true -trim_trailing_whitespace = true -indent_style = space -indent_size = 2 - -[Makefile] -indent_style = tab - -[{*.md,*.json}] -max_line_length = null diff --git a/website/.env b/website/.env deleted file mode 100644 index e50ad5d30..000000000 --- a/website/.env +++ /dev/null @@ -1,3 +0,0 @@ -NEXT_PUBLIC_ALGOLIA_APP_ID=YY0FFNI7MF -NEXT_PUBLIC_ALGOLIA_INDEX=product_BOUNDARY -NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_API_KEY=8308498decdf72e11590fc6356e5fdde diff --git a/website/.env.production b/website/.env.production deleted file mode 100644 index 83825a896..000000000 --- a/website/.env.production +++ /dev/null @@ -1 +0,0 @@ -HASHI_ENV=production diff --git a/website/.eslintrc.js b/website/.eslintrc.js deleted file mode 100644 index 266f4d5fa..000000000 --- a/website/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - ...require('@hashicorp/platform-cli/config/.eslintrc'), - ignorePatterns: ['public/'], -} diff --git a/website/.gitignore b/website/.gitignore deleted file mode 100644 index 6415d25eb..000000000 --- a/website/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules -.DS_Store -.next -out -.mdx-data -website-preview/ diff --git a/website/.nvmrc b/website/.nvmrc deleted file mode 100644 index 53d1c14db..000000000 --- a/website/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v22 diff --git a/website/.stylelintrc.js b/website/.stylelintrc.js deleted file mode 100644 index 80af883b1..000000000 --- a/website/.stylelintrc.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Copyright IBM Corp. 2020, 2025 - * SPDX-License-Identifier: BUSL-1.1 - */ - -module.exports = { - ...require('@hashicorp/platform-cli/config/stylelint.config'), - /* Specify overrides here */ -} diff --git a/website/LICENSE b/website/LICENSE deleted file mode 100644 index 3189f43a6..000000000 --- a/website/LICENSE +++ /dev/null @@ -1,10 +0,0 @@ -# Proprietary License - -This license is temporary while a more official one is drafted. However, -this should make it clear: - -The text contents of this website are MPL 2.0 licensed. - -The design contents of this website are proprietary and may not be reproduced -or reused in any way other than to run the website locally. The license for -the design is owned solely by HashiCorp, Inc. diff --git a/website/Makefile b/website/Makefile deleted file mode 100644 index e45434abf..000000000 --- a/website/Makefile +++ /dev/null @@ -1,61 +0,0 @@ -###################################################### -# NOTE: This file is managed by the Digital Team's # -# Terraform configuration @ hashicorp/mktg-terraform # -###################################################### - -.DEFAULT_GOAL := website - -# Set the preview mode for the website shell to "developer" or "io" -PREVIEW_MODE ?= developer -REPO ?= boundary - -# Enable setting alternate docker tool, e.g. 'make DOCKER_CMD=podman' -DOCKER_CMD ?= docker - -CURRENT_GIT_BRANCH=$$(git rev-parse --abbrev-ref HEAD) -LOCAL_CONTENT_DIR= -PWD=$$(pwd) - -DOCKER_IMAGE="hashicorp/dev-portal" -DOCKER_IMAGE_LOCAL="dev-portal-local" -DOCKER_RUN_FLAGS=-it \ - --publish "3000:3000" \ - --rm \ - --tty \ - --volume "$(PWD)/content:/app/content" \ - --volume "$(PWD)/public:/app/public" \ - --volume "$(PWD)/data:/app/data" \ - --volume "$(PWD)/redirects.js:/app/redirects.js" \ - --volume "$(PWD)/../internal/gen:/internal/gen" \ - --volume "next-dir:/app/website-preview/.next" \ - --volume "$(PWD)/.env:/app/.env" \ - --volume "$(PWD)/.env.development:/app/website-preview/.env.development" \ - --volume "$(PWD)/.env.local:/app/website-preview/.env.local" \ - -e "REPO=$(REPO)" \ - -e "PREVIEW_FROM_REPO=$(REPO)" \ - -e "IS_CONTENT_PREVIEW=true" \ - -e "LOCAL_CONTENT_DIR=$(LOCAL_CONTENT_DIR)" \ - -e "CURRENT_GIT_BRANCH=$(CURRENT_GIT_BRANCH)" \ - -e "PREVIEW_MODE=$(PREVIEW_MODE)" - -# Default: run this if working on the website locally to run in watch mode. -.PHONY: website -website: - @echo "==> Downloading latest Docker image..." - @$(DOCKER_CMD) pull $(DOCKER_IMAGE) - @echo "==> Starting website..." - @$(DOCKER_CMD) run $(DOCKER_RUN_FLAGS) $(DOCKER_IMAGE) - -# Use this if you have run `website/build-local` to use the locally built image. -.PHONY: website/local -website/local: - @echo "==> Starting website from local image..." - @$(DOCKER_CMD) run $(DOCKER_RUN_FLAGS) $(DOCKER_IMAGE_LOCAL) - -# Run this to generate a new local Docker image. -.PHONY: website/build-local -website/build-local: - @echo "==> Building local Docker image" - @$(DOCKER_CMD) build https://github.com/hashicorp/dev-portal.git\#main \ - -t $(DOCKER_IMAGE_LOCAL) - diff --git a/website/README.md b/website/README.md deleted file mode 100644 index 39850251f..000000000 --- a/website/README.md +++ /dev/null @@ -1,538 +0,0 @@ -# Boundary Documentation Website - -[!IMPORTANT] -> **Documentation Update:** Product documentation, which were located in this repository under `/website`, are now located in [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs), colocated with all other product documentation. Contributions to this content should be done in the `web-unified-docs` repo, and not this one. Changes made to `/website` content in this repo will not be reflected on the developer.hashicorp.com website. - -This subdirectory contains the content for the [Boundary Website](https://developer.hashicorp.com/boundary/). - - - -## Table of Contents - -- [Boundary Documentation Website](#boundary-documentation-website) - - [Table of Contents](#table-of-contents) - - [Contributions Welcome!](#contributions-welcome) - - [Running the Site Locally](#running-the-site-locally) - - [Editing Markdown Content](#editing-markdown-content) - - [Creating New Pages](#creating-new-pages) - - [Markdown Enhancements](#markdown-enhancements) - - [Custom Components](#custom-components) - - [Tabs](#tabs) - - [Enterprise Alert](#enterprise-alert) - - [Other Components](#other-components) - - [Syntax Highlighting](#syntax-highlighting) - - [Editing Navigation Sidebars](#editing-navigation-sidebars) - - [Index-less Categories](#index-less-categories) - - [Custom or External Links](#custom-or-external-links) - - [Editing/Enabling the Alert Banner](#editingenabling-the-alert-banner) - - [Changing the Release Version](#changing-the-release-version) - - [Displaying a Prerelease](#displaying-a-prerelease) - - [Redirects](#redirects) - - [Browser Support](#browser-support) - - [Deployment](#deployment) - - - - -## Contributions Welcome! - -If you find a typo or you feel like you can improve the HTML, CSS, or JavaScript, we welcome contributions. Feel free to open issues or pull requests like any normal GitHub project, and we'll merge it in 🚀 - - - -## Running the Site Locally - -The website can be run locally through [node.js](https://nodejs.org). It works with any supported version. Node.js [can be installed quickly and easily via universal binary](https://nodejs.org). - -The first time you are running the site, you will need to run the command `npm install` to install dependencies. Any time after this, `npm start` can be used to run the site locally. It can be seen at `http://localhost:3000`. We also provide a Docker-based workflow to run the site locally. Just run `make`! As you change content, the website will automatically reload to show the latest content. - - - - -## Editing Markdown Content - -Documentation content is written in [Markdown](https://www.markdownguide.org/cheat-sheet/) and you'll find all files listed under the `/content` directory. - -To create a new page with Markdown, create a file ending in `.mdx` in a `content/`. The path in the content directory will be the URL route. For example, `content/docs/hello.mdx` will be served from the `/docs/hello` URL. - -> **Important**: Files and directories will only be rendered and published to the website if they are [included in sidebar data](#editing-navigation-sidebars). Any file not included in sidebar data will not be rendered or published. - -This file can be standard Markdown and also supports [YAML frontmatter](https://middlemanapp.com/basics/frontmatter/). YAML frontmatter is optional, there are defaults for all keys. - -```yaml ---- -title: 'My Title' -description: "A thorough, yet succinct description of the page's contents" ---- -``` - -The significant keys in the YAML frontmatter are: - -- `title` `(string)` - This is the title of the page that will be set in the HTML title. -- `description` `(string)` - This is a description of the page that will be set in the HTML description. - -> ⚠️ If there is a need for a `/api/*` url on this website, the url will be changed to `/api-docs/*`, as the `api` folder is reserved by next.js. - -### Validating Content - -Content changes are automatically validated against a set of rules as part of the pull request process. If you want to run these checks locally to validate your content before comitting your changes, you can run the following command: - -``` -npm run content-check -``` - -If the validation fails, actionable error messages will be displayed to help you address detected issues. - -### Creating New Pages - -There is currently a small bug with new page creation - if you create a new page and link it up via subnav data while the server is running, it will report an error saying the page was not found. This can be resolved by restarting the server. - -### Markdown Enhancements - -There are several custom markdown plugins that are available by default that enhance [standard markdown](https://commonmark.org/) to fit our use cases. This set of plugins introduces a couple instances of custom syntax, and a couple specific pitfalls that are not present by default with markdown, detailed below: - -- > **Warning**: We are deprecating the current [paragraph alerts](https://github.com/hashicorp/remark-plugins/tree/master/plugins/paragraph-custom-alerts#paragraph-custom-alerts), in favor of the newer [MDX Inline Alert](#inline-alerts) components. The legacy paragraph alerts are represented by the symbols `~>`, `->`, `=>`, or `!>`. -- If you see `@include '/some/path.mdx'`, this is a [markdown include](https://github.com/hashicorp/remark-plugins/tree/master/plugins/include-markdown#include-markdown-plugin). It's worth noting as well that all includes resolve from `website/content/partials` by default, and that changes to partials will not live-reload the website. -- If you see `# Headline ((#slug))`, this is an example of an [anchor link alias](https://github.com/hashicorp/remark-plugins/tree/je.anchor-link-adjustments/plugins/anchor-links#anchor-link-aliases). It adds an extra permalink to a headline for compatibility and is removed from the output. -- Due to [automatically generated permalinks](https://github.com/hashicorp/remark-plugins/tree/je.anchor-link-adjustments/plugins/anchor-links#anchor-links), any text changes to _headlines_ or _list items that begin with inline code_ can and will break existing permalinks. Be very cautious when changing either of these two text items. - - Headlines are fairly self-explanatory, but here's an example of how to list items that begin with inline code look. - - ```markdown - - this is a normal list item - - `this` is a list item that begins with inline code - ``` - - Its worth noting that _only the inline code at the beginning of the list item_ will cause problems if changed. So if you changed the above markup to... - - ```markdown - - lsdhfhksdjf - - `this` jsdhfkdsjhkdsfjh - ``` - - ...while it perhaps would not be an improved user experience, no links would break because of it. The best approach is to **avoid changing headlines and inline code at the start of a list item**. If you must change one of these items, make sure to tag someone from the digital marketing development team on your pull request, they will help to ensure as much compatibility as possible. - -### Custom Components - -A number of custom [mdx components](https://mdxjs.com/) are available for use within any `.mdx` file. Each one is documented below: - -#### Inline Alerts - -There are custom MDX components available to author alert data. [See the full documentation here](https://developer.hashicorp.com/swingset/components/mdxinlinealert). They render as colored boxes to draw the user's attention to some type of aside. - -```mdx -## Alert types - -### Tip - - - To provide general information to the user regarding the current context or - relevant actions. - - -### Highlight - - - To provide general or promotional information to the user prominently. - - -### Note - - - To help users avoid an issue. Provide guidance and actions if possible. - - -### Warning - - - To indicate critical issues that need immediate action or help users - understand something critical. - - -## Title override prop - -To provide general information. -``` - -#### Tabs - -The `Tabs` component creates tabbed content of any type, but is often used for code examples given in different languages. Here's an example of how it looks from the Vagrant documentation website: - -![Tabs Component](https://p176.p0.n0.cdn.getcloudapp.com/items/WnubALZ4/Screen%20Recording%202020-06-11%20at%2006.03%20PM.gif?v=1de81ea720a8cc8ade83ca64fb0b9edd) - -> Please refer to the [Swingset](https://react-components.vercel.app/?component=Tabs) documentation for the latest examples and API reference. - -It can be used as such within a markdown file: - -````mdx -Normal **markdown** content. - - - - -```shell-session -$ command ... -``` - - - - -```shell-session -$ curl ... -``` - - - - -Continued normal markdown content -```` - -The intentionally skipped line is a limitation of the mdx parser which is being actively worked on. All tabs must have a heading, and there is no limit to the number of tabs, though it is recommended to go for a maximum of three or four. - -#### Enterprise Alert - -This component provides a standard way to call out functionality as being present only in the enterprise version of the software. It can be presented in two contexts, inline or standalone. Here's an example of standalone usage from the Consul docs website: - -![Enterprise Alert Component - Standalone](https://p176.p0.n0.cdn.getcloudapp.com/items/WnubALp8/Screen%20Shot%202020-06-11%20at%206.06.03%20PM.png?v=d1505b90bdcbde6ed664831a885ea5fb) - -The standalone component can be used as such in markdown files: - -```mdx -# Page Headline - - - -Continued markdown content... -``` - -It can also receive custom text contents if you need to change the messaging but wish to retain the style. This will replace the text `This feature is available in all versions of Consul Enterprise.` with whatever you add. For example: - -```mdx -# Page Headline - - - My custom text here, and a link! - - -Continued markdown content... -``` - -It's important to note that once you are adding custom content, it must be html and can not be markdown, as demonstrated above with the link. - -Now let's look at inline usage, here's an example: - -![Enterprise Alert Component - Inline](https://p176.p0.n0.cdn.getcloudapp.com/items/L1upYLEJ/Screen%20Shot%202020-06-11%20at%206.07.50%20PM.png?v=013ba439263de8292befbc851d31dd78) - -And here's how it could be used in your markdown document: - -```mdx -### Some Enterprise Feature - -Continued markdown content... -``` - -It's also worth noting that this component will automatically adjust to the correct product colors depending on the context. - -#### Other Components - -Other custom components can be made available on a per-site basis, the above are the standards. If you have questions about custom components that are not documented here, or have a request for a new custom component, please reach out to @hashicorp/digital-marketing. - -### Syntax Highlighting - -When using fenced code blocks, the recommendation is to tag the code block with a language so that it can be syntax highlighted. For example: - -```` -``` -// BAD: Code block with no language tag -``` - -```javascript -// GOOD: Code block with a language tag -``` -```` - -Check out the [supported languages list](https://prismjs.com/#supported-languages) for the syntax highlighter we use if you want to double check the language name. - -It is also worth noting specifically that if you are using a code block that is an example of a terminal command, the correct language tag is `shell-session`. For example: - -🚫**BAD**: Using `shell`, `sh`, `bash`, or `plaintext` to represent a terminal command - -```` -```shell -$ terraform apply -``` -```` - -✅**GOOD**: Using `shell-session` to represent a terminal command - -```` -```shell-session -$ terraform apply -``` -```` - - - - - - -## Editing Navigation Sidebars - -The structure of the sidebars are controlled by files in the [`/data` directory](data). For example, [data/docs-nav-data.json](data/docs-nav-data.json) controls the **docs** sidebar. Within the `data` folder, any file with `-nav-data` after it controls the navigation for the given section. - -The sidebar uses a simple recursive data structure to represent _files_ and _directories_. The sidebar is meant to reflect the structure of the docs within the filesystem while also allowing custom ordering. Let's look at an example. First, here's our example folder structure: - -```text -. -├── docs -│   └── directory -│   ├── index.mdx -│   ├── file.mdx -│   ├── another-file.mdx -│   └── nested-directory -│   ├── index.mdx -│   └── nested-file.mdx -``` - -Here's how this folder structure could be represented as a sidebar navigation, in this example it would be the file `website/data/docs-nav-data.json`: - -```json -[ - { - "title": "Directory", - "routes": [ - { - "title": "Overview", - "path": "directory" - }, - { - "title": "File", - "path": "directory/file" - }, - { - "title": "Another File", - "path": "directory/another-file" - }, - { - "title": "Nested Directory", - "routes": [ - { - "title": "Overview", - "path": "directory/nested-directory" - }, - { - "title": "Nested File", - "path": "directory/nested-directory/nested-file" - } - ] - } - ] - } -] -``` - -A couple more important notes: - -- Within this data structure, ordering is flexible, but hierarchy is not. The structure of the sidebar must correspond to the structure of the content directory. So while you could put `file` and `another-file` in any order in the sidebar, or even leave one or both of them out, you could not decide to un-nest the `nested-directory` object without also un-nesting it in the filesystem. -- The `title` property on each node in the `nav-data` tree is the human-readable name in the navigation. -- The `path` property on each leaf node in the `nav-data` tree is the URL path where the `.mdx` document will be rendered, and the -- Note that "index" files must be explicitly added. These will be automatically resolved, so the `path` value should be, as above, `directory` rather than `directory/index`. A common convention is to set the `title` of an "index" node to be `"Overview"`. - -Below we will discuss a couple of more unusual but still helpful patterns. - -### Index-less Categories - -Sometimes you may want to include a category but not have a need for an index page for the category. This can be accomplished, but as with other branch and leaf nodes, a human-readable `title` needs to be set manually. Here's an example of how an index-less category might look: - -```text -. -├── docs -│   └── indexless-category -│   └── file.mdx -``` - -```json -// website/data/docs-nav-data.json -[ - { - "title": "Indexless Category", - "routes": [ - { - "title": "File", - "path": "indexless-category/file" - } - ] - } -] -``` - -### Custom or External Links - -Sometimes you may have a need to include a link that is not directly to a file within the docs hierarchy. This can also be supported using a different pattern. For example: - -```json -[ - { - "name": "Directory", - "routes": [ - { - "title": "File", - "path": "directory/file" - }, - { - "title": "Another File", - "path": "directory/another-file" - }, - { - "title": "Tao of HashiCorp", - "href": "https://www.hashicorp.com/tao-of-hashicorp" - } - ] - } -] -``` - -If the link provided in the `href` property is external, it will display a small icon indicating this. If it's internal, it will appear the same way as any other direct file link. - - - -## Editing/Enabling the Alert Banner - -The data and visibility of the alert banner are controlled by the `alert-banner.js` file in the [`/data` directory](data). The following data can be edited in this file: - -- `ALERT_BANNER_ACTIVE`: Determines if the banner is visible (when set to `true`) or not (when set to `false`). -- `tag`: Copy for the bordered text on the left side of the alert. -- `text`: Copy for the center text of the alert. -- `url`: Where the alert links to when clicked. - - - - -## Changing the Release Version - -To change the version displayed for download on the website, head over to `data/version.js` and change the number there. It's important to note that the version number must match a version that has been released and is live on `releases.hashicorp.com` -- if it does not, the website will be unable to fetch links to the binaries and will not compile. So this version number should be changed _only after a release_. - -### Displaying a Prerelease - -If there is a prerelease of any type that should be displayed on the downloads page, this can be done by editing `pages/downloads/index.jsx`. By default, the download component might look something like this: - -```jsx - -``` - -To add a prerelease, an extra `prerelease` property can be added to the component as such: - -```jsx - -``` - -This configuration would display something like the following text on the website, emphasis added to the configurable parameters: - -``` -A {{ release candidate }} for {{ v1.0.0 }} is available! The release can be downloaded here. -``` - -You may customize the parameters in any way you'd like. To remove a prerelease from the website, simply delete the `prerelease` parameter from the above component. - - - - - - -## Redirects - -This website structures URLs based on the filesystem layout. This means that if a file is moved, removed, or a folder is re-organized, links will break. If a path change is necessary, it can be mitigated using redirects. It's important to note that redirects should only be used to cover for external links -- if you are moving a path which internal links point to, the internal links should also be adjusted to point to the correct page, rather than relying on a redirect. - -To add a redirect, head over to the `redirects.js` file - the format is fairly simple - there's a `source` and a `destination` - fill them both in, indicate that it's a permanent redirect or not using the `permanent` key, and that's it. Let's look at an example: - -``` -{ - source: '/foo', - destination: '/bar', - permanent: true -} -``` - -This redirect rule will send all incoming links to `/foo` to `/bar`. For more details on the redirects file format, [check out the docs on vercel](https://vercel.com/docs/configuration#project/redirects). All redirects will work both locally and in production exactly the same way, so feel free to test and verify your redirects locally. In the past testing redirects has required a preview deployment -- this is no longer the case. Please note however that if you add a redirect while the local server is running, you will need to restart it in order to see the effects of the redirect. - -There is still one caveat though: redirects do not apply to client-side navigation. By default, all links in the navigation and docs sidebar will navigate purely on the client side, which makes navigation through the docs significantly faster, especially for those with low-end devices and/or weak internet connections. In the future, we plan to convert all internal links within docs pages to behave this way as well. This means that if there is a link on this website to a given piece of content that has changed locations in some way, we need to also _directly change existing links to the content_. This way, if a user clicks a link that navigates on the client side, or if they hit the url directly and the page renders from the server side, either one will work perfectly. - -Let's look at an example. Say you have a page called `/docs/foo` which needs to be moved to `/docs/nested/foo`. Additionally, this is a page that has been around for a while and we know there are links into `/docs/foo.html` left over from our previous website structure. First, we move the page, then adjust the docs sidenav, in `data/docs-navigation.js`. Find the category the page is in, and move it into the appropriate subcategory. Next, we add to `_redirects` as such. The `.html` version is covered automatically. - -```js -{ source: '/foo', destination: '/nested/foo', permanent: true } -``` - -Next, we run a global search for internal links to `/foo`, and make sure to adjust them to be `/nested/foo` - this is to ensure that client-side navigation still works correctly. _Adding a redirect alone is not enough_. - -One more example - let's say that content is being moved to an external website. A common example is guides moving to `learn.hashicorp.com`. In this case, we take all the same steps, except that we need to make a different type of change to the `docs-navigation` file. If previously the structure looked like: - -```js -{ - category: 'docs', - content: [ - 'foo' - ] -} -``` - -If we no longer want the link to be in the side nav, we can simply remove it. If we do still want the link in the side nav, but pointing to an external destination, we need to slightly change the structure as such: - -```js -{ - category: 'docs', - content: [ - { title: 'Foo Title', href: 'https://learn.hashicorp.com//foo' } - ] -} -``` - -As the majority of items in the side nav are internal links, the structure makes it as easy as possible to represent these links. This alternate syntax is the most concise manner than an external link can be represented. External links can be used anywhere within the docs sidenav. - -It's also worth noting that it is possible to do glob-based redirects, for example matching `/docs/*`, and you may see this pattern in the redirects file. This type of redirect is much higher risk and the behavior is a bit more nuanced, so if you need to add a glob redirect, please reach out to the website maintainers and ask about it first. - - - - - - -## Browser Support - -We support the following browsers targeting roughly the versions specified. - -| ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome.svg) | ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge.svg) | ![Opera](https://raw.githubusercontent.com/alrra/browser-logos/main/src/opera/opera.svg) | ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox.svg) | ![Safari](https://raw.githubusercontent.com/alrra/browser-logos/main/src/safari/safari.svg) | -| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| **Latest** | **Latest** | **Latest** | **Latest** | **Latest** | - - - - - - -## Deployment - -This website is hosted on Vercel and configured to automatically deploy anytime you push code to the `stable-website` branch. Any time a pull request is submitted that changes files within the `website` folder, a deployment preview will appear in the github checks which can be used to validate the way docs changes will look live. Deployments from `stable-website` will look and behave the same way as deployment previews. - - diff --git a/website/content/docs/api-clients/desktop.mdx b/website/content/docs/api-clients/desktop.mdx deleted file mode 100644 index 82bc2355d..000000000 --- a/website/content/docs/api-clients/desktop.mdx +++ /dev/null @@ -1,207 +0,0 @@ ---- -layout: docs -page_title: Boundary Desktop overview -description: >- - Learn how to install the Boundary Desktop application to browse and connect to targets. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary Desktop - -Boundary Desktop is a standalone application that provides a simple interface -for browsing and connecting to targets on your local computer (macOS and Windows -currently supported). Launch a session in Boundary Desktop and then make a connection -using your favorite tooling. - -## Get started - --> If you're running Boundary for the first time, [download the latest binary](/boundary/downloads) -and run it in `dev` mode locally so you can have a server to run against: - -```shell-session -$ boundary dev -``` - -### Install Boundary Desktop - -1. Download the latest .dmg installer or .exe archive from our [releases page](https://releases.hashicorp.com/boundary-desktop). Alternatively, if you're a homebrew user, you can run `brew install hashicorp-boundary-desktop` -1. In macOS, double-click the downloaded .dmg to run the installer by draggin and dropping Boundary into the applications folder - ![](/img/desktop/macos/boundary-desktop-drag-to-install.png) -1. In Windows, extract downloaded archive and find .exe to launch - -### Run Boundary Desktop - -1. Open the Boundary Desktop application - - - - - -![](/img/desktop/macos/boundary-desktop-open.png) - - - - - -![](/img/desktop/windows/boundary-desktop-open.png) - - - - - -1. You'll be prompted for the Boundary server origin, this is the URL for the client - to connect to the Boundary API. If you are running a local `dev` mode server, this - URL will be `http://localhost:9200` - - - - - -![](/img/desktop/macos/boundary-desktop-origin.png) - - - - - -![](/img/desktop/windows/boundary-desktop-origin.png) - - - - - -1. You can now login to Boundary. We're using a `dev` mode server in this example with the - username `admin` and the password `password` - - - - - -![](/img/desktop/macos/boundary-desktop-login.png) - - - - - -![](/img/desktop/windows/boundary-desktop-login.png) - - - - - -1. After logging in, you should see the targets your user is authorized to connect to. Since - we are using a `dev` mode server we see the default generated target for `127.0.0.1:22` - - - - - -![](/img/desktop/macos/boundary-desktop-landing.png) - - - - - -![](/img/desktop/windows/boundary-desktop-landing.png) - - - - - -### Connect! - --> The rest of this example assumes you're running Boundary in `dev` mode. - -1. Click on `connect` next to the default target. A pop-up window will display the local - address of the proxy and the ephemeral port for the session - - - - - -![](/img/desktop/macos/boundary-desktop-connect.png) - - - - - -![](/img/desktop/windows/boundary-desktop-connect.png) - - - - - -1. Navigate to the `Sessions` pane and you'll see this session is in `pending` state because we - haven't made a connection to it yet (but will!) - - - - - -![](/img/desktop/macos/boundary-desktop-pending.png) - - - - - -![](/img/desktop/windows/boundary-desktop-pending.png) - - - - - --> The next step assumes you have a SSH server running that the default target will connect to. - -1. On the CLI, `ssh` to the target using the local ephemeral port created in the previous step - -```shell-session -$ ssh -p 49250 127.0.0.1 -The authenticity of host '[127.0.0.1]:49250 ([127.0.0.1]:49250)' can't be established. -ECDSA key fingerprint is SHA256:glO05n2iT8Roqak5G63gMKnW8qsE0lxy0MPWcWC7iqg. -Are you sure you want to continue connecting (yes/no/[fingerprint])? yes -Warning: Permanently added '[127.0.0.1]:49250' (ECDSA) to the list of known hosts. -Password: -Last login: Thu Feb 11 17:49:09 2021 -$ -``` - -1. Navigate back to the sessions view and you'll see this session is now active - - - - - -![](/img/desktop/macos/boundary-desktop-active.png) - - - - - -![](/img/desktop/windows/boundary-desktop-active.png) - - - - - -1. Click `Cancel` to cancel the session and you'll see the status go to `canceling` briefly, then `terminated` - - - - - -![](/img/desktop/macos/boundary-desktop-terminated.png) - - - - - -![](/img/desktop/windows/boundary-desktop-terminated.png) - - - - - -1. Navigate back to the CLI and you'll see your SSH session has closed diff --git a/website/content/docs/api-clients/index.mdx b/website/content/docs/api-clients/index.mdx deleted file mode 100644 index 84e40c11e..000000000 --- a/website/content/docs/api-clients/index.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: docs -page_title: API/Clients -description: >- - Discover resources to learn more about Boundary's API and clients. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# API and 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 Go SDK and a Desktop client. diff --git a/website/content/docs/api/index.mdx b/website/content/docs/api/index.mdx deleted file mode 100644 index 4f38bbe0c..000000000 --- a/website/content/docs/api/index.mdx +++ /dev/null @@ -1,115 +0,0 @@ ---- -layout: docs -page_title: API overview -description: >- - Learn about Boundary's HTTP API standards, status codes, path layout, methods, and headers. Understand how rate limiting helps manage system resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary API overview - -Boundary's API is a JSON-based HTTP API that adheres to a set of standards that are rigidly followed. At its core, it is a standards-compliant JSON API for both input and output. - -Before reading this page, it is useful to understand Boundary's [domain model](/boundary/docs/domain-model) to be aware of the terminology used here. - -Boundary's API is also described via OpenAPI v2; the version corresponding to any tag of Boundary's source code can be found in Boundary's [GitHub repository](https://github.com/hashicorp/boundary/blob/main/internal/gen/controller.swagger.json). - - - -Refer to the [API page](/boundary/api-docs) for a rendered version of this generated API definition. - - - -Boundary's current API version is 1; all API paths begin with `/v1/`. - -## Status codes - -- `2XX`: Boundary returns a code between `200` and `299` on success. Generally this is `200`, but implementations should be prepared to accept any `2XX` status code as indicating success. If a call returns a `2XX` code that is not `200`, it will follow well-understood semantics for those status codes. Any `delete` actions return `204` on success. -- `400`: Boundary returns `400` when a command cannot be completed due to invalid user input, except for a properly-formatted identifier that does not map to an existing resource, which will return a `404` as discussed below. -- `401`: Boundary returns `401` if no authentication token is provided or if the provided token is invalid. A valid token that simply does not have permission for a resource will return a `403` instead. A token that is invalid or missing, but where the anonymous user (`u_anon`) is able to successfully perform the action, will not return a `401` but instead will return the result of the action. -- `403`: Boundary returns `403` if a provided token was valid but does not have the grants required to perform the requested action. -- `404`: Boundary returns `404` if a resource cannot be found. Note that this happens _prior_ to authentication/authorization checking in nearly all cases as the resource information (such as its scope, available actions, etc.) is a required part of that check. As a result, an action against a resource that does not exist will return a `404` instead of a `401` or `403`. While this could be considered an information leak, since IDs are randomly generated and this only discloses whether an ID is valid, it's tolerable as it allows for far simpler and more robust client implementation. -- `405`: Boundary returns a `405` to indicate that the method (HTTP verb or custom action) is not implemented for the given resource. -- `429`: Boundary returns a `429` if any of the API rate limit quotas have been exhausted for the resource and action. It includes the `Retry-After` header so that the client knows how long to wait before making a new request. -- `500`: Boundary returns `500` if an error occurred that is not (directly) tied to invalid user input. If a `500` is generated, information about the error will be logged to Boundary's server log but is not generally provided to the client. -- `503`: Boundary returns a `503` if it is unable to store a quota due to the API rate limit being exceeded. It includes the `Retry-After` header so that the client knows how long to wait before making a new request. - -## Path layout - -Boundary follows a predictable path layout. There are two fundamental types of URL paths, each supporting a different set of operations. - -### Collections - -Collections of resources are top level paths with plural English names for the resource, e.g. `/roles` and `/hosts`. Collections support the following operations: - -- Creation of new resources within that collection -- Listing of resources within that collection - -All collection operations require supplying the enclosing resource. Depending on the collection type, this will be one of the following: - -- A scope, indicating the scope in which an operation should take place. For instance, a POST to `/roles` would need to indicate whether the role should be created within the `global` scope or an org-level scope like `o_1234567890`. -- A parent resource of the appropriate type. For instance, hosts and host sets are child resources of host catalogs. When creating a new host set within a host catalog, a POST to `/host-sets` would need to indicate the host catalog ID with which the host-set should be associated. - -### Resources - -Resources themselves are defined by ID specifiers within a collection path, e.g. `/roles/r_1234567890`. Resources support the following operations: - -- Reading a resource's properties -- Updating a resource's properties -- Deleting a resource -- Custom methods specific to a resource type - -Depending on the resource type, various parameters may be available. Some are common across all resource types (e.g. `name` and `description`); others are available only for specific types. Further, some concrete-types of abstract resources include an opaque `attributes` JSON object with type-specific values. - -For instance, an auth method is an abstract type; a `password` auth method is a concrete implementation of that type. When creating such an auth method, a `type` parameter will indicate that it should be the `password` type, while values specific to the `password` type auth method, such as minimum password length, will be contained within an `attributes` object. - -## Methods - -The following method conventions are used within Boundary's API: - -### GET - -`GET` is used for reading a resource or listing resources in a collection. The behavior depends on whether the `GET` is issued against a collection (`/roles`) or a singular resource (`/roles/r_1234567890`). In the former case it lists resources within the collection; in the latter it performs a read on that particular resource. - -### POST - -`POST` is used for creating a resource or performing custom actions against a resource. When creating a resource, `POST` is used against a collection (`/roles`). When performing a custom action, `POST` is used against a particular resource (`/roles/r_1234567890:set-principals`). - -### PATCH - -`PATCH` is used to update a resource's parameters. The following are behaviors to be aware of when using `PATCH`: - -- In nearly all cases, a `version` parameter is required. This is used for check-and-set, to ensure that the update operation is being performed against a known resource. The version parameter is returned from a `GET` operation on the resource so the current version, along with the resource's other current values, can be looked up at any time. -- Passing a JSON `null` for a parameter has the effect of reverting that parameter to its default. For some parameters (e.g. `name`) this will simply clear the value (as the default `name` for a resource is empty); for other parameters this will revert to the current defaults within Boundary. -- All parameters specified as part of a `PATCH` operation will be considered to be parameters that should be updated. - -### DELETE - -`DELETE` is used for deleting a specific resource, and is only used against a particular resource path. - -## HTTP headers - -Clients that make requests to the controller API can inspect HTTP response headers to understand the configured limits and current usage. -Responses may contain the following headers: - -- `RateLimit` - Provides the current limit, number of remaining requests, and the time at which the quota will reset for the limit that is closest to being exhausted for the requested resource and action. -- `RateLimit-Policy` - Describes the limits for the requested resource and action. -- `X-Correlation-ID` - Identifies a transaction over a series of requests and responses. -The `X-Correlation-ID` header is a universally unique identifier (UUIDv4). -If you provide an `X-Correlation-ID` header in an HTTP request, Boundary logs that value for all audit events related to the request. -It then uses that value as the header when it makes related requests to an external system, such as Vault, so that you can correlate the event between the product logs. -If you do not provide an `X-Correlation-ID` header, Boundary generates a unique value for each incoming request. - -## Manage system resources - -If your controllers try to process every API request, they may either run out of resources or overwhelm the database server. -Boundary features API rate limiting to help prevent system resources from being overwhlemed by too many simultaneous requests. -For more information, refer to [API rate limiting](/boundary/docs/api/rate-limiting). - -When you search for Boundary resources using the `list` operation, you could potentially receive a very large number of results. -Boundary uses an API pagination feature to enable you to search and filter large lists of search results without overwhelming your system resources. -Refer to [API list pagination](/boundary/docs/api/pagination) for more information about pagination and using the local cache for searches. \ No newline at end of file diff --git a/website/content/docs/api/pagination.mdx b/website/content/docs/api/pagination.mdx deleted file mode 100644 index 555281b5b..000000000 --- a/website/content/docs/api/pagination.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -layout: docs -page_title: API list pagination -description: >- - Learn about API pagination and how the cache works in Boundary to prevent system resources from being overwhelmed and to help you find resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# API list pagination - -Boundary uses an API pagination feature to support searching and filtering large lists of results without overwhelming your system resources. - -## Introduction - -When you perform a `list` operation on a resource, the API request returns the first 1000 results, by default. -You can request the next page of results by repeating the `list` command and including a parameter with a token provided by Boundary. - -## Initial pagination - -When you run a `list` operation on a resource, the initial results are sorted in descending order by creation time and public ID (most recently created first). -Boundary returns the maximum number of responses along with the top-level fields `response_type` and `list_token`. -If the `response_type` is `delta`, it means there are more items available in the list. - -List tokens contain general metadata associated with the ongoing pagination. -To request the next page of results, run the `list` operation again and include the `list_token` that Boundary provided in the last response. -Boundary returns the next page of results with new `response_type` and `list_token` values. - -![API pagination workflow](/img/api-pagination/pagination-workflow.png) - -You can continue viewing new pages of results using the `list_token` values until the `response_type` reads `complete`. -If you compose an invalid token, you receive an invalid token error. - -## Request updated and deleted resources - -When the `response_type` reads `complete`, you have viewed all the results that were available when you ran the initial `list` operation. -You can now request any resources that were updated or deleted since you started paginating. - -To refresh the cached list results, make another `list` request using the `list_token` from the previous response. -Boundary returns a `response_type` and `list_token` as part of the response, similarly to when you ran the initial operation. -If the `response_type` is `delta`, it means there are more items available in the list. -You can use the `list_token` as a parameter to continue viewing new pages of results until the `response_type` reads `complete`. - -Boundary also includes the top-level response `removed_ids` as part of the refresh operation. -The `removed_ids` response contains the IDs of any resources that were deleted since you began paginating the results of the previous `list` operation. -Any resources that have been deleted are included on the first page of results. - -After 30 days, the `list_token` expires and you must make a new `list` request without the token to regenerate the full list of results. -If you make a `list` request using a token that has a `create_time` older than 30 days, Boundary treats it as an invalid token and returns an error. - -## Response structure - -All `list` endpoints support the following parameters: - -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not include a value, or if you include a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -Boundary returns the following response parameters: - -- `response_type` - Defines whether the response is a `delta` or `complete` listing. -The value is `delta` until the last page is returned, at which point it will be `complete`. -- `list_token` - An opaque token which is included in subsequent listing requests after the initial one, so that the client can continue to paginate the results. -- `sort_by` - The column name that the returned items should be sorted on. -This attribute is included in the response, so that the sort order for each endpoint is explicit. -- `sort_dir` - The direction in which the returned items are sorted. -Responses can include `desc` for descending, or `asc` for ascending. -- `items` - The list of items. -- `est_item_count` - An unsigned integer that indicates the total number of items that are available in the list of results. -This number may be an estimate, since the number of items may change during the pagination process. - -### Example response - -```json -{ - "response_type": "", - "list_token": "", - "sort_by": "created_time", - "sort_dir": "desc", - "est_item_count": 1000, - "items": [ - { - "id": "ttcp_1234567890", - "scope_id": "p_1234567890" - }, - { - "id": "ttcp_2234567890", - "scope_id": "p_1234567890" - } - ] -} -``` - -## Constraints and limitations - -In scenarios where updates are so frequent that the results may change while the refresh operation runs, those updates may not appear at all in the refreshed list. -If you make frequent updates to a resource, or if you are updating data while you run a `list` operation, HashiCorp recommends that you generate the full list of results instead of performing a refresh. - -Workers are not included in refresh operations because the updates they send to the controller are too frequent to be captured in a refresh. -To update a list of worker resources, you must regenerate the full list of results. - -When you refresh the list of results, you may notice duplicate items in the list. -This is a fundamental tradeoff when you search across multiple database transactions. \ No newline at end of file diff --git a/website/content/docs/api/rate-limiting.mdx b/website/content/docs/api/rate-limiting.mdx deleted file mode 100644 index 7c3b5ef4d..000000000 --- a/website/content/docs/api/rate-limiting.mdx +++ /dev/null @@ -1,204 +0,0 @@ ---- -layout: docs -page_title: API rate limiting -description: >- - Learn how API rate limiting lets you configure limits on the rates of API requests in Boundary to help manage resources and prevent them from being overwhelmed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Rate limiting - -If your controllers try to process every API request, it can lead to situations when the controllers are overwhelmed with requests. -The controllers may either run out of resources or overwhelm the database server and exhaust its resources. -API rate limiting lets you configure limits on the rate of API requests to help manage your resources and prevent them from being overwhelmed. - -## Quotas - -Boundary creates quotas to track the number of requests in a given time period. -By default, Boundary tracks the number of requests by auth token, IP address, and the overall total. -Boundary reserves a portion of its memory for tracking quotas to ensure that it does not consume too much memory if there is a sudden burst of requests. - -If Boundary is unable to store a quota, it limits the request with a 503 HTTP status code. -You can configure the maximum number of quotas Boundary allows using the `api_rate_limit_max_quotas` variable. -There are also two metrics that allow you to monitor quota tracking: - -- `boundary_controller_api_ratelimiter_quota_storage_capacity` -- `boundary_controller_api_ratelimiter_quota_storage_usage` - -## Default limits - -API rate limiting is enforced on the controllers. -There are separate configurable limits for each combination of resource and action. -By default, the limits for `list` actions are: - -- 150 requests per 30 seconds per auth token -- 1,500 requests per 30 seconds per IP address -- 1,500 requests per 30 seconds in total - -The default limits for all other actions are: - -- 3,000 requests per 30 seconds per auth token -- 30,000 requests per 30 seconds per IP address -- 30,000 requests per 30 seconds in total - -You can override the default settings and configure other specific limitations using the `api_rate_limit` stanza in the controller configuration. - -## Rate limiting HTTP headers - -Clients that make requests to the controller API can inspect HTTP response headers to understand the configured limits and current usage. -Each response contains the `RateLimit` and `RateLimit-Policy` headers. - -If the request is rate limited, Boundary sends the client a 429 HTTP status code with a `Retry-After` header. -The `Retry-After` header contains the number of seconds the client should wait before it sends the request again. - -For more information, refer to [HTTP headers](/boundary/docs/api#http-headers). - -## More information - -Refer to the [controller stanza](/boundary/docs/configuration/controller#api_rate_limit) documentation for the specific `api_rate_limit` configuration options. -Some example configurations are listed below. - -### Rate limiting configuration examples - -The following example shows a simple configuration where the same limits are applied to all resources and examples: - -```hcl -controller { - # Total limit for all resources and actions - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "total" - limit = 500 - period = "1s" - } - - # Limit for all IP addresses to all resources and actions to prevent a - # malicious host that is fabricating tokens or spamming unauthed endpoints - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "ip-address" - limit = 100 - period = "1s" - } - - # Limit for all authed requests to prevent one user - # from consuming all of the total limit - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "auth-token" - limit = 100 - period = "1s" - } -} -``` - -The following example shows a configuration that disables rate limiting. -You may want to disable rate limiting if you already use an external system like a reverse proxy to apply rate limiting: - -```hcl -controller { - api_rate_limit_disable = true -} -``` - -The following example uses the default settings for most endpoints, but configures a single override: - -```hcl -controller { - api_rate_limit { - resources = ["target"] - actions = ["list"] - per = "auth-token" - limit = 10 - period = "1s" - } -} -``` - -The following example is more complex. -Initially it sets some defaults to apply to all resources and actions. -Then it configures some specific endpoints with different limits. - -```hcl -controller { - # Total limit for all resources and actions - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "total" - limit = 500 - period = "1s" - } - - # Total limit for all list operations, - # sets an overall cap on the list action since it is relatively expensive - api_rate_limit { - resources = ["*"] - actions = ["list"] - per = "total" - limit = 200 - period = "1s" - } - - # Limit for IP address to all resources and actions - # to prevent a malicious host that is fabricating tokens - # or spamming unauthed endpoints - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "ip-address" - limit = 50 - period = "1s" - } - - # Limit of all authed requests, this essentially sets a default - # for all authed requests to prevent one user from consuming - # all of the total list limit set above. Any limits that follow - # can override the default for specific sets of resources and actions - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "auth-token" - limit = 100 - period = "1s" - } - - # Limit of all list operations by auth token to set a sane default - # since they are generally more expensive - api_rate_limit { - resources = ["*"] - actions = ["list"] - per = "auth-token" - limit = 50 - period = "1s" - } - - # Limit for targets and sessions list by auth token. These are resources - # that clients will want to list frequently, but might be more expensive - # if there is a large number of them for each user. Having a lower limit - # encourages the use of refresh tokens and caching. - api_rate_limit { - resources = ["target", "session"] - actions = ["list"] - per = "auth-token" - limit = 20 - period = "1s" - } - - #Limit for authorize session by auth token - api_rate_limit { - resources = ["target"] - actions = ["authorize-session"] - per = "auth-token" - limit = 150 - period = "1s" - } -} -``` \ No newline at end of file diff --git a/website/content/docs/architecture/fault-tolerance.mdx b/website/content/docs/architecture/fault-tolerance.mdx deleted file mode 100644 index 794a971c2..000000000 --- a/website/content/docs/architecture/fault-tolerance.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: docs -page_title: Fault tolerance recommendations -description: >- - Understand Boundary fault tolerance recommendations to increase availability, reduce risk. Minimize the impact of node, availability zone, and regional failures. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Fault tolerance recommendations - -Review the following fault tolerance recommendations to ensure increased availability and reduced risk. - -## Node failure - -Boundary controllers store all state and configuration within a PostgreSQL database that must not be deployed on the controller nodes. -When a controller node fails, users are still able to interact with other Boundary controllers, assuming the presence of additional nodes behind a load balancer. - -Boundary workers are used as either proxies or reverse proxies. -Boundary workers routinely communicate with Boundary controllers to report their health. -In the event of a Boundary worker node failure, it is a best practice to have at least three Boundary workers per network boundary, per type (ingress and egress). -Therefore, the controller assigns a user's proxy session to an active Boundary worker node. - -## Availability zone failure - -By deploying Boundary controllers in the recommended architecture across three availability zones with load balancing in front of them, the Boundary control plane can survive outages in up to two availability zones. - -The best practice for deploying Boundary workers is to have at least one worker deployed per availability zone. -In the case of an availability zone outage, if the networking service is still up, users will have their attempted session connection proxied through a worker in a different availability zone and then onto the target, granted the proper security rules are in place to allow for cross subnet/availability zone communication. - -## Regional failures - -Generally speaking, when there is a failure in an entire cloud region, the resources running in that region are most likely inaccessible, especially if the networking service is affected. - -To continue to serve Boundary controller requests in the event of a regional outage, there must be a deployment like the one outlined in this guide in a different region. -The nodes in the secondary region must be able to communicate with the PostgreSQL database, which can be accomplished with multi-regional database technologies from the various cloud providers (for example AWS RDS Read Replicas, where a read replica can be promoted to a primary in the event the primary resides in a failed region). - -Another point of consideration is how to handle load balancing Boundary controller requests to regions that are not in a failed state. -Services like AWS Global Accelerator for AWS, Cross-Region Load Balancer for Azure, and GCP Cloud Load Balancer for GCP all provide this level of functionality with some configuration. - -Refer to your cloud provider's documentation for additional information regarding multi-region disaster recovery strategies for PostgreSQL. - -In the case of a regional outage, if a Boundary worker cannot reach its upstream worker, cannot reach a controller, a user cannot reach the worker, or any combination of the above, the user is not able to establish a proxied session to the target. diff --git a/website/content/docs/architecture/high-availability.mdx b/website/content/docs/architecture/high-availability.mdx deleted file mode 100644 index e06b3be61..000000000 --- a/website/content/docs/architecture/high-availability.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -layout: docs -page_title: High availability installation -description: >- - Learn about network requirements and architecture to set up Boundary for high availability, including database, load balancer, and configuration best practices. - ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# High availability installation - -Installing Boundary as a high availability service requires certain infrastructure considerations. At the most basic level, running 3 controller and 3 worker instances gives a fundamental level of high availability for the control plane (controller), as well as bandwidth for a number of sessions on the data plane (worker). Both server types should be run in a fault-tolerant configuration, that is, in a self-healing environment such as an auto-scaling group. The documentation here does not cover self-healing infrastructure and assumes the operator has their preferred scheduling methods for these environments. - -## Network requirements - -The following ports should be available: - -- Clients must have access to the Controller's `api` port (default 9200) -- Clients must have access to the Worker's port (default 9202) -- Workers must have access to the Controller's `cluster` port (default 9201) -- Workers must have a route and port access to the hosts defined within the system to provide connectivity - -## Architecture - -The general architecture for the server infrastructure requires 3 controllers and 3 workers. Note that it is possible to run a controller and worker within the same process, but the guide here assumes separate deployments. The documentation here uses virtual machines running on Amazon EC2 as the example environment, but this use case can be extrapolated to almost any cloud platform to suit operator needs: - -![](/img/boundary-network.png) -![Boundary network diagram](/img/boundary-network_light.png#light-theme-only) -![Boundary network diagram](/img/boundary-network_dark.png#dark-theme-only) - -As shown above, Boundary is broken up into its controller and worker server components across 3 [EC2 instances](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance), in -3 separate [subnets](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet), in three separate availability zones, with the controller API and UI being publically exposed by an [application load balancer (ALB)](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb). The worker and controller VM's are in independent [auto-scaling groups](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_group), allowing them to maintain their exact capacity. - -The workers must be able to establish a connection to the hosts with which they interact. In the architecture above, we place them in the public subnet so our remote client can establish a session between them and the target VM. - -Boundary requires an external [Postgres](https://www.postgresql.org/) and [KMS](https://aws.amazon.com/kms/). In the example above, we're using AWS managed services for these components. For Postgres, we're using [RDS](https://aws.amazon.com/rds/) and for KMS we're using Amazon's [Key Management Service](https://aws.amazon.com/kms/). - -### Database - -Boundary controllers must be able to reach the PostgreSQL database. -If you use a high availability (HA) configuration, then the controllers must have access to the PostgreSQL server infrastructure. - -For more information about configuring the Postgres database for HA, refer to the [Postgres high availability, load balancing, and replication documentation](https://www.postgresql.org/docs/current/high-availability.html). -If you use a managed service, refer to your provider's PostgreSQL high availability documentation. - -### API and console load balancer - -Load balancing the controller allows operators to secure the ingress to the Boundary system. We recommend placing all Boundary servers in private networks and using load balancing techniques to expose services such as the API and administrative console to public networks. In the high availability architecture, we recommend load balancing using a layer 7 load balancer and further constraining ingress to that load balancer with layer 4 constraints such as [security groups](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) or [IP tables](https://wiki.archlinux.org/index.php/Iptables). - -For general configuration, we recommend the following: - -- HTTPS listener with valid TLS certificate for the domain it's serving or TLS passthrough -- Health checks should use TCP port 9200 - -### Controller configuration - -When running Boundary controller as a service we recommend storing the file at `/etc/boundary.d/boundary-controller.hcl`. A `boundary` user and group should exist to manage this configuration file and to further restrict who can read and modify it. - -For detailed configuration options, see our [configuration docs](/boundary/docs/configuration). diff --git a/website/content/docs/architecture/recommended-architecture.mdx b/website/content/docs/architecture/recommended-architecture.mdx deleted file mode 100644 index 6c2837e7f..000000000 --- a/website/content/docs/architecture/recommended-architecture.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: docs -page_title: Recommended architecture -description: >- - Learn about the recommended architectures for two main Boundary user workflows: an administrator configuring Boundary and an end user connecting to a target. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Recommended architecture - -Boundary has two main user workflows to consider when you deploy it to production. - -## Administrative workflow - -The first is the Boundary administration workflow, where an administrator uses either the Boundary CLI or GUI to configure Boundary. -In this scenario, the administrator interfaces solely with the Boundary controllers, and a load balancer can be used to balance requests across multiple controllers. -The Boundary controllers do not directly communicate with one another, all configuration and state is managed through an RDBMS, in this case PostgreSQL. - -The following diagram shows the recommended architecture for deploying Boundary controller nodes within a single region: - -![Single region deployment](/img/single-region.png) - -Boundary controllers are stateless and do not operate using consensus protocols such as Raft. -They are therefore able to withstand failure scenarios where only one node is accessible. - -If deploying Boundary to three availability zones is not possible, you can use the same architecture across one or two availability zones, at the expense of reliability risk in case of an availability zone outage. - -## Connect to a target workflow - -The second workflow is a user connecting to a Boundary target. -In this scenario, the user initiates a session connecting to a target they have been granted access to using either the Boundary CLI or desktop application. - -1. If the user is not authenticated, they must first authenticate by communicating with the Boundary controllers and any relied-upon OIDC IdP, if necessary. -1. Once authenticated, the user's session can be initiated and a tunnel is built from their client to an ingress worker. -If there are multiple layers of network boundaries, a tunnel is built from the ingress worker to an egress worker. -1. The last step is traffic being proxied through the egress worker to the target. - -It is ideal to have multiple ingress and egress workers with the same configurations within each network boundary to provide high availability. -Load balancing the Boundary workers is not recommended, as the Boundary control plane handles session scaling and balancing when users start sessions. - -The following diagram shows the recommended architecture for deploying Boundary workers: - -![Worker deployment](/img/worker-deployment.png) - -The Boundary controllers also depend on a PostgreSQL database. -This database should be deployed in a fashion where it is reachable by all Boundary controller nodes. - -## Community reference architectures - -A number of community-supported reference architectures for non-dev deployments can be found in Boundary's dedicated [reference architecture repo](https://github.com/hashicorp/boundary-reference-architecture). - -While some initial reference deployments have been seeded by the Boundary team, the seeded examples are for demonstration purposes only and are intended convey how to get Boundary up and running on popular cloud and container platforms. - -We highly encourage organizations who use Boundary in production environments to contribute configurations to the repo so that the community may benefit from them. diff --git a/website/content/docs/architecture/system-requirements.mdx b/website/content/docs/architecture/system-requirements.mdx deleted file mode 100644 index 3df95971c..000000000 --- a/website/content/docs/architecture/system-requirements.mdx +++ /dev/null @@ -1,234 +0,0 @@ ---- -layout: docs -page_title: System requirements -description: >- - Learn about Boundary system requirements including recommendations for hardware sizing, network connectivity, traffic encryption, databases, and load balancers. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# System requirements - -This topic contains specific recommendations for system requirements. - - - -All specifications outlined in this topic are minimum recommendations without -any reservations towards vertical scaling, redundancy, or other site reliability -needs. - -All resource requirements are directly proportional to the operations -performed by the Boundary cluster, and the end users' level of usage. - - - -To match your requirements and maximize the stability of your Boundary -controller and worker instances, perform load tests and monitor -resource usage including reported matrices from Boundary's telemetry. - -Refer to [Monitor Boundary](/boundary/docs/monitor) for -more information. - -## Hardware sizing for Boundary servers - -Refer to the tables below for sizing recommendations for controller nodes and -worker nodes, as well as small and large use cases based on expected usage. - -Controller nodes - -| Size | CPU | Memory | Disk capacity | Network throughput | -|-------|------------|----------------|---------------|--------------------| -| Small | 2 - 4 core | 8 - 16 GB RAM | 50+ GB | Minimum 5 Gbps | -| Large | 4 - 8 core | 32 - 64 GB RAM | 100+ GB | Minimum 10 Gbps | - -Worker nodes - -| Size | CPU | Memory | Disk capacity | Network throughput | -|-------|------------|----------------|---------------|--------------------| -| Small | 2 - 4 core | 8 - 16 GB RAM | 50+ GB | Minimum 10 Gbps | -| Large | 4 - 8 core | 32 - 64 GB RAM | 100+ GB | Minimum 10 Gbps | - -To ensure predictable performance, we recommend that you -avoid "burstable" CPU and storage options whose performance may degrade -under continuous load. - -## Hardware considerations - -The Boundary controller and worker nodes perform two different tasks. -The Boundary controller nodes handle requests for authentication and -configuration. -The Boundary worker nodes proxy client connections to Boundary -targets which may require additional resources. - -Depending on the number of clients connecting to Boundary targets at any given -time, Boundary workers can become memory or file descriptor constrained. -As your users create new sessions, the Boundary worker node opens more sockets and -ultimately creates additional file descriptors. Monitor both the -file descriptor usage and the memory consumption of each Boundary worker node. - -## Network considerations - -The amount of network bandwidth used by the Boundary controllers and workers -depends on your specific usage patterns. -For the Boundary controller, even a high request volume does not -translate to a large amount of network bandwidth consumption. - -Boundary worker nodes proxy client sessions to Boundary targets. The -bandwidth consumption depends on the amount of potential clients, -the number of sessions created, and the amount of data transferred -between the user and the Boundary targets. - -It is also important to consider bandwidth requirements to other external -systems such as monitoring and logging collectors. -It may be necessary to increase the size of the virtual machine to take -advantage of additional throughput in certain circumstances. - -Refer to the following pages for provider-specific virtual machine networking -limitations: - -- [AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) -- [Azure](https://learn.microsoft.com/en-us/azure/virtual-network/virtual-machine-network-throughput/) -- [GCP](https://cloud.google.com/compute/docs/network-bandwidth/) - -## Network connectivity - -The following table outlines the default ingress network connectivity -requirements for Boundary cluster nodes. - -If you restrict network egress, ensure you allow outgoing access from: - -- The Boundary controllers to any external integration providers (for example, - OIDC authentication providers) as well as external log handlers, metrics - collection, and security and configuration management providers. - -- The Boundary workers to controllers and any upstream workers. - - - -If any of the default port mappings do not meet your organization's -requirements, you can update the default listening ports using the resource's -[listener](/boundary/docs/monitor/listeners) stanza. - - - -![Boundary network](/img/boundary-network.png) - -| Source | Destination | Default destination port | protocol | Purpose | -| --------------- | --------------------------- | ------------------------ | --------- | -------------------------------------- | -| Client machines | Controller load balancer | 443 | tcp | Request distribution | -| Load balancer | Controller servers | 9200 | tcp | Boundary API | -| Load balancer | Controller servers | 9203 | tcp | Health checks | -| Worker servers | Controller load balancer | 9201 | tcp | Session authorization, credentials, etc | -| Controllers | PostgreSQL | 5432 | tcp | Storing system state | -| Client machines | Worker servers \* | 9202 | tcp | Session proxying | -| Worker servers | Boundary targets\* | various | tcp | Session proxying | -| Client machines | Ingress worker servers \*\* | 9202 | tcp | Multi-hop session proxying | -| Egress workers | Ingress worker servers \*\* | 9202 | tcp | Multi-hop session proxying | -| Egress workers | Boundary targets \*\* | various | tcp | Multi-hop session proxying | - -\* In this scenario, the client connects directly to one worker, which then -proxies the connection to the Boundary target. - -** Multi-hop sessions start reverse proxy tunnels when the downstream workers -start and connect to upstream workers. - -There are four steps when a client requests to connect to a target that requires -a multi-hop path: - -1. The client connects to an ingress worker. - -1. The ingress worker connects with the next-downstream or egress worker through - that worker's established reverse-proxy tunnel. This step may be repeated - multiple times if there are multiple worker connections in the middle of the - tunnel chain. - -1. The final downstream egress worker connects to the Boundary target. - -1. The client can now send data through the tunnel chain. - -A multi-hop worker that acts as a downstream can start a tunnel to one or -more upstream workers, specified in the `initial_upstreams` list in the -worker configuration. - -## Network traffic encryption - -You should encrypt connections to the Boundary control plane at the controller -nodes using standard PKI HTTPS TLS. - -You can use either a layer 4 load balancer to pass through traffic to the -Boundary controllers, or a layer 7 load balancer with no configured TLS -termination. - -## Database recommendations - -Boundary clusters depend on a PostgreSQL database for managing state and -configuration. -Ensure you are using a version of PostgreSQL covered under [Boundary's supported -version -policy](https://developer.hashicorp.com/boundary/docs/enterprise/supported-versions#postgresql-support-policy). - -Each major cloud provider offers a managed PostgreSQL database service: - -| Cloud provider | Managed database service | -|----------------|-----------------------------------------------------------------------------------------| -| AWS | [Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/) | -| Azure | [Azure database for PostgreSQL](https://azure.microsoft.com/en-us/products/postgresql/) | -| GCP | [Cloud SQL for PostgreSQL](https://cloud.google.com/sql/postgresql) | - -### Database network requirements - -Boundary controllers must be able to reach the PostgreSQL database. -Worker nodes do not need access to the database. - -### Database users and roles - -Database initialization requires elevated privileges. -When you initialize the database with the `boundary database init` command, the -Boundary database user requires the `superuser` role plus `all privileges` on -the Boundary database. - -Once the database initialization is complete, the database user for a Boundary -controller requires permissions for [data -manipulation](https://www.postgresql.org/docs/current/dml.html) operations -(select, insert, update, and delete). - -### Required PostgreSQL modules - -Boundary has a dependency on the PostgreSQL -[pgcrypto](https://www.postgresql.org/docs/11/pgcrypto.html) module and -[citext](https://www.postgresql.org/docs/11/citext.html), which are part of the -standard modules supplied with PostgreSQL. Refer to the PostgreSQL documentation -for more information. - -## Load balancer recommendations - -For the highest levels of reliability and stability, we recommend that you use -some load balancing technology to distribute requests to your Boundary -controller nodes. - -Boundary workers do not require any load balancing. -The Boundary controller manages load balancing for the Boundary workers when -clients initiate sessions to Boundary targets. - -To monitor the health of Boundary controller nodes, configure the load balancer -to poll the `/health` API endpoint to detect the status of the node and direct -traffic accordingly. - -Each major cloud provider offers one or more managed load balancing services: - -| Cloud | Layer | Layer | Managing load balancing service | -|-------|---------------------|-------|----------------------------------------------------------------------------------------------------------------| -| AWS | Network | 4 | [Network load balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) | -| AWS | Application | 7 | [Application load balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) | -| Azure | Network | 4 | [Azure load balancer](https://learn.microsoft.com/en-us/azure/load-balancer/) | -| Azure | Application | 7 | [Azure application gateway](https://learn.microsoft.com/en-us/azure/application-gateway/) | -| GCP | Network/Application | 4/7 | [Cloud load balancing](https://cloud.google.com/load-balancing/docs/load-balancing-overview) | - -There are also a number of self-hosted options, as well as service discovery -systems like Consul. - -Refer to the [listener stanza -documentation](/boundary/docs/monitor/listeners/) for more information. \ No newline at end of file diff --git a/website/content/docs/client-agent/configuration.mdx b/website/content/docs/client-agent/configuration.mdx deleted file mode 100644 index 353526de3..000000000 --- a/website/content/docs/client-agent/configuration.mdx +++ /dev/null @@ -1,164 +0,0 @@ ---- -layout: docs -page_title: Configure the Client Agent -description: >- - Learn how to configure the Boundary Client Agent to intercept DNS requests, allowing Boundary to proxy connections transparently. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure the Client Agent - -@include 'alerts/enterprise-only.mdx' - -The default configuration included with the Boundary Client Agent upon installation will be suitable for most users. If you want to make changes to the configuration, the configuration file is located in the following directory: - - - - - `/Library/Application Support/HashiCorp/Boundary/boundary-client-agent.hcl` - - - - - `C:\Program Files\Hashicorp Boundary\boundary-client-agent.hcl` - - - - -## Configuration settings - -The configuration file contains the following fields: - -- `alias_refresh_interval` - Specifies how often to refresh the alias cache. The default value is 1 minute. - - Example: - ```hcl - alias_refresh_interval="60s" - ``` - -- `dns_request_timeout` - Specifies for how long the Client Agent DNS request handling, including any recursion, is allowed to run before it is canceled. - - Example: - ```hcl - dns_request_timeout="300s" - ``` - -- `interface_to_use` - Specifies the interface to use instead of the default. - - Example: - ```hcl - interface_to_use="en1" - ``` - -- `log_file` - Specifies where to write the Boundary Client Agent log file to. - - Example: - ```hcl - log_file="/Library/Application\ /Support/HashiCorp/Boundary/boundary-client-agent.log" - ``` - -- `log_level` - Specifies the verbosity of the Client Agent logs. - - Example: - ```hcl - log_level="DEBUG" - ``` - -- `log_to_stdout` - Logs to STDOUT in addition to the `boundary-client-agent.log` file. - - Example: - ```hcl - log_to_stdout=false - ``` - -- `override_upstream_dns_servers` - Lists the DNS servers that should be used for recursing non-Boundary requests, overriding those configured on the system. - - Example: - ```hcl - override_upstream_dns_servers = ["8.8.8.8", "8.8.4.4"] - ``` - -- `state_file` - Specifies where to write the Boundary Client Agent state file to. This is an ephemeral file which is removed on successful shutdown. - - Example: - ```hcl - state_file="/Library/Application\ /Support/HashiCorp/Boundary/boundary-client-agent-state.json" - ``` - -- `v4_prefix` - Specifies an alternate prefix to use for generating IPs. Currently must be between /8 and /16 - - Example: - ```hcl - v4_prefix=1.1.1.1/8 - ``` - -## Change the configuration - -Complete the following steps to change the configuration of the Client Agent: - - - - -1. As a privileged user, open the Boundary Client Agent configuration file in the editor of your choice. -By default, it is located in the following directory: - - `/Library/Application Support/HashiCorp/Boundary/boundary-client-agent.hcl` - -1. Change the configuration settings, and save the file. - - - - You must restart the Client Agent to update some configuration settings. - However, when you restart the Client Agent, it closes any existing sessions. - Other configuration settings can be updated by only reloading the configuration file, which does not affect any existing sessions. - - - -1. Either reload the configuration file or restart the Client Agent. - - You can change the following configuration values by reloading the configuration file, which will not disrupt any existing sessions: - - - `dns_request_timeout` - - `log_file` - - `log_level` - - `state_file` - - `override_upstream_dns_servers` - - `v4_prefix` - - Run the following command to reload the configuration file: - - ```shell-session - $ sudo pkill -1 boundary-client-agent - ``` - - If you want to update another configuration value, you can restart the Client Agent using the following commands, however it will close any existing sessions: - - ```shell-session - $ sudo launchctl stop com.hashicorp.boundary.boundary-client-agent - $ sudo launchctl start com.hashicorp.boundary.boundary-client-agent - ``` - - - - -1. As a privileged user, open the Boundary Client Agent configuration file in the editor of your choice. -By default, it is located in the following directory: - - `C:\Program Files\Hashicorp Boundary\boundary-client-agent.hcl` - -1. Change the configuration settings, and save the file. -1. Run the following commands to restart the Client Agent. - - ```shell-session - net stop BoundaryClientAgent - net start BoundaryClientAgent - ``` - - Note that when you restart the Client Agent, it closes any existing sessions. - - - \ No newline at end of file diff --git a/website/content/docs/client-agent/conflicting-software.mdx b/website/content/docs/client-agent/conflicting-software.mdx deleted file mode 100644 index fd14f78c0..000000000 --- a/website/content/docs/client-agent/conflicting-software.mdx +++ /dev/null @@ -1,237 +0,0 @@ ---- -layout: docs -page_title: Client Agent conflicting software -description: >- - Learn how possible conflicts that third-party tools may have with the Boundary Client Agent. Explore possible solutions and workarounds. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Client Agent software conflicts - -Some software is known to cause conflicts with the Boundary Client Agent. -Refer to the [transparent sessions interoperability matrix](/boundary/docs/interoperability-matrix) for a list of the third-party products that have been tested for use with the Boundary Client Agent. - -The following sections are an incomplete list of potential conflicts and any available workarounds for issues. - -## Cloudflare WARP client - -The Cloudflare WARP client uses a local DNS server to direct traffic. -It has built-in checks to prevent it from being run alongside other software that uses the same mechanism. -This includes the Boundary Client Agent. -If you try to use the Client Agent with the Cloudflare WARP client, it may work, or you may see an error like this one: - -``` -Status: Unable to Connect -Error reason: DNS Proxy Failure -Error code: CF_DNS_PROXY_FAILURE -Error description: The WARP Agent must be the only process responsible for DNS resolution on the device. One or more processes are already bound to port 53: boundary-client-agent. -Learn more: https://cfl.re/CF_DNS_PROXY_FAILURE -``` - -You can still install both the Cloudflare WARP client and the Boundary Client Agent on the same machine. -The two products can coexist as long as the WARP client starts first. -Starting the WARP client first binds it to alternate IPs and leaves the domain available for Boundary. - -## Docker Desktop (MacOS) - -Docker Desktop sometimes creates a local DNS listener that prevents the Client Agent from running. -If you run Docker Desktop 4.26 or later, you must clear the `Use kernel networking for UDP` option. -Otherwise, the Client Agent refuses to start. - -## Huntress EDR client (Windows) - -Host isolation and release do not work as expected in Windows when you use the Huntress EDR client with the Boundary Client Agent. -The Huntress EDR client for Windows uses the Windows Filtering Platform (WFP) to isolate devices by blocking all non-essential traffic. This behavior conflicts with the Boundary Client Agent during device isolation. -Specifically, the Boundary Client Agent replaces the default DNS resolver with its own, which can prevent fallback to a secondary DNS when the primary (Boundary) DNS fails during isolation. -As a result, Huntress is unable to maintain server communication, leaving the device stuck in an isolated state. Huntress cannot isolate and release devices properly in Windows under these conditions. - -As a temporary workaround, you can manually configure a secondary DNS (e.g., 8.8.8.8). However, this secondary DNS setting is overwritten when you pause or resume the Boundary Client Agent, so you must configure it again each time. - -This issue does not affect macOS devices, where Boundary and Huntress coexist without additional configuration. - -## Internet Sharing (MacOS) - -Enabling **Internet Sharing** on MacOS causes the system's DNS resolver (`mDNSResponder`) to bind to all interfaces on port 53, preventing the Client Agent from starting. Disable **Internet Sharing** before you run the Client Agent. - -## OpenVPN - -When you run OpenVPN at the same time as the Client Agent, it can create a DNS conflict. -If you are unable to establish a transparent session while using OpenVPN, you may need to explicitly specify a network interface and upstream DNS server(s) to use. - -To configure the DNS server(s) to use, use the `override_upstream_dns_servers` configuration option: - -```hcl -# The DNS servers must be specified as an IP, or an IP:Port. -# If no port is provided, port 53 is assumed. -# The order of the entries specifies the priority. -# We recommended providing both the VPN DNS servers -# and the default DNS servers, so that DNS requests can -# be resolved even when the VPN is not active. -override_upstream_dns_servers = [ - "10.0.0.1", # Example primary VPN DNS server - "10.0.0.2", # Example secondary VPN DNS server - "8.8.8.8", # Fallback default DNS server - "8.8.4.4:53", # Fallback default DNS server with a custom port -] -``` - - - -The `override_upstream_dns_servers` is used for all non-Boundary DNS requests. -If you only provide the VPN DNS servers, the Client Agent will not be able to resolve any DNS requests when the VPN is not active. - - - -If you configured OpenVPN to push DNS servers to the client, it may create additional conflicts. -Refer to the sections below for more information about how this configuration affects MacOS and Windows systems. - -### MacOS - -When OpenVPN is configured to push DNS servers to the client, the client-side service monitors and updates the system DNS settings. -As a result, OpenVPN may attempt to override the Client Agent's configuration. -This scenario can create an unstable network environment and lead to disruptions in user connectivity and service access. -There is no workaround for this scenario at this time. - -### Windows - -When OpenVPN is configured to push DNS servers to the client, it creates `DNSClientNrptRule` entries in Windows that control DNS routing independently of the interface priority. -Although the Client Agent updates the interface's DNS settings, it does not manage the Name Resolution Policy Table (NRPT). -As a result, the OpenVPN rules may override the Client Agent's configuration. -This scenario may lead to conflicts, and there is no supported workaround at this time. - -## Palo Alto Networking Global Protect VPN - -If you are unable to establish a transparent session while using the Palo Alto Networking Global Protect VPN, you may need to explicitly specify a network interface and the upstream DNS server(s) to use. - -By default, the Client Agent reads the primary network interface's DNS server configuration and uses that information to resolve domains that are not configured as aliases in Boundary. -If the VPN configuration includes custom DNS servers, this information may not be available to the Client Agent, so you must explicitly specify the DNS server(s) to use. - -To configure the DNS server(s) to use, use the `override_upstream_dns_servers` configuration option: - -```hcl -# The DNS servers must be specified as an IP, or an IP:Port. -# If no port is provided, port 53 is assumed. -# The order of the entries specifies the priority. -# We recommended providing both the VPN DNS servers -# and the default DNS servers, so that DNS requests can -# be resolved even when the VPN is not active. -override_upstream_dns_servers = [ - "10.0.0.1", # Example primary VPN DNS server - "10.0.0.2", # Example secondary VPN DNS server - "8.8.8.8", # Fallback default DNS server - "8.8.4.4:53", # Fallback default DNS server with a custom port -] -``` - - - -The `override_upstream_dns_servers` is used for all non-Boundary DNS requests. -If you only provide the VPN DNS servers, the Client Agent will not be able to resolve any DNS requests when the VPN is not active. - - - -### Primary network interfaces - -By default, the Client Agent creates IPs on the primary network interface to serve its DNS server. -Refer to the tabs below for possible conflicts for each supported operating system. - - - - -When you run the Client Agent alongside the PAN-GP VPN, the primary network interface will likely be set to a `tun` type interface, which the Client Agent cannot use for its IP addresses. -You may see errors such as the following in the `boundary-client-agent.log` file or the `boundary client-agent status` command response: - -``` -[ERROR] macos.addIP: error adding ipv4 address: ifconfig: ioctl (SIOCAIFADDR): Destination address required -``` - -To work around the default `tun` interface, you must provide an explicit network interface using the `interface_to_use` configuration option. For example: - -```hcl -interface_to_use=en0 -``` - -The `interface_to_use` option allows the Client Agent to create the IPs it needs to serve the DNS server and proxy traffic. -You must restart the Client Agent for it to update its configuration with the new setting. - - - - -On Windows, the Client Agent may be able to create the IPs that it needs on the primary network interface, but it fails to establish any transparent sessions. You may see the following message: - -``` -[INFO] default route change detected, restarting -``` - -You must explicitly specify a network interface to use other than the primary one. You can list available network interfaces using the Powershell command `Get-NetAdapter`, or the older `route print` command. You must find the index of the interface you would normally use to connect to the internet. In this example, the interface index is `11`: - -``` -PS C:\> Get-NetAdapter -Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ----- -------------------- ------- ------ ---------- --------- -Ethernet Parallels VirtIO Ethernet Adapter 11 Up 00-1C-42-B3-F2-75 10 Gbps -Ethernet 2 PANGP Virtual Ethernet Adapter Secure 24 Up 02-50-41-00-00-01 2 Gbps -``` - -Alternatively, if you use `route print`, refer to the following example: - -``` -PS C:\> route print -=========================================================================== -Interface List - 24...02 50 41 00 00 01 ......PANGP Virtual Ethernet Adapter Secure - 11...00 1c 42 b3 f2 75 ......Parallels VirtIO Ethernet Adapter - 1...........................Software Loopback Interface 1 -=========================================================================== -```` - -Your configuration should look like this: - -```hcl -interface_to_use=11 -``` - -You must restart the Client Agent for it to update its configuration with the new setting. - - - - -## Parallels Desktop (MacOS VM on MacOS Host) - -Running a MacOS VM in Parallels Desktop with shared networking causes the system's DNS resolver (`mDNSResponder`) to bind to all interfaces, blocking port 53 and preventing the Client Agent from starting. - -As a workaround, you can configure Parallels Desktop to use a different network mode. -Select an alternative network configuration such as **Host-Only**, **Default Adapter**, or **Wi-Fi** instead of **Shared Network**. -Refer to the Parallels Desktop documentation for more information. - -## Cisco AnyConnect VPN - -When the Cisco AnyConnect VPN is active at the same time as the Boundary Client Agent, DNS resolution may fail for Boundary aliases. - -The Boundary Client Agent by default uses the IPv4 range `100.x.x.x` for its local proxies. The Cisco AnyConnect VPN treats this range as a **secured range**, which forces DNS queries to resolve through the VPN instead of the Boundary Client Agent. As a result, Boundary aliases cannot be resolved. - -You can configure the Boundary Client Agent to use a different IPv4 prefix by setting the `v4_prefix` option in the client configuration file. This setting overrides the default `100.x.x.x` range and avoids the conflict with Cisco AnyConnect VPN. - -For example: -```hcl -v4_prefix = "172.16.0.0/12" -``` - - -You can set the `v4_prefix` to any valid RFC1918 private IPv4 range, as long as it does not overlap with ranges secured by the VPN. Common options include: - -- `10.0.0.0/8` -- `172.16.0.0/12` - -Choose a range that best fits your environment. - - - -## Uninstall the Client Agent on Mac - -If you used the Mac installer, you can run `/Library/Application Support/HashiCorp/Boundary Uninstaller.app` to uninstall Boundary. -The uninstaller removes any installed components, including the Desktop client, CLI, and the Boundary Client Agent. diff --git a/website/content/docs/client-agent/index.mdx b/website/content/docs/client-agent/index.mdx deleted file mode 100644 index 5b2acf699..000000000 --- a/website/content/docs/client-agent/index.mdx +++ /dev/null @@ -1,118 +0,0 @@ ---- -layout: docs -page_title: Client Agent overview -description: >- - Learn how the Boundary Client Agent intercepts DNS requests as the primary resolver on the system, allowing Boundary to proxy connections transparently. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary Client Agent - -@include 'alerts/enterprise-only.mdx' - -The Boundary Client Agent is Boundary's DNS daemon. -When the Boundary Client Agent runs alongside an authenticated Boundary client, the agent establishes itself as the primary resolver on the system and intercepts DNS requests. - -If you enter a hostname that matches a Boundary alias that the client is authorized to establish a session to, Boundary automatically generates the session and transparently proxies the connection on your behalf. -If the Boundary Client Agent cannot find an alias, or if there are any issues with authentication, network connectivity, or latency, the Client Agent defers DNS resolution to the previously configured DNS resolvers. - - - -You must enable both IPv4 and IPv6 protocols for your environment to ensure the Client Agent can start and perform DNS lookups. - - - -## Security - -When you successfully authorize a session on a Boundary controller, the response includes a list of any brokered credentials, which include the decoded secrets. -When the Boundary Client Agent receives a DNS request, Boundary creates a new session. -An OS user can only connect to an authorized session managed by the Boundary Client Agent daemon if they are the same OS user that added the Boundary auth token used for authorizing the session. - - - -Currently, you cannot authenticate to multiple Boundary controllers at once. -If you authenticate to a different Boundary controller, any existing sessions are terminated and any new transparent sessions would be established with the new controller. - - - -The Boundary Client Agent stores the credentials and some other information related to the session in memory. -The in-memory store removes the session information: - -- when the session ends. -- if the auth token stored in the Boundary expires. -- if the current OS user authenticates with a different Boundary user. -- if the current OS user authenticates to a new Boundary controller. -- if the Boundary Client Agent is paused. -- if the Boundary Client Agent is terminated. - -API requests are authenticated in the same way as session proxy access. - -Credential brokering is supported for transparent sessions. -A notification appears when you establish a session against a target that is configured with credential brokering. -You can retrieve the credentials later using the following command: - -```shell-session -$ boundary client-agent sessions -``` - -### Grants - -In a production environment, you may want to provide the least amount of privileges necessary for users. -For a Boundary user to be able to use the Client Agent to establish a transparent session, they must: - -- be able to authenticate using an auth method. -- have read permissions for their auth token. -- have permission to establish a session to one or more targets. - -You can use the following grant strings to grant those permissions: - -``` -type=auth-method;ids=*;actions=authorize -type=target;ids=*;actions=authorize-session -type=auth-token;ids=*;actions=read:self -``` - -HashiCorp highly recommends that you also grant users the permission to list resolvable aliases, as the Client Agent periodically fetches a list of aliases to match incoming DNS requests against. -Without that permission, every DNS request on the system is sent to the Boundary controller, which can easily overwhelm it. - -You can use the following grant string to grant the permission to list resolvable aliases: - -``` -type=user;ids=*;actions=list-resolvable-aliases -``` - - - -A known issue regarding how grants were previously created in HCP Boundary may cause you to receive a 500 error when you attempt to list resolvable aliases. -Clusters created before April 26, 2025 may be missing the following grants: - - `ids={{.User.Id}};type=user;actions=list-resolvable-aliases` - - `ids=*;type=target;actions=list,read` - -If your cluster is missing these grants, HashiCorp recommends adding them. - -For more information, refer to the [known issue](/boundary/docs/release-notes/v0_19_0#hcp-grants). - - - -## More information - -Refer to the following topics for more information: - -- [Aliases](/boundary/docs/concepts/aliases) -- [Transparent sessions](/boundary/docs/concepts/transparent-sessions) - -## Next steps - -Refer to the following topics for more information about installing, configuring, and using the Client Agent: - -- [Install Boundary clients](/boundary/docs/deploy/self-managed/install-clients) -- [Configure the Client Agent](/boundary/docs/client-agent/configuration) -- [Manage the Client Agent](/boundary/docs/client-agent/manage) -- [Troubleshoot issues with the Client Agent](/boundary/docs/client-agent/troubleshoot) -- [Client Agent software conflicts](/boundary/docs/client-agent/conflicting-software) \ No newline at end of file diff --git a/website/content/docs/client-agent/manage.mdx b/website/content/docs/client-agent/manage.mdx deleted file mode 100644 index 9182390d1..000000000 --- a/website/content/docs/client-agent/manage.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -layout: docs -page_title: Manage the Client Agent -description: >- - Learn how to manage the Boundary Client Agent to intercept DNS requests, allowing Boundary to proxy connections transparently. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Manage the Client Agent - -Refer to the following sections for more information about managing the Client Agent. -You can monitor the Client Agent's status and retrieve information about any transparent sessions. -If you want to temporarily defer DNS resolution to any previously configured DNS resolvers, you can pause the Client Agent. -You can also disable the Client Agent, if you no longer want to use it for DNS resolution. - -## Monitor status and sessions - -You can check the status of the Client Agent to ensure it is running. -Use the following command to check the Client Agent's status: - -```shell-session -$ boundary client-agent status -``` - -You can retrieve information about the sessions that the Client Agent is managing. -Use the following command to list any sessions currently being managed by the Client Agent, as well as any brokered credentials for those sessions: - -```shell-session -$ boundary client-agent sessions -``` - -Note that this command does not list sessions that are not managed by the Client Agent. Use `boundary sessions list -recursive` to see all sessions. - -## Pause the Client Agent - -You can temporarily disable the Boundary Client Agent by pausing it with the following command: - -```shell-session -$ boundary client-agent pause -``` - -When the Client Agent is paused, it does not intercept any DNS requests, and you are unable to use transparent sessions. - -To resume the Client Agent, use the following command: - -```shell-session -$ boundary client-agent resume -``` - -## Disable the Client Agent - -If you want to disable the Boundary Client Agent, you can stop it with the following commands: - - - - -```shell-session -$ sudo launchctl bootout system /Library/LaunchDaemons/com.hashicorp.boundary.boundary-client-agent.plist -``` - -Unloading the Boundary Client Agent removes its launch daemon configuration. To restart the Client Agent, use: - -```shell-session -$ sudo launchctl bootstrap system /Library/LaunchDaemons/com.hashicorp.boundary.boundary-client-agent.plist -``` - - - - -```shell-session -net stop BoundaryClientAgent -``` - - - diff --git a/website/content/docs/client-agent/troubleshoot.mdx b/website/content/docs/client-agent/troubleshoot.mdx deleted file mode 100644 index 004e7679a..000000000 --- a/website/content/docs/client-agent/troubleshoot.mdx +++ /dev/null @@ -1,288 +0,0 @@ ---- -layout: docs -page_title: Troubleshoot the Client Agent -description: >- - Troubleshoot issues with the Boundary Client Agent to ensure it is functioning properly. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Troubleshoot issues with the Client Agent - -The following sections can help you to troubleshoot the Client Agent's behavior. You should proceed through these steps from top to bottom. - -## Check the status of the Client Agent - -If you experience unexpected behavior, you should first check on the status of the Client Agent. -You can check the status using the Boundary CLI or the Desktop Client. To check the Client Agent status through the Boundary CLI, use the following command: - -```shell-session -$ boundary client-agent status - -Status: - Address: - https://boundary.corp.com - Auth Token Expiration: 167h58m9s - Auth Token Id: at_GBqZUK2ihv - Status: running - Version: 0.0.1-e561e69839cce148ee5045684bce5b7168c65026 -``` - -In the Desktop Client, you can find the status of the Client Agent by navigating to **Settings**, and then scrolling to the **Boundary Client Agent** section. - -The status command includes various information about the Client Agent, including the runtime status. -In this example, the runtime status is "running". -If the status is "paused", the Client Agent is not currently intercepting DNS requests and must be resumed. -Users can pause the Client Agent, and it will also pause itself if it detects a large number of network failures in a short period of time. - -The status also allows you to see whether the current user is authenticated. -If the response looks like the example above, including showing an auth token ID and expiration, your current user is authenticated. -If not, you may need to first authenticate to the Client Agent using the CLI or Desktop Client. - -The status also sometimes contains a list of errors that have been encountered by the Client Agent. -The list is ordered by most recent first. -These errors can help you understand why the Client Agent may not be behaving as expected. -Please see the section below on common error messages to help diagnose specific errors. -Note that this list of errors will not be cleared until the next reboot, so it may not necessarily be a sign of something being wrong. - -If the status command returns an error, the Client Agent may not be running. -You can attempt to start the Client Agent using the following commands: - - - - - ```shell-session - $ sudo launchctl start com.hashicorp.boundary.boundary-client-agent - ``` - - - - - ```shell-session - net start BoundaryClientAgent - ``` - - - -## Resume the Client Agent - -You can resume the Client Agent using either the Boundary CLI or the Desktop Client. In the CLI, run the following command to resume the Client Agent: - -```shell-session -$ boundary client-agent resume -The Client Agent has been successfully resumed. -``` - -In the Desktop Client, you can resume the Client Agent by selecting the **Resume** button in the **Boundary Client Agent** section of the settings. -Once the Client Agent has resumed, test if it has started working as expected again. - -## Inspect the log file - -If you are not able to diagnose the problem by looking at the status or resuming the Client Agent, another step can be to inspect the log file produced by the Client Agent. - - - - -The log file should be located in `/Library/Application Support/HashiCorp/Boundary/boundary-client-agent.log`. - - - - -The log file should be located in `C:\Windows\Logs\boundary-client-agent.log`. - - - - -Once you have found the log file, you can look through it to see if you can understand why the Client Agent is not working as expected. -The list below provides some common errors and explanations. - -It may be necessary to increase the logging verbosity of the Client Agent. -You can increase the verbosity by setting the `log_level` option in the configuration file to `"DEBUG"`. -See the section on changing the configuration for more information. - -## Establish the behavior of the local DNS configuration - -The Client Agent works by intercepting DNS requests before they are sent to your regular DNS server. -If the DNS requests on your system are not sent to the right place, or they are not being answered appropriately, transparent sessions will not work. - -You can use the `nslookup` command to understand where the DNS requests are being sent. -Start by sending a DNS request for `hashicorp.com`: - -```shell-session -$ nslookup hashicorp.com -;; Truncated, retrying in TCP mode. -Server: 100.88.241.86 -Address: 100.88.241.86#53 - -Non-authoritative answer: -Name: hashicorp.com -Address: 76.76.21.21 -``` - -The important part here is the `Server` field, which contains an IP in the CGNAT range (from `100.64.0.0` to `100.127.255.255`). -This is a good indication that the Client Agent DNS server is being used as expected. - -Next, you can try to make a DNS request to an alias that you expect to work. The following example makes a DNS request to an alias with a value of `mytarget.boundary.dev`: - -```shell-session -$ nslookup mytarget.boundary.dev -;; Truncated, retrying in TCP mode. -Server: fc00:a20a::d7bf:c059 -Address: fc00:a20a::d7bf:c059#53 - -Name: mytarget.boundary.dev -Address: 100.84.164.9 -``` - -You can tell two things from this: -1. The Client Agent is likely able to intercept the DNS request, because the server is a local IPv6 address in the [ULA](https://en.wikipedia.org/wiki/Unique_local_address) range. - Both an IPv4 CGNAT range or IPv6 ULA range IP address are indications of this. -2. The Client Agent is able to identify `mytarget.boundary.dev` as an alias with a target that the requesting user is authorized to connect to, because it responded with a valid DNS response pointing to a local IPv4 address in the CGNAT range. - Similarly to above, the IP address in the response may also be an IPv6 address in the ULA range. - -If you do not see this kind of response, it may be that the alias you are trying to connect to doesn't exist, or your user is not authorized to connect to it. -Double check that you are using the correct alias and that your user is authorized to connect to it. - -## Flush OS DNS cache - -If you still do not see the expected behavior, it can be useful to flush the operating system's DNS cache. -The exact steps depend on the operating system you use: - - - - -```shell-session -$ sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder -``` - - - - -```shell-session -ipconfig /flushdns -``` - - - - -After you flush the DNS cache, try connecting to the alias again, or repeat the steps above. - -If you are still not able to understand what is wrong, submit a support ticket. Include the `boundary client-agent status` output and the log file in the ticket. - -## Common error messages - -Refer to the following common error messages for more information about their possible causes and resolutions. - -### nodename nor servname provided, or not known / No such host is known - -This is a generic error for a failed DNS resolution. -It can mean a number of different things: -- The alias doesn't exist or is misspelled. -- Your user isn't authenticated or doesn't have permission to connect to the target. -- The Client Agent is not able to intercept DNS requests, it could shut down or paused. -- The OS DNS cache is interfering with the operation of the Client Agent. -- The Client Agent may not yet know about the alias. - It takes around 2 minutes for the Client Agent to learn about new aliases. - -Follow the troubleshooting steps above to resolve the issue. - -### failed to listen for DNS on either IPv4 or IPv6 - -This error happens when some other application on the local machine occupies the ports used by the Boundary Client Agent. -The Client Agent requires access to port 53 for IPv4 and IPv6, both UDP and TCP. -Diagnosing what causes the error differs per operating system: - - - - -As a privileged user, you can use the `lsof` program to find what applications are occupying a port, for example: - -```shell-session -$ sudo lsof -nP | grep ":53" -``` - -If anything is occupying port 53, you may need to terminate the application before the Client Agent is able to start. - -Applications that make use of the Apple Virtualization Framework are known to sometimes occupy this port under -the name `_mdnsresponder`. If you have any virtualization software, you may need to turn it off before using -the Client Agent. - - - - -As a privileged user, you can open the **Resource Monitor** and inspect the **Network** > **Listening Ports** section to find any applications that use port 53. - - - - -Once you have identified which other software is using the port, you can stop it and try to start the Client Agent again. - -### failed to refresh alias cache: error="fetching resolvable aliases: error performing client request during List call" - -This usually implies that there is a problem reaching the internet or the Boundary controller. -The error is related to the periodic updating of aliases used by the Client Agent to know whether a DNS request matches an alias or not. - -HashiCorp recommends that you pause the Client Agent and examine the status and logs for further errors: - -```shell-session -$ boundary client-agent pause -``` - -Follow the troubleshooting steps to understand why the Client Agent is not able to reach the controller. - -### sendmsg: broken pipe - -On MacOS versions 15.1 and 15.2, the firewall may incorrectly block the Client Agent from sending DNS responses. To resolve this issue, -upgrade to MacOS version 15.3 or later. - -It may be neccessary to explicitly allow the `boundary-client-agent` process access to incoming network connections. - -From the Firewall options in System Settings, toggle the `boundary-client-agent` to **Allow incoming connections**. - -### WARNING! Remote host indentification has changed! It is possible that someone is doing something nasty! - -This error arises when you use an alias to connect to an SSH target after the first successful connection using that alias. The issue occurs because Boundary workers generate a new host key on every new SSH connection. You can safely ignore the warning using the `StrictHostKeyChecking=no` command line option: - -```shell-session -$ ssh -o StrictHostKeyChecking=no targetalias.boundary.dev -``` - -You can also remove the existing server host key from the `~/.ssh/known_hosts` file to avoid the error. - -### This site can't be reached... DNS_PROBE_FINISHED_NXDOMAIN - -This error occurs when you have authenticated to Boundary and have a target that is configured with an alias. -When you copy the alias from the **Target** page and paste it in the browser, you receive the error. -The Client Agent is not running, and if you attempt to resume it, you receive a message that says "bind address already in use." - -A conflicting service may be preventing the Client Agent from receiving DNS requests. -The service may be bound to port 53. -Restarting your computer may resolve the conflict. - -### error when attempting to resume... bind address already in use: invalid state transition - -This error occurs when you have authenticated to Boundary and have a target that is configured with an alias. -When you attempt to use the alias to connect to the target, you receive the error message in Boundary Desktop. -The Client Agent is not running, and if you attempt to resume it, you receive a message that says "bind address already in use." - -A conflicting service may be preventing the Client Agent from receiving DNS requests. -The service may be bound to port 53. -Restarting your computer may resolve the conflict. - -## Transparent sessions known issues - -Refer to the following table for known issues with the Client Agent that may affect transparent sessions: - -| Issue | Description | -| ----- | ----------- | -| SSH connection fails with man-in-the-middle warning | On Linux systems, the initial transparent session may be successful, but any subsequent connections prompt a warning that you may be experiencing a man-in-the-middle attack.

For more information, refer to [WARNING! Remote host indentification has changed! It is possible that someone is doing something nasty!](/boundary/docs/client-agent/troubleshoot#warning-remote-host-indentification-has-changed-it-is-possible-that-someone-is-doing-something-nasty) in the **Common error messages** section.| -| Boundary Client Agent authentication does not persist across restarts | When you reboot, you are required to re-authenticate to the Client Agent before you can use transparent sessions. | -| Windows installer prompts for restart | When you install Boundary, the Windows installer occasionally prompts you to restart your computer, however it is not necessary. | -| Boundary Client Agent resumes on reboot | If the Client Agent is paused and the machine is rebooted, the Client Agent will be resumed after the reboot. | -| Single-word aliases do not work on Windows | If you create an alias consisting of a single word without a dot (`.`), the alias will not work on Windows. | -| Windows installer does not support partial installations | The Windows installer fails to start the Client Agent if the Desktop client is not installed at the same time. | -| Alias connection failures inside containers/VMs | Using transparent sessions rely on network access to the local network of the computer the Client Agent is running on. Network enclaves such as those created by Docker containers and VMs cannot reach this network. | -| DNS lookup is broken on MacOS 15.1 and 15.2 | MacOS 15.1 and 15.2 may incorrectly block DNS lookups for the Client Agent. This issue is resolved in MacOS 15.3 and later. | diff --git a/website/content/docs/client-cache/index.mdx b/website/content/docs/client-cache/index.mdx deleted file mode 100644 index 96ccbb4f8..000000000 --- a/website/content/docs/client-cache/index.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -layout: docs -page_title: Client cache overview -description: >- - Learn how the client cache enables Boundary to quickly retrieve local information about session and target resources. Manage startup and other cache functions. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Client cache - -The Boundary client cache runs on end users' computers and locally caches session and target resource information from Boundary instances. -The cache helps expedite searches. - -## Boundary `list` vs. `search` - -You can use the Boundary API or CLI to `list` resources like targets, sessions, hosts, and users. -When you use the `list` command, Boundary searches the control plane to provide a current total of resources when it produces the list of results. -Some Boundary resources can provide a significant number of items in the response. - -Because large lists of results may overwhelm your system resources, the client cache caches the results of the `list` operation. -You can search the local cache instead of the control plane to help protect your system resources. -The Boundary `search` command also produces a list of Boundary resources. -When you use the `search` command, however, Boundary searches the local cache to create the list. - -For more information, refer to the [`search`](/boundary/docs/commands/search) command documentation. - - - -The `search` operation only displays the resources that you have read permissions to view. -If you are logged in as a user who does not have the permissions to view a resource, it does not display in the list of results. - -For more information, refer to [Identity and access management (IAM)](/boundary/docs/concepts/iam). - - - -## Client cache management - -The Boundary client cache starts automatically in the background when a user runs a CLI command that interacts with a Boundary instance. -If you do not want the cache to automatically start, you can include the `-skip-cache-daemon` flag or set the **BOUNDARY_SKIP_CACHE_DAEMON** environment variable when you use the Boundary CLI to interact with a Boundary instance. - -### Startup and customization - -You can start the cache manually using the `boundary cache start` command. -By default, the cache starts in the foreground. -You can start it in the background by adding the `-background` flag. - -If you start the cache manually, you can customize the caching behavior. -Include any of the following options to customize the behavior: - -- `max-search-staleness` - The amount of time that can pass since the last refresh before calling `boundary search` results in a blocking refresh from the Boundary instance of the resources being searched. -- `max-search-refresh-timeout` - The amount of time the `boundary search` blocking refresh can take before it times out. -In the event of a timeout, Boundary uses the stale data that is currently in the cache. -- `refresh-interval` - A duration that specifies how frequently the client cache should query Boundary for changes to sessions and targets. -Note that Boundary only searches sessions and targets that the user who ran the command has access to. - -For more information, refer to the [`cache start`](/boundary/docs/commands/cache/start) command documentation. - -### Logging - -The client cache stores a log file in the **~/.boundary** directory. -Boundary automatically rotates the log once it reaches 5 MB. -It compresses and keeps the last 3 rotated logs before deleting a log. - -### Status - -You can check the status of the cache using the `boundary cache status` command. -The command returns information about the cache including the uptime, user count, user information, and which Boundary resources the cache is tracking. - -For more information, refer to the [`cache status`](/boundary/docs/commands/cache/status) command documentation. - - -### Auth tokens - -By default, the Boundary CLI tries to use a keyring to store and receive auth tokens. -Whenever you use an auth token to interact with Boundary, the client cache stores the auth token and syncs the data associated with it. -If you authenticate to multiple Boundary instances, the client cache stores multiple auth tokens and syncs the data associated with each token. - -To search the client cache for a specific Boundary instance, you can specify the appropriate auth token using the `boundary cache add-token` command. - -For more information, refer to the [`cache add-token`](/boundary/docs/commands/cache/add-token) command documentation. diff --git a/website/content/docs/commands/accounts/change-password.mdx b/website/content/docs/commands/accounts/change-password.mdx deleted file mode 100644 index 2dcb313ab..000000000 --- a/website/content/docs/commands/accounts/change-password.mdx +++ /dev/null @@ -1,87 +0,0 @@ ---- -layout: docs -page_title: accounts change-password - Command -description: >- - The "accounts change-password" command resets the password on account resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# accounts change-password - -Command: `boundary accounts change-password` - -The `accounts change-password` command resets the password on account resources, if the types match and the operation is allowed by the given account type. -You must verify the current password to complete the password reset. - -## Examples - -The following example changes the password on a password-type account. If you execute the command without the `-current-password` and ` -new-password` parameters, you are -prompted to enter the password values. - -```shell-session -$ boundary accounts change-password -id acctpw_1234567890 -Please enter the current password (it will be hidden): -Please enter the new password (it will be hidden): -Please enter it one more time for confirmation: -``` - -**Example output:** - - - -```plaintext -Account information: - Auth Method ID: ampw_1234567890 - Created Time: Wed, 12 Jul 2023 12:20:54 PDT - ID: acctpw_1234567890 - Type: password - Updated Time: Wed, 12 Jul 2023 22:29:59 PDT - Version: 5 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - set-password - change-password - - Attributes: - Login Name: admin -``` - - - - -## Usage - - - -```shell-session -$ boundary accounts change-password [options] [args] -``` - - - - -### Command options - -- `-current-password` `(string: "")` - The current password for the account. If - you do not specify the current password, the command prompts you to enter the password in a non-echoing way. - -- `-id` `(string: "")` - The ID of the account for which to change the password. - -- `-new-password` `(string: "")` - The new account password. If you do not specify a new password, the command prompts you to enter the password in a non-echoing way. - -- `-version` `(int: 0)` The version of the account against which to perform the password reset operation. If you do not specify a version, the command automatically performs a check-and-set. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/accounts/create.mdx b/website/content/docs/commands/accounts/create.mdx deleted file mode 100644 index eca6b4924..000000000 --- a/website/content/docs/commands/accounts/create.mdx +++ /dev/null @@ -1,195 +0,0 @@ ---- -layout: docs -page_title: accounts create - Command -description: >- - The "accounts create" command creates a new account resource and associates it with an auth method. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# accounts create - -Command: `boundary accounts create` - -The `accounts create` command lets you create an account associated with one of the following auth methods: - -- LDAP -- OIDC -- Password - -## Example - -The following example creates an account named `test_account`. In this example, you provide a password when prompted: - -```shell-session -$ boundary accounts create password \ - -auth-method-id=ampw_1234567890 \ - -login-name="tester01" \ - -name=test_account \ - -description="Test password account" -``` - -**Example output:** - - - -```plaintext -Please enter the password (it will be hidden): - -Account information: - Auth Method ID: ampw_ZbB6UXpW3B - Created Time: Fri, 27 May 2022 11:16:47 MDT - Description: Test password account - ID: acctpw_A8R1escktO - Name: test_account - Type: password - Updated Time: Fri, 27 May 2022 11:16:47 MDT - Version: 1 - - Scope: - ID: o_u54jrD6ydN - Name: IT_Support - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - set-password - change-password - - Attributes: - Login Name: tester01 -``` - - - - -## Usage - - - -```shell-session -$ boundary accounts create [type] [options] [args] -``` - - - -### Command options - -- `-auth-method-id` `(string: "")` - The auth-method resource to use for the - operation. You can also specify the auth-method using the **BOUNDARY_AUTH_METHOD_ID** - environment variable. -- `-description` `(string: "")` - The description to set for the account. -- `-name` `(string: "")` - The name to set on the account. - - -### Usages by type - -You can create `ldap`, `oidc`, and `password` type accounts. - - - - -The `boundary accounts create ldap` command creates an account of `ldap` type. - -#### Example - -The example below creates an LDAP account with the login name `prodops` and the description `ldap account for ProdOps`: - -```shell-session -$ boundary accounts create ldap -login-name prodops \ - -description "ldap account for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary accounts create ldap [options] [args] -``` - - - -#### LDAP account option - -The following option is LDAP-specific, in addition to the command options: - -- `-login-name` `(string: "")` - The login name for the account. - - - - -The `boundary accounts create oidc` command creates an account of `oidc` type. - -#### Example - -The following example creates an OIDC account with the subject `prodops` and the description `Oidc account for ProdOps`: - -```shell-session -$ boundary accounts create oidc -subject "prodops" \ - -description "Oidc account for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary accounts create oidc [options] [args] -``` - - - -#### OIDC account options - -The following options are OIDC-specific, in addition to the command options: - -- `-issuer` `(string: "")` - The issuer for the account. -- `-subject` `(string: "")` - The subject for this account on the OIDC provider. - - - - -The `boundary accounts create password` command creates an account of `password` type. - -#### Example - -The following example creates a password-type account with the login name `prodops` and the description `Password account for ProdOps`: - -```shell-session -$ boundary accounts create password -login-name prodops \ - -description "Password account for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary accounts create password [options] [args] -``` - - - -#### Password account options - -The following options are password-specific, in addition to the command -options: - -- `-login-name` `(string: "")` - The login name for the account -- `-password` `(string: "")` - The password for the account. If blank, the - command prompts you to enter the password interactively in a - non-echoing way. Otherwise, this value can refer to a file on disk (`file://`) or an environment variable (`env://`) from which the password is read. - - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/accounts/delete.mdx b/website/content/docs/commands/accounts/delete.mdx deleted file mode 100644 index d5c2d122a..000000000 --- a/website/content/docs/commands/accounts/delete.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -layout: docs -page_title: accounts delete - Command -description: >- - The "accounts delete" command deletes an existing account resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# accounts delete - -Command: `boundary accounts delete` - -The `accounts delete` command lets you delete an existing account. - - -## Examples - -The following example deletes an account with the ID `acctpw_0987654321`. - -```shell-session -$ boundary accounts delete -id=acctpw_0987654321 -The delete operation completed successfully. -``` - -## Usage - - - -```shell-session -$ boundary accounts delete [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the account you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/accounts/index.mdx b/website/content/docs/commands/accounts/index.mdx deleted file mode 100644 index 194c6f821..000000000 --- a/website/content/docs/commands/accounts/index.mdx +++ /dev/null @@ -1,92 +0,0 @@ ---- -layout: docs -page_title: accounts - Command -description: >- - The "accounts" command performs operations on account resources. You can associate users with accounts using auth methods. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# accounts - -Command: `boundary accounts` - -The `accounts` command lets you create and manage accounts resources in Boundary. -You can associate Boundary users with one or more account resources using auth methods. -Accounts represent external notions of a particular entity. -Among other use cases, accounts provide an easy way to switch users to new IdPs within the organization that deploys Boundary. - -## Examples - -The following example retrieves account information for a given account ID, `acctpw_1234567890`: - -```shell-session -$ boundary accounts read -id acctpw_1234567890 -``` - -**Example output:** - - - -```plaintext -Account information: - Auth Method ID: ampw_1234567890 - Created Time: Wed, 12 Jul 2023 12:20:54 PDT - ID: acctpw_1234567890 - Type: password - Updated Time: Wed, 12 Jul 2023 12:20:54 PDT - Version: 1 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - set-password - change-password - - Attributes: - Login Name: admin -``` - - - -## Usage - - - -```shell-session -Usage: boundary accounts [sub command] [options] [args] - - # ... - -Subcommands: - change-password Change the password on an account - create Create an account - delete Delete an account - list List an account - read Read an account - set-password Directly set the password on an account - update Update an account -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/accounts/create) -- [delete](/boundary/docs/commands/accounts/delete) -- [read](/boundary/docs/commands/accounts/read) -- [update](/boundary/docs/commands/accounts/update) -- [list](/boundary/docs/commands/accounts/list) -- [set-password](/boundary/docs/commands/accounts/set-password) -- [change-password](/boundary/docs/commands/accounts/change-password) diff --git a/website/content/docs/commands/accounts/list.mdx b/website/content/docs/commands/accounts/list.mdx deleted file mode 100644 index 1583d8b3b..000000000 --- a/website/content/docs/commands/accounts/list.mdx +++ /dev/null @@ -1,82 +0,0 @@ ---- -layout: docs -page_title: accounts list - Command -description: >- - The "accounts list" command lists the available accounts that were created for an auth method. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# accounts list - -Command: `boundary accounts list` - -The `accounts list` command lists all accounts created for a given auth method. - -## Example - -The following example lists all accounts for an auth method with ID, `ampw_1234567890`: - -```shell-session -$ boundary accounts list -auth-method-id ampw_1234567890 -``` - -**Example output:** - - - -```plaintext -Account information: - ID: acctpw_0987654321 - Version: 1 - Type: password - Authorized Actions: - no-op - read - update - delete - set-password - change-password - - ID: acctpw_1234567890 - Version: 5 - Type: password - Authorized Actions: - no-op - read - update - delete - set-password - change-password -``` - - - -## Usage - - - -```shell-session -$ boundary accounts list [options] [args] -``` - - - -### Command options - -- `-auth-method-id` `(string: "")` - The auth-method resource from which to list accounts. You can also specify the auth-method resource using the **BOUNDARY_AUTH_METHOD_ID** - environment variable. -- `-filter` `(string: "")` - If set, the list operation is filtered before - being returned. The filter operates against each item in the list. We recommend using - single quotes, because filters contain double quotes. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/accounts/read.mdx b/website/content/docs/commands/accounts/read.mdx deleted file mode 100644 index a8b30978d..000000000 --- a/website/content/docs/commands/accounts/read.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -layout: docs -page_title: accounts read - Command -description: >- - The "accounts read" command retrieves the account details for an account. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# accounts read - -Command: `boundary accounts read` - -The `accounts read` command retrieves the account details for a given account ID. - - -## Examples - -The following example reads any account information with the ID `acctpw_1234567890`: - -```shell-session -$ boundary accounts read -id acctpw_1234567890 -``` - -**Example output:** - - - -```plaintext -Account information: - Auth Method ID: ampw_1234567890 - Created Time: Wed, 12 Jul 2023 12:20:54 PDT - ID: acctpw_1234567890 - Type: password - Updated Time: Wed, 12 Jul 2023 22:29:59 PDT - Version: 5 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - set-password - change-password - - Attributes: - Login Name: admin -``` - - - -## Usage - - - -```shell-session -$ boundary accounts read [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the account to read. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/accounts/set-password.mdx b/website/content/docs/commands/accounts/set-password.mdx deleted file mode 100644 index 340dcde8c..000000000 --- a/website/content/docs/commands/accounts/set-password.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -layout: docs -page_title: accounts set-password - Command -description: >- - The "accounts set-password" command sets the password for account resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# accounts set-password - -Command: `boundary accounts set-password` - -The `accounts set-password` command lets you set the password on account-type -resources, if the types match and the operation is allowed by the given account -type. - -## Examples - -The following example sets the password on a password-type account. If you execute the command -without the `-password` parameter, you are prompted to enter the password -value. - -```shell-session -$ boundary accounts set-password -id acctpw_1234567890 -Please enter the password (it will be hidden): -Please enter it one more time for confirmation: -``` - -**Example output:** - - - -```plaintext -Account information: - Auth Method ID: ampw_1234567890 - Created Time: Wed, 12 Jul 2023 12:20:54 PDT - ID: acctpw_1234567890 - Type: password - Updated Time: Wed, 12 Jul 2023 22:08:12 PDT - Version: 2 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - set-password - change-password - - Attributes: - Login Name: admin -``` - - - -The output displays the account information. - -## Usage - - - -```shell-session -$ boundary accounts set-password [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the account on which to set a password. -- `-password` `(string: "")` - The password for the account. Use this value with `env://` or `file://` syntax. If you do not specify a password, the command prompts you to enter the password in a non-echoing way. -- `-version` `(int: 0)` - The version of the account against which to perform an - update operation. If you do no specify a version, the command performs a check-and-set - automatically. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/accounts/update.mdx b/website/content/docs/commands/accounts/update.mdx deleted file mode 100644 index d8376f72f..000000000 --- a/website/content/docs/commands/accounts/update.mdx +++ /dev/null @@ -1,193 +0,0 @@ ---- -layout: docs -page_title: accounts update - Command -description: >- - The "accounts update" command updates an existing account resource's LDAP, OIDC, or password authentication information. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# accounts update - -Command: `boundary accounts update` - -The `accounts update` command updates an existing account's information for -the LDAP, OIDC, or password auth method. - -## Examples - -The following example updates an existing password-type account with the ID `acctpw_w3N3PlV34D`: - -```plaintext -ID: acctpw_w3N3PlV34D - Version: 1 - Type: password - Name: test_account - Description: Test password account - Authorized Actions: - no-op - read - update - delete - set-password - change-password - - Attributes: - Login Name: tester01 -``` - -This command updates the name, login name, and description: - -```shell-session -$ boundary accounts update password -id=acctpw_w3N3PlV34D \ - -name="tester" \ - -login-name="test-engineer" \ - -description="Only to be used for testing" -``` - -**Example output:** - - - -```plaintext -Account information: - Auth Method ID: ampw_1234567890 - Created Time: Thu, 13 Jul 2023 22:30:53 PDT - Description: Only to be used for testing - ID: acctpw_w3N3PlV34D - Name: tester - Type: password - Updated Time: Thu, 13 Jul 2023 22:40:48 PDT - Version: 3 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - set-password - change-password - - Attributes: - Login Name: test-engineer -``` - - - -## Usage - - - -```shell-session -$ boundary accounts update [type] [options] [args] -``` - - - -### Command options - -- `-description` `(string: "")` - The description to set on the account. -- `-id` `(string: "")` - The ID of the account to update. -- `-name` `(string: "")` - The name to set on the account. -- `-version` `(string: "")` - The version of the account against which to - perform an update operation. If you do not specify a version, the command performs a - check-and-set automatically. - -### Usages by type - -The available types are: `ldap`, `oidc`, and `password`. - - - - -The `boundary accounts update ldap` command updates an LDAP account. - -#### Example - -The following example updates an LDAP account with the ID `acctldap_1234567890` to add the name `devops` and the description `ldap account for DevOps`: - -```shell-session -$ boundary accounts update ldap -id acctldap_1234567890 \ - -name "devops" \ - -description "ldap account for DevOps" -``` -#### Usage - - - -```shell-session -$ boundary accounts update ldap [options] [args] -``` - - - - - - -The `boundary accounts update oidc` command updates an OIDC account. - -#### Example - -The following example updates an OIDC account with the ID `acctoidc_1234567890` to add the name `devops` and the description `Oidc account for DevOps`: - -```shell-session -$ boundary accounts update oidc -id acctoidc_1234567890 \ - -name "devops" \ - -description "Oidc account for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary accounts update oidc [options] [args] -``` - - - - - - - -The `boundary accounts update password` command updates a Password type account. - -#### Example - -The following example updates a password account with the ID `acctpw_1234567890` to add the name `devops` and the description `Password account for DevOps`: - -```shell-session -$ boundary accounts update password -id acctpw_1234567890 \ - -name "devops" \ - -description "Password account for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary accounts update password [options] [args] -``` - - - -#### Password account option - -The following option is specific to password accounts, in addition to the command -options: - -- `-login-name` `(string: "")` - The login name for the account. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/aliases/create.mdx b/website/content/docs/commands/aliases/create.mdx deleted file mode 100644 index 1848e7853..000000000 --- a/website/content/docs/commands/aliases/create.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -layout: docs -page_title: aliases create - Command -description: >- - The "aliases create" command creates a new alias resource for a target. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# aliases create - -Command: `aliases create` - -The `aliases create` command lets you create a new alias. - -## Example - -This example creates an alias for the target `prod-ops.example` with the name `prodops` and the description `Target alias for ProdOps`: - -```shell-session -$ boundary aliases create target -value prod-ops.example -name prodops - -description "Target alias for ProdOps" -``` - -## Usage - - - -```shell-session -$ boundary aliases create [type] [sub command] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - target Create a target type alias -``` - - - -### Usages by type - -At this time, you can only create aliases for targets. - -The `aliases create target` command lets you create aliases for targets. - -#### Example - -This example creates an alias for the target `-prod-ops.example` with the name `prodops` and the description `Target alias for ProdOps`: - -```shell-session -$ boundary aliases create target -value prod-ops.example -name prodops - -description "Target alias for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary aliases create target [options] [args] -``` - - - -#### Command options - -- `-description=` - Specifies the optional description you want to use to describe the alias for identification purposes. -- `-destination-id=` - Specifies the ID of the target that the alias points to. -- `-name=` - Specifies the optional name you want to use to describe the alias for identification purposes. -- `-scope-id=` - Scope in which to create the alias. The default is `global`. -You can also specify the scope using the BOUNDARY_SCOPE_ID environment variable. -At this time, aliases are only supported for the global scope. -- `-value=` - The string that you want to use as the alias to represent the target. -The `value` must comply with DNS naming rules. - -#### Target alias options - -- `-authorize-session-host-id=` - Indicates the host ID to use when you use the alias to authorize a session. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/aliases/delete.mdx b/website/content/docs/commands/aliases/delete.mdx deleted file mode 100644 index e4e94c06e..000000000 --- a/website/content/docs/commands/aliases/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: aliases delete - Command -description: >- - The "aliases delete" command deletes an existing alias resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# aliases delete - -Command: `aliases delete` - -The `aliases delete` command lets you delete an alias. - -## Example - -This example deletes an alias with the ID `alt_1234567890`: - -```shell-session -$ boundary aliases delete -id alt_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary aliases delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the alias you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/aliases/index.mdx b/website/content/docs/commands/aliases/index.mdx deleted file mode 100644 index e8777de15..000000000 --- a/website/content/docs/commands/aliases/index.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: docs -page_title: aliases - Command -description: >- - The "aliases" command performs operations on alias resources. An alias is a globally unique, DNS-like string that is associated with a destination resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# aliases - -Command: `boundary aliases` - -The `aliases` command lets you create and manage alias resources in Boundary. - - -## Examples - -The following example retrieves alias information for a given alias ID, `alt_1234567890`: - -```shell-session -$ boundary aliases read -id alt_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary aliases [sub command] [options] [args] - - # ... - -Subcommands: - create Create an alias - delete Delete an alias - list List an alias - read Read an alias - update Update an alias -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/aliases/create) -- [delete](/boundary/docs/commands/aliases/delete) -- [list](/boundary/docs/commands/aliases/list) -- [read](/boundary/docs/commands/aliases/read) -- [update](/boundary/docs/commands/aliases/update) \ No newline at end of file diff --git a/website/content/docs/commands/aliases/list.mdx b/website/content/docs/commands/aliases/list.mdx deleted file mode 100644 index a5f41347d..000000000 --- a/website/content/docs/commands/aliases/list.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: docs -page_title: aliases list - Command -description: >- - The "aliases list" command lists the available alias resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# aliases list - -Command: `aliases list` - -The `aliases list` command lets you list the aliases within a given scope or resource. - -## Example - -This example lists all aliases within the global scope. -At this time, you can only create aliases in the global scope. - -```shell-session -$ boundary aliases list -``` - -## Usage - - - -```shell-session -$ boundary aliases list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `scope-id=` - The scope from which to list the aliases. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/aliases/read.mdx b/website/content/docs/commands/aliases/read.mdx deleted file mode 100644 index aa0923d8e..000000000 --- a/website/content/docs/commands/aliases/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: aliases read - Command -description: >- - The "aliases read" command retrieves the details of an alias resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# aliases read - -Command: `aliases read` - -The `aliases read` command lets you read the details of an alias with a given ID. - -## Example - -This example reads the details of an alias with the ID `alt_1234567890`: - -```shell-session -$ boundary aliases read -id alt_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary aliases read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the alias you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/aliases/update.mdx b/website/content/docs/commands/aliases/update.mdx deleted file mode 100644 index 39bd6e0b2..000000000 --- a/website/content/docs/commands/aliases/update.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -layout: docs -page_title: aliases update - Command -description: >- - The "aliases update" command updates an existing alias resource with new information. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# aliases update - -Command: `aliases update` - -The `aliases update` command lets you update an alias. - -## Example - -This example updates a target-type alias with the ID `alt_1234567890` to add the name `devops`: - -```shell-session -$ boundary aliases update target -id alt_1234567890 -name devops -``` - -## Usage - - - -```shell-session -$ boundary aliases update [type] [sub command] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - target Update a target type alias -``` - - - -### Usages by type - -At this time, you can only create aliases for targets. - -The `aliases update target` command lets you update aliases for targets. - -#### Example - -This example updates a target-type alias with the ID `alt_1234567890` to add the name `devops`: - -```shell-session -$ boundary aliases update target -id alt_1234567890 -name devops -``` - -#### Usage - - - -```shell-session -$ boundary aliases update target [options] [args] -``` - - - -#### Command options - -- `-description=` - Specifies the optional description you want to use to describe the alias for identification purposes. -- `-destination-id=` - Specifies the ID of the target that the alias points to. -- `-name=` - Specifies the optional name you want to use to describe the alias for identification purposes. -- `-scope-id=` - Scope in which the alias resides. The default is `global`. -You can also specify the scope using the BOUNDARY_SCOPE_ID environment variable. -At this time, aliases are only supported for the global scope. -- `-value=` - The string that you want to use as the alias to represent the target. -The `value` must comply with DNS naming rules. - -#### Target alias options - -- `-authorize-session-host-id=` - Indicates the host ID to use when you use the alias to authorize a session. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/auth-methods/change-state.mdx b/website/content/docs/commands/auth-methods/change-state.mdx deleted file mode 100644 index e1094fff1..000000000 --- a/website/content/docs/commands/auth-methods/change-state.mdx +++ /dev/null @@ -1,138 +0,0 @@ ---- -layout: docs -page_title: auth-methods change-state - Command -description: >- - The "auth-methods change-state" command changes the active and visibility state of an OIDC-type auth method resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-methods change-state - -Command: `boundary auth-methods change-state` - -The `auth-methods change-state` command changes the active and visibility state -of an OIDC-type auth method given its ID. - -An OIDC auth method can be in one of several different states: Inactive, Active -Private, and Active Public. The current state of an OIDC auth method -affects how endpoints respond to requests and, sometimes, whether access to -an endpoint requires authentication. - -- **MakeInactive** transitions an OIDC auth method from either the **Active Private** - or the **Active Public** state into the **Inactive** state. -- **MakePrivate** transitions an OIDC auth method from either the **Inactive** or the - **Active Public** state into the **Active Private** state. If the transition is from the - **Inactive** state, it will only succeed if the configuration is - valid. -- **MakePublic** transitions an OIDC auth method from either the **Inactive** or the - **Active Private** state into the **Active Public** state. If the transition is from the - **Inactive** state, it will only succeed if the configuration is - valid. - -Before you change the state of an auth-method, Boundary retrieves the provider’s discovery document for the auth method’s issuer and attempts to -validate the auth-method’s configuration against this published information. If -Boundary is unable to validate the configuration, an error is returned and the -state change is not successful. - -## Examples - -The following example changes the OIDC auth method's state to `active-public`: - -```shell-session -$ boundary auth-methods change-state oidc -id amoidc_oHt4HQFCrN \ - -state active-public -``` - -**Example output:** - - - -```plaintext -Auth Method information: - Created Time: Fri, 09 Sep 2022 11:11:55 MDT - ID: amoidc_oHt4HQFCrN - Name: auth0 - Type: oidc - Updated Time: Fri, 09 Sep 2022 11:41:33 MDT - Version: 3 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - change-state - authenticate - - Authorized Actions on Auth Method's Collections: - accounts: - create - list - managed-groups: - create - list - - Attributes: - api_url_prefix: https://e58fe114-7624-431c-994d-b6670e90b03J.boundary.hashicorp.cloud - callback_url: https://e58fe114-7624-431c-994d-b6670e90b03J.boundary.hashicorp.cloud/v1/auth-methods/oidc:authenticate:callback - client_id: zbaJLTZh3n14WqSV7qQ9onuIVRDaZdzx - client_secret_hmac: Qc3i8NdnTP6rl4JANIg-a2GXgRW5rEKTp2ReIK_BOng - issuer: https://dev-1vdl8c0q.us.auth0.com/ - max_age: 0 - signing_algorithms: [RS256] - state: active-public -``` - - - -## Usage - - - -```shell-session -$ boundary auth-methods change-state oidc [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the oidc-type auth method on which to operate. - -### OIDC auth method options - -- `-disable-discovered-config-validation` - Disables validating - the given auth method against configuration from the authorization server's - discovery URL. You must specify this value every time an auth method that cannot be validated - is updated or state changed. Not specifying a value is equivalent to setting the value to - `false`. The default is `false`. - -- `-state` `(string: "")` - The desired operational state of the auth method. - Three different states exist for an authentication method: - - - `inactive` users can not authenticate with inactive auth methods and the - inactive auth methods are not listed for unauthenticated users. - - `active-private` users can authenticate with active-private auth methods - and active-private auth methods are not listed for unauthenticated users. - - `active-public` users can authenticate with active-public auth methods and - active-public auth methods are listed for unauthenticated users. - -If you change an auth method from `active-public` or `active-private` to `inactive`, all -in-flight authentications will succeed unless the auth method’s configuration is -modified while the request is in-flight. - -When you change an auth method's state using `boundary auth-methods change-state`, -Boundary uses the `-disable-discovered-config-validation` flag to disable validation -against the provider’s published discovery document. This allows for the very -rare occurrence when the Provider has published an invalid discovery document. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/auth-methods/create.mdx b/website/content/docs/commands/auth-methods/create.mdx deleted file mode 100644 index 87667497f..000000000 --- a/website/content/docs/commands/auth-methods/create.mdx +++ /dev/null @@ -1,298 +0,0 @@ ---- -layout: docs -page_title: auth-methods create - Command -description: >- - The "auth-methods create" command creates new auth method resources. You can create LDAP, OIDC, and password auth method types. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-methods create - -Command: `boundary auth-methods create` - -The `auth-methods create` command lets you create Boundary auth -method resources. The available auth method types are: LDAP, OIDC, and password. - -## Examples - -The following example creates an OIDC auth method by passing the OIDC provider's domain (`-issuer`), client ID, and client secret: - -```shell-session -$ boundary auth-methods create oidc \ - -issuer "https://dev-1sdl8c0z.us.auth0.com" \ - -client-id "zaxJLTZh3n14WqSQ7qQ9onuIVRDaZdzz;" \ - -client-secret "t35c9NNw1aZ8haEKFJbJF0lauMOSp5UNPovUJXo8Ea2sPZAR1DszEowX-6-lg-Xr" \ - -signing-algorithm RS256 \ - -api-url-prefix "http://localhost:9200" \ - -name "auth0" -``` - -**Example output:** - - - -```plaintext -Auth Method information: - Created Time: Thu, 06 May 2021 16:39:33 MDT - ID: amoidc_oHt4HQFCrN - Name: auth0 - Type: oidc - Updated Time: Thu, 06 May 2021 16:39:33 MDT - Version: 1 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - change-state - authenticate - - Authorized Actions on Auth Method's Collections: - accounts: - create - list - - Attributes: - api_url_prefix: http://localhost:9200 - callback_url: http://localhost:9200/v1/auth-methods/oidc:authenticate:callback - client_id: zbaJLTZh3n14WqSV7qQ9onuIVRDaZdzx - client_secret_hmac: ayJRYSCphzxcHiKJvBrnDVtz1yiR958ejQuRGdQJMeM - issuer: https://dev-1vdl8c0q.us.auth0.com - signing_algorithms: [RS256] - state: inactive -``` - - - - -## Usage - - - -```shell-session -$ boundary auth-methods create [type] [sub command] [options] [args] -``` - - - -### Command options: - -- `-description` `(string: "")` - The description to set on the auth method. -- `-name` `(string: "")` - The name to set on the auth method. -- `-scope-id` `(string: "")` - The scope in which to make the request. The default - is `global`. You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' - -### Usages by type - -The available types are: `ldap`, `oidc`, and `password`. - - - - -The `boundary auth-methods create ldap` command creates an LDAP auth method. - -#### Example - -The following example creates an LDAP auth method with the name `prodops` and the description `LDAP auth-method for ProdOps`: - -```shell-session -$ boundary auth-methods create ldap -name prodops \ - -description "LDAP auth-method for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary auth-methods create ldap [options] [args] -``` - - - -#### LDAP auth method options - -The following are LDAP-specific options in addition to the command -options: - -- `-anon-group-search` - Uses anon bind when performing LDAP - group searches (optional). The default is `false`. - -- `-bind-dn` `(string: "")` - Uses the distinguished name of entry to bind when - performing user and group searches (optional). - -- `-bind-password` `(string: "")` - Indicates the password to use along with bind-dn - performing user and group searches (optional). - -- `-certificate` `(string: "")` - Specifies a PEM-encoded X.509 CA certificate in ASN.1 DER - form that can be used as a trust anchor when connecting to an LDAP - server(optional). You can specify this value multiple times. - -- `-client-certificate` `(string: "")` - Specifies a PEM-encoded X.509 client certificate in - ASN.1 DER form that can be used to authenticate against an LDAP server - (optional). - -- `-client-certificate-key` `(string: "")` - Specifies a PEM-encoded X.509 client - certificate key in PKCS #8, ASN.1 DER form used with the client certificate - (optional). - -- `-discover-dn` - Uses anon bind to discover the bind DN of a - user (optional). The default value is `false`. - -- `-enable-groups` - Finds the authenticated user's groups during - authentication (optional). The default is `false`. - -- `-group-attr` `(string: "")` - Indicates the attribute that enumerates a user's group - membership from entries returned by a group search (optional). - -- `-group-dn` `(string: "")` - Specifies the base DN under which to perform group search. - -- `-group-filter` `(string: "")` - Indicates a go template used to construct a LDAP group - search filter (optional). - -- `-insecure-tls` - Skips the LDAP server SSL certificate - validation (optional). Use this option with caution; it is insecure. The default value is `false`. - -- `-start-tls` - Issues the StartTLS command after connecting - (optional). The default value is `false`. - -- `-state` `(string: "")` - Indicates the desired operational state of the auth method. - -- `-upn-domain` `(string: "")` - Specifies the userPrincipalDomain used to construct the - UPN string for the authenticating user (optional). - -- `-urls` `(string: "")` - Indicates the LDAP URLs that specify LDAP servers to connect to - (required). You can specify this value multiple times. - -- `-use-token-groups` - Uses the Active Directory tokenGroups - constructed attribute of the user to find the group memberships (optional). - The default value is `false`. - -- `-user-attr` `(string: "")` - Specifies the attribute on user entry that matches the - username that is passed during authentication (optional). - -- `-user-dn` `(string: "")` - Indicates the base DN under which to perform user search -(optional). - -- `-user-filter` `(string: "")` - Specifies a go template used to construct a LDAP user -search filter (optional). - - - - -The `boundary auth-methods create oidc` command creates an OIDC auth method. - -#### Example - -The following example creates an OIDC auth method with the name `prodops` and the description `Oidc auth-method for ProdOps`: - -```shell-session -$ boundary auth-methods create oidc -name prodops \ - -description "Oidc auth-method for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary auth-methods create oidc [options] [args] -``` - - - -#### OIDC auth method options - -The following are OIDC-specific options in addition to the command options: - -- `-account-claim-maps` `(string: "")` - Specifies the optional account claim maps from - custom claims to the standard claims of sub, name and email. These maps are - represented as key=value where the key equals the Provider from-claim and the - value equals the Boundary to-claim. For example "oid=sub". You may specify this value - multiple times for different to-claims. - -- `-allowed-audience` `(string: "")` - Indicates the acceptable audience ("aud") claim. - You may specify this value multiple times. - -- `-api-url-prefix` `(string: "")` - Specifies the URL prefix used by the OIDC provider in - the authentication flow. - -- `-claims-scopes` `(tring: "")` - Indicates the optional claims scope requested. You may specify this value multiple times. - -- `-client-id` `(string: "")` - Specifies the OAuth 2.0 Client Identifier this auth method - should use with the provider. - -- `-client-secret` `(string: "")` - Indicates the corresponding client secret. - -- `-idp-ca-cert` `(string: "")` - Specifies an optional PEM-encoded X.509 CA certificate that - can be used as trust anchors when connecting to an OIDC provider. You may specify this value multiple times. - -- `-issuer` `(string: "")` - Indicates the provider's issuer URL. - -- `-max-age` `(string: "")` - Indicates the OIDC "max_age" parameter that is sent to the provider. - -- `prompts` `(string: "")` - Indicates whether the OIDC authorization server should display reauthentication, account selection, or consent user interface prompts. -You can optionally configure one or more of the following types of prompts to customize the behavior of the authentication process: - - `none` - The authorization server does not display any authentication or consent prompts. - - `login` - The authorization server prompts users for reauthentication before allowing them to log in. - - `consent` - The authorization server prompts users for consent before returning any information to Boundary. - - `select_account` - The authorization server prompts users to select a user account. - The `select_account` option can be helpful if your users have multiple accounts. - - - -Cloud providers implement `prompts` in different ways. -You may notice differences in behavior if you configure OIDC authentication on multiple cloud providers. - - - -- `-signing-algorithm` `(string: "")` - Indicates the allowed signing algorithm. You may specify this multiple times for multiple values. - - - - - - -The `boundary auth-methods create password` command creates a Password type auth method. - -#### Example - -The following example creates a Password type auth method with the name `prodops` and the description `Password auth-method for ProdOps`: - -```shell-session -$ boundary auth-methods create password -name prodops \ - -description "Password auth-method for ProdOps" -``` -#### Usage - - - -```shell-session -$ boundary accounts create password [options] [args] -``` - - - -#### Password auth method options - -The following are password auth method specific options in addition to the -command options: - -- `-min-login-name-length` `(string: "")` - The minimum length of login names. - -- `-min-password-length` `(string: "")` - The minimum length of passwords. - - - diff --git a/website/content/docs/commands/auth-methods/delete.mdx b/website/content/docs/commands/auth-methods/delete.mdx deleted file mode 100644 index 311752b27..000000000 --- a/website/content/docs/commands/auth-methods/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: auth-methods delete - Command -description: >- - The "auth-methods delete" command deletes an existing auth method resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-methods delete - -Command: `boundary auth-methods delete` - -The `auth-methods delete` command deletes an auth method given its ID. - -## Example - -The following example deletes an auth method with the ID, `moidc_oHt4HQFCrN`. - -```shell-session -$ boundary auth-methods delete -id amoidc_oHt4HQFCrN -``` - -## Usage - - - -```shell-session -$ boundary auth-methods delete [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the auth method to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/auth-methods/index.mdx b/website/content/docs/commands/auth-methods/index.mdx deleted file mode 100644 index 811e2db3c..000000000 --- a/website/content/docs/commands/auth-methods/index.mdx +++ /dev/null @@ -1,114 +0,0 @@ ---- -layout: docs -page_title: auth-methods - Command -description: >- - The "auth-methods" command performs operations on Boundary authentication method resources. Auth methods let users authenticate to Boundary. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-methods - -Command: `boundary auth-methods` - -The `auth-methods` command lets you manage the auth method resource in Boundary. The auth -method resource provides a mechanism for users to authenticate to -Boundary. An auth method contains accounts which link an individual user to a -set of credentials. They also contain managed groups which group accounts that satisfy -specific criteria, and can be used as principals in roles. - -## Examples - -The following example configures an OIDC auth method where the Boundary cluster -address is stored in the `BOUNDARY_ADDR`, the OIDC provider's client ID is -stored in the `CLIENT_ID`, and the client secret is stored in the -`CLIENT_SECRET` environment variables. - -```shell-session -$ boundary auth-methods create oidc \ - -issuer "https://dev-1sdl8c0z.us.auth0.com" \ - -client-id "$CLIENT_ID" \ - -client-secret "$CLIENT_SECRET" \ - -signing-algorithm RS256 \ - -api-url-prefix "$BOUNDARY_ADDR" \ - -name "auth0" -``` - -**Example output:** - - - -```plaintext -Auth Method information: - Created Time: Fri, 09 Sep 2022 11:11:55 MDT - ID: amoidc_40fr5jkLpk - Name: auth0 - Type: oidc - Updated Time: Fri, 09 Sep 2022 11:11:55 MDT - Version: 1 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - change-state - authenticate - - Authorized Actions on Auth Method's Collections: - accounts: - create - list - managed-groups: - create - list - - Attributes: - api_url_prefix: https://e58fe114-7624-431c-994d-b6670e90b03J.boundary.hashicorp.cloud - callback_url: https://e58fe114-7624-431c-994d-b6670e90b03J.boundary.hashicorp.cloud/v1/auth-methods/oidc:authenticate:callback - client_id: zaxJLTZh3n14WqSQ7qQ9onuIVRDaZdzz - client_secret_hmac: Qc3i8NdnTP6rl4JANIg-a2GXgRW5rEKTp2ReIK_BOng - issuer: https://dev-1sdl8c0z.us.auth0.com - signing_algorithms: [RS256] - state: inactive -``` - - - -## Usage - - - -```shell-session -Usage: boundary auth-methods [sub command] [options] [args] - - # ... - -Subcommands: - change-state - create Create an auth method - delete Delete an auth method - list List an auth method - read Read an auth method - update Update an auth method -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [change-state](/boundary/docs/commands/auth-methods/change-state) -- [create](/boundary/docs/commands/auth-methods/create) -- [delete](/boundary/docs/commands/auth-methods/delete) -- [list](/boundary/docs/commands/auth-methods/list) -- [read](/boundary/docs/commands/auth-methods/read) -- [update](/boundary/docs/commands/auth-methods/update) diff --git a/website/content/docs/commands/auth-methods/list.mdx b/website/content/docs/commands/auth-methods/list.mdx deleted file mode 100644 index cc390990e..000000000 --- a/website/content/docs/commands/auth-methods/list.mdx +++ /dev/null @@ -1,110 +0,0 @@ ---- -layout: docs -page_title: auth-methods list - Command -description: >- - The "auth-methods list" command lists the available auth method resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-methods list - -Command: `boundary auth-methods list` - -The `auth-methods list` command lists auth methods within an enclosing scope or -resource. - - -## Examples - -The following example lists auth methods from the default `global` scope recursively from any child scopes, if applicable: - -```shell-session -$ boundary auth-methods list -recursive -``` - -**Example output:** - - - -```plaintext -Auth Method information: - ID: amoidc_1234567890 - Scope ID: global - Version: 1 - Type: oidc - Name: Generated global scope initial oidc auth method - Description: Provides initial administrative and unprivileged authentication into Boundary - Authorized Actions: - no-op - read - update - delete - change-state - authenticate - - ID: ampw_1234567890 - Scope ID: global - Version: 1 - Type: password - Name: Generated global scope initial password auth method - Description: Provides initial administrative and unprivileged authentication into Boundary - Is Primary For Scope: true - Authorized Actions: - no-op - read - update - delete - authenticate - - ID: ampw_ZbB6UXpW3B - Scope ID: o_u54jrD6ydN - Version: 1 - Type: password - Name: org_auth_method - Description: Org auth method - Authorized Actions: - no-op - read - update - delete - authenticate -``` - - - -## Usage - - - -```shell-session -$ boundary auth-methods list [options] [args] -``` - - - - -### Command options - -- `-filter` `(string: "")` - If set, the list operation is filtered before - being returned. The filter operates against each item in the list. We recommend using - single quotes, because filters contain double quotes. - -- `-recursive` - If set, the list operation is applied - recursively into child scopes, if supported by the type. The default value is - `false`. - -- `-scope-id` `(string: "")` - The scope in which to make the request. The default - scope is `global`. You can also specify a scope using the **BOUNDARY_SCOPE_ID** environment - variable. - -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/auth-methods/read.mdx b/website/content/docs/commands/auth-methods/read.mdx deleted file mode 100644 index 7175a5450..000000000 --- a/website/content/docs/commands/auth-methods/read.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -layout: docs -page_title: auth-methods read - Command -description: >- - The "auth-methods read" command retrieves the details for an auth method resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-methods read - -Command: `boundary auth-methods read` - -The `auth-methods read` command reads an auth method given its ID. - -## Examples - -The following example reads the auth method details for an auth method with the ID `amoidc_AliCbVihqv`. - -```shell-session -$ boundary auth-methods read -id amoidc_AliCbVihqv -``` - -**Example output:** - - - -```plaintext -Auth Method information: - Created Time: Thu, 13 May 2021 17:01:02 MDT - Description: OIDC auth method for Auth0 - ID: amoidc_AliCbVihqv - Name: Auth0 - Type: oidc - Updated Time: Thu, 13 May 2021 17:01:02 MDT - Version: 2 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - change-state - authenticate - - Authorized Actions on Auth Method's Collections: - accounts: - create - list - - Attributes: - api_url_prefix: http://localhost:9200 - callback_url: http://localhost:9200/v1/auth-methods/oidc:authenticate:callback - client_id: zbaJLTZh3n14WqSV7qQ9onuIVRDaZdzx - client_secret_hmac: AhyxTBqlZpnny78iA9M7QHKAKocI17bjwvS70B1ccg0 - issuer: https://dev-1vdl8c0q.us.auth0.com/ - signing_algorithms: [RS256] - state: active-public -``` - - - -## Usage - - - -```shell-session -$ boundary auth-methods read [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the auth method to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/auth-methods/update.mdx b/website/content/docs/commands/auth-methods/update.mdx deleted file mode 100644 index 834d1a838..000000000 --- a/website/content/docs/commands/auth-methods/update.mdx +++ /dev/null @@ -1,313 +0,0 @@ ---- -layout: docs -page_title: auth-methods update - Command -description: >- - The "auth-methods update" command updates existing auth method resources. You can update LDAP, OIDC, and password auth method types. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-methods update - -Command: `boundary auth-methods update` - -The `auth-methods update` command lets you update Boundary auth method resources. - -## Examples - -The following example updates an auth method to set the `-max-age` option to `0`. -This update forces the user to reauthenticate, if they are already logged in with the current browser session: - -```shell-session -$ boundary auth-methods update oidc -id amoidc_oHt4HQFCrN \ - -issuer "https://dev-1vdl8c0q.us.auth0.com/" \ - -max-age 0 -``` - -**Example output:** - - - -```plaintext -Auth Method information: - Created Time: Thu, 06 May 2021 16:39:33 MDT - ID: amoidc_oHt4HQFCrN - Name: auth0 - Type: oidc - Updated Time: Thu, 06 May 2021 16:58:21 MDT - Version: 2 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - change-state - authenticate - - Authorized Actions on Auth Method's Collections: - accounts: - create - list - - Attributes: - api_url_prefix: https://e58fe114-7624-431c-994d-b6670e90b03J.boundary.hashicorp.cloud - callback_url: https://e58fe114-7624-431c-994d-b6670e90b03J.boundary.hashicorp.cloud/v1/auth-methods/oidc:authenticate:callback - client_id: zbaJLTZh3n14WqSV7qQ9onuIVRDaZdzx - client_secret_hmac: ayJRYSCphzxcHiKJvBrnDVtz1yiR958ejQuRGdQJMeM - issuer: https://dev-1vdl8c0q.us.auth0.com/ - max_age: 0 - signing_algorithms: [RS256] - state: inactive -``` - - - - -## Usage - - - -```shell-session -$ boundary auth-methods update [type] [sub command] [options] [args] -``` - - - -### Command options: - -- `-description` `(string: "")` - The description to set on the auth method. -- `-id` `(string: "")` - The ID of the auth method to update. -- `-name` `(string: "")` - The name to set on the auth method. -- `-version` `(int: 0)` - The version of the auth method to update. - If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' - -### Usages by type - -The available types are: `ldap`, `oidc`, and `password`. - - - - -The `boundary auth-methods update ldap` command lets you update an LDAP auth method. - -#### Example - -The following example updates an LDAP auth method with the ID `amldap_1234567890` to add the name `devops` and the description `LDAP auth-method for DevOps`: - -```shell-session -$ boundary auth-methods update ldap -id amldap_1234567890 \ - -name "devops" \ - -description "LDAP auth-method for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary auth-methods update ldap [options] [args] -``` - - - -#### LDAP auth method options - -The following are LDAP-specific options in addition to the command -options. - -- `-anon-group-search` - Uses anon bind when performing LDAP - group searches (optional). The default value is `false`. - -- `-bind-dn` `(string: "")` - Uses the distinguished name of entry to bind when - performing user and group searches (optional). - -- `-bind-password` `(string: "")` - Indicates the password to use along with bind-dn - when performing user and group searches (optional). - -- `-certificate` `(string: "")` - Specifies a PEM-encoded X.509 CA certificate in ASN.1 DER - form that can be used as a trust anchor when connecting to an LDAP - server(optional). You can specify this value multiple times. - -- `-client-certificate` `(string: "")` - Specifies a PEM-encoded X.509 client certificate in - ASN.1 DER form that can be used to authenticate against an LDAP server - (optional). - -- `-client-certificate-key` `(string: "")` - Specifies a PEM-encoded X.509 client - certificate key in PKCS #8, ASN.1 DER form used with the client certificate - (optional). - -- `-discover-dn` - Uses anon bind to discover the bind DN of a - user (optional). The default value is `false`. - -- `-enable-groups` - Finds the authenticated user's groups during - authentication (optional). The default is `false`. - -- `-group-attr` `(string: "")` - Specifies the attribute that enumerates a user's group - membership from entries returned by a group search (optional). - -- `-group-dn` `(string: "")` - Specifies the base DN under which to perform group search. - -- `-group-filter` `(string: "")` - Indicates a go template used to construct a LDAP group - search filter (optional). - -- `-insecure-tls` - Skips the LDAP server SSL certificate - validation (optional). Use this option with caution, it is insecure. The default value is `false`. - -- `-start-tls` - Issues the StartTLS command after connecting - (optional). The default is `false`. - -- `-state` `(string: "")` - Indicates the desired operational state of the auth method. - -- `-upn-domain` `(string: "")` - Indicates the userPrincipalDomain used to construct the - UPN string for the authenticating user (optional). - -- `-urls` `(string: "")` - Indicates the LDAP URLs that specify LDAP servers to connect to - (required). You may specify this value multiple times. - -- `-use-token-groups` - Uses the Active Directory tokenGroups - constructed attribute of the user to find the group memberships (optional). - The default value is `false`. - -- `-user-attr` `(string: "")` - Indicates the attribute on user entry matching the - username that is passed during authentication (optional). - -- `-user-dn` `(string: "")` - Specifies the base DN under which to perform user search - (optional). - -- `-user-filter` `(string: "")` - Specifies a go template used to construct a LDAP user - search filter (optional). - - - - -The `boundary auth-methods update oidc` command lets you update OIDC auth methods. - -#### Example - -The following example updates an OIDC auth method with the ID `amoidc_1234567890` to add the name `devops` and the description `Oidc auth-method for DevOps`: - -```shell-session -$ boundary auth-methods update oidc -id amoidc_1234567890 \ - -name "devops" \ - -description "Oidc auth-method for DevOps" -``` -#### Usage - - - -```shell-session -$ boundary auth-methods update oidc [options] [args] -``` - - - -#### OIDC auth method options - -The following are options are specific to OIDC auth-methods in addition to the command options. - -- `-account-claim-maps` `(string: "")` - Indicates the optional account claim maps from - custom claims to the standard claims of sub, name and email. These maps are - represented as key=value where the key equals the Provider from-claim and the - value equals the Boundary to-claim. For example "oid=sub". You may specify this value - multiple times for different to-claims. - -- `-allowed-audience` `(string: "")` - Indicates the acceptable audience ("aud") claim. - You may specify this value multiple times. - -- `-api-url-prefix` `(string: "")` - Indicates the URL prefix used by the OIDC provider in - the authentication flow. - -- `-claims-scopes` `(tring: "")` - Specifies the optional claims scope requested. You may specify this value multiple times. - -- `-client-id` `(string: "")` - Indicates the OAuth 2.0 Client Identifier this auth method - should use with the provider. - -- `-client-secret` `(string: "")` - Indicates the corresponding client secret. - -- `-idp-ca-cert` `(string: "")` - Specifies an optional PEM-encoded X.509 CA certificate that - can be used as trust anchors when connecting to an OIDC provider. May be - specified multiple times. - -- `-disable-discovered-config-validation` - Disables validating - the given auth method against configuration from the authorization server's - discovery URL. This must be specified every time an unvalidatable auth method - is updated or state changed; not specifying it is equivalent to setting it to - false. The default is false. - -- `-dry-run` - Performs all completeness and validation checks - with any newly-provided values without persisting the changes. The default is - false. - -- `-idp-ca-cert` `(tring: "")` - Indicates an optional PEM-encoded X.509 CA certificate that - can be used as trust anchors when connecting to an OIDC provider. You may specify this value multiple times. - -- `-issuer` `(string: "")` - Indicates the provider's Issuer URL. - -- `-max-age` `(string: "")` - Indicates the OIDC "max_age" parameter sent to the provider. - -- `prompts` `(string: "")` - Indicates whether the OIDC authorization server should display reauthentication, account selection, or consent user interface prompts. -You can optionally configure one or more of the following types of prompts to customize the behavior of the authentication process: - - `none` - The authorization server does not display any authentication or consent prompts. - - `login` - The authorization server prompts users for reauthentication before allowing them to log in. - - `consent` - The authorization server prompts users for consent before returning any information to Boundary. - - `select_account` - The authorization server prompts users to select a user account. - The `select_account` option can be helpful if your users have multiple accounts. - - - -Cloud providers implement `prompts` in different ways. -You may notice differences in behavior if you configure OIDC authentication on multiple cloud providers. - - - -- `-signing-algorithm` `(string: "")` - Indicates the allowed signing algorithm. You may specify this value multiple times for multiple values. - - - - - - -The `boundary auth-methods update password` command lets you update a Password-type auth method. - -#### Example - -The following example updates a Password-type auth method with the ID `ampw_1234567890` to add the name `devops` and the description `Password auth-method for DevOps`: - -```shell-session -$ boundary auth-methods update password -id ampw_1234567890 \ - -name "devops" \ - -description "Password auth-method for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary auth-methods update password [options] [args] -``` - - - -### Password auth method options - -The following options are specific to the Passwor-type auth method in addition to the -command options. - -- `-min-login-name-length` `(string: "")` - The minimum length of login names. - -- `-min-password-length` `(string: "")` - The minimum length of passwords. - - - diff --git a/website/content/docs/commands/auth-tokens/delete.mdx b/website/content/docs/commands/auth-tokens/delete.mdx deleted file mode 100644 index a65c342be..000000000 --- a/website/content/docs/commands/auth-tokens/delete.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: auth-tokens delete - Command -description: >- - The "auth-tokens delete" command deletes an existing auth token resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-tokens delete - -Command: `boundary auth-tokens delete` - -The `auth-tokens delete` command deletes an auth token given its ID. - -## Example - -The following command deletes an auth token with the ID `at_LvUqeYz80B`: - -```shell-session -$ boundary auth-tokens delete -id at_LvUqeYz80B -The delete operation completed successfully. -``` - -## Usage - - - -```shell-session -$ boundary auth-tokens delete [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the auth token to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/auth-tokens/index.mdx b/website/content/docs/commands/auth-tokens/index.mdx deleted file mode 100644 index 2eca67c55..000000000 --- a/website/content/docs/commands/auth-tokens/index.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -layout: docs -page_title: auth-tokens - Command -description: >- - The "auth-tokens" command peforms operations on auth token resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-tokens - -Command: `boundary auth-tokens` - -The `auth-tokens` command lets you manage auth token resources in Boundary. - -## Example - -The following example command lists existing auth tokens recursively: - -```shell-session -$ boundary auth-tokens list -recursive - -Auth Token information: - ID: at_LvUqeYz80B - Scope ID: global - Approximate Last Used Time: Sun, 13 Aug 2023 17:22:59 PDT - Auth Method ID: ampw_1234567890 - Created Time: Sun, 13 Aug 2023 17:22:59 PDT - Expiration Time: Sun, 20 Aug 2023 17:22:59 PDT - Updated Time: Sun, 13 Aug 2023 17:22:59 PDT - User ID: u_1234567890 - Authorized Actions: - no-op - read - read:self - delete - delete:self - - ID: at_TXmYwSqnnO - Scope ID: global - Approximate Last Used Time: Sun, 13 Aug 2023 17:23:16 PDT - Auth Method ID: ampw_1234567890 - Created Time: Sun, 13 Aug 2023 17:23:16 PDT - Expiration Time: Sun, 20 Aug 2023 17:23:16 PDT - Updated Time: Sun, 13 Aug 2023 17:23:16 PDT - User ID: u_1234567890 - Authorized Actions: - no-op - read - read:self - delete - delete:self -``` - -## Usage - - - -```shell-session -Usage: boundary auth-tokens [sub command] [options] [args] - - # ... - -Subcommands: - delete Delete an auth tokn - list List an auth token - read Read an auth token -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [delete](/boundary/docs/commands/auth-tokens/delete) -- [list](/boundary/docs/commands/auth-tokens/list) -- [read](/boundary/docs/commands/auth-tokens/read) diff --git a/website/content/docs/commands/auth-tokens/list.mdx b/website/content/docs/commands/auth-tokens/list.mdx deleted file mode 100644 index 8e124bffb..000000000 --- a/website/content/docs/commands/auth-tokens/list.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: docs -page_title: auth-tokens list - Command -description: >- - The "auth-tokens list" command lists the available auth token resources within an enclosing scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-tokens list - -Command: `boundary auth-tokens list` - -The `auth-tokens list` command lists all auth tokens within an enclosing scope or -resource. - - -## Examples - -The following command lists all auth tokens recursively from any child scopes, if applicable: - -```shell-session -$ boundary auth-tokens list -``` - -**Example output:** - - - -```plaintext -Auth Token information: - ID: at_TXmYwSqnnO - Approximate Last Used Time: Sun, 13 Aug 2023 18:03:51 PDT - Auth Method ID: ampw_1234567890 - Created Time: Sun, 13 Aug 2023 17:23:16 PDT - Expiration Time: Sun, 20 Aug 2023 17:23:16 PDT - Updated Time: Sun, 13 Aug 2023 18:03:51 PDT - User ID: u_1234567890 - Authorized Actions: - no-op - read - read:self - delete - delete:self - - ID: at_Gvd3jsqSO2 - Approximate Last Used Time: Sun, 13 Aug 2023 18:04:34 PDT - Auth Method ID: ampw_1234567890 - Created Time: Sun, 13 Aug 2023 18:04:34 PDT - Expiration Time: Sun, 20 Aug 2023 18:04:34 PDT - Updated Time: Sun, 13 Aug 2023 18:04:34 PDT - User ID: u_1234567890 - Authorized Actions: - no-op - read - read:self - delete - delete:self -``` - - - - -## Usage - - - -```shell-session -$ boundary auth-tokens list [options] [args] -``` - - - - -### Command options - -- `-filter` `(string: "")` - If set, the list operation is filtered before it is returned. -The filter operates against each item in the list. -We recommend that you use single quotes, as filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. - -- `-recursive` - If set, the list operation is applied recursively into child scopes, if the type supports it. -The default value is `false`. - -- `-scope-id` `(string: "")` - The scope from which to list the auth tokens. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. - -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/auth-tokens/read.mdx b/website/content/docs/commands/auth-tokens/read.mdx deleted file mode 100644 index 2a14c1bf7..000000000 --- a/website/content/docs/commands/auth-tokens/read.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -layout: docs -page_title: auth-tokens read - Command -description: >- - The "auth-tokens read" command retrieves the details for an auth token resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# auth-tokens read - -Command: `boundary auth-tokens read` - -The `auth-tokens read` command reads an auth token given its ID. - -## Examples - -The following example reads the auth token details for an auth token with the ID `at_Gvd3jsqSO2`: - -```shell-session -$ boundary auth-tokens read -id at_Gvd3jsqSO2 -``` - -**Example output:** - - - -```plaintext -Auth Token information: - Approximate Last Used Time: Sun, 13 Aug 2023 18:04:34 PDT - Auth Method ID: ampw_1234567890 - Created Time: Sun, 13 Aug 2023 18:04:34 PDT - Expiration Time: Sun, 20 Aug 2023 18:04:34 PDT - ID: at_Gvd3jsqSO2 - Updated Time: Sun, 13 Aug 2023 18:04:34 PDT - User ID: u_1234567890 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - read:self - delete - delete:self -``` - - - -## Usage - - - -```shell-session -$ boundary auth-tokens read [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the auth token to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/authenticate/index.mdx b/website/content/docs/commands/authenticate/index.mdx deleted file mode 100644 index b41869585..000000000 --- a/website/content/docs/commands/authenticate/index.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -layout: docs -page_title: authenticate - Command -description: >- - The "authenticate" command authenticates the CLI client using the specified auth method. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# authenticate - -Command: `boundary authenticate` - -The `authenticate` command authenticates the Boundary command line client using the auth method that you specify. - - -## Examples - -The following example authenticates the Boundary CLI using a configured OIDC auth method where the auth method ID is `amoidc_q7jAdI1QgA`: - - -```shell-session -$ boundary authenticate oidc -auth-method-id amoidc_q7jAdI1QgA -``` - -**Example output:** - - - -```plaintext -Opening returned authentication URL in your browser... - -Authentication information: - Account ID: acctoidc_oztPFBFesH - Auth Method ID: amoidc_oHt4HQFCrN - Expiration Time: Thu, 13 May 2021 17:01:11 MDT - User ID: u_JCRQP3ID7l - -The token was successfully stored in the chosen keyring and is not displayed here. -``` - - - -## Usage - - - -```shell-session -Usage: boundary authenticate [sub command] [options] [args] - - # ... - -Subcommands: - ldap Invoke the ldap auth method to authenticate with Boundary - oidc Invoke the OIDC auth method to authenticate with Boundary - password Invoke the password auth method to authenticate with Boundary -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [ldap](/boundary/docs/commands/authenticate/ldap) -- [oidc](/boundary/docs/commands/authenticate/oidc) -- [password](/boundary/docs/commands/authenticate/password) diff --git a/website/content/docs/commands/authenticate/ldap.mdx b/website/content/docs/commands/authenticate/ldap.mdx deleted file mode 100644 index 7f159b735..000000000 --- a/website/content/docs/commands/authenticate/ldap.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: docs -page_title: authenticate ldap - Command -description: >- - The "authenticate ldap" command invokes the LDAP auth method to authenticate the CLI client. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# authenticate ldap - -Command: `boundary authenticate ldap` - -The `authenticate ldap` command lets you invokes the LDAP auth method to authenticate the -Boundary CLI. - -## Example - -The following example uses an LDAP auth method with the ID `amldap_1234567890` and the login name `foo` to authenticate the Boundary CLI: - -```shell-session -$ boundary authenticate ldap -auth-method-id amldap_1234567890 -login-name foo -``` - -## Usage - - - -```shell-session -$ boundary authenticate ldap [options] [args] -``` - - - -### Command options - -- `-auth-method-id` `(string: "")` - The auth-method resource you want to use for authentication. -You can also specify the auth method resource using the **BOUNDARY_AUTH_METHOD_ID** environment variable. - -- `-login-name` `(string: "")` - A login name that corresponds to an account within the given auth method. -You can also specify a login name using the **BOUNDARY_AUTHENTICATE_PASSWORD_LOGIN_NAME** environment variable. - -- `-password` `(string: "")` - The password that is associated with the login name. -If this value is blank, the command prompts you to enter the password interactively in a non-echoing way. -Otherwise, this value can refer to a file on disk (`file://`) from which a password is read or an environment variable (`env://`) from which the password is read. You can also specify the password using the **BOUNDARY_AUTHENTICATE_PASSWORD_PASSWORD** environment variable. - -- `-scope-id` `(string: "")` - The scope ID to use for the operation. -You can also specify the scope ID using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/authenticate/oidc.mdx b/website/content/docs/commands/authenticate/oidc.mdx deleted file mode 100644 index 411881eb2..000000000 --- a/website/content/docs/commands/authenticate/oidc.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -layout: docs -page_title: authenticate oidc - Command -description: >- - The "authenticate oidc" command invokes the OIDC auth method to authenticate the CLI client. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# authenticate oidc - -Command: `boundary authenticate oidc` - -The `authenticate oidc` command lets you invoke the OIDC auth method to authenticate the -Boundary CLI. - -The OIDC authentication method lets Boundary users delegate authentication -to an OIDC provider. OIDC authentication allows Boundary to integrate with widely -adopted identity providers like Okta, cloud-hosted active directory services -with an OIDC frontend, and cloud identity management systems such as AWS IAM. - -## Examples - -The following command authenticates the Boundary CLI using an OIDC auth method with the ID `amoidc_q7jAdI1QgA`: - -```shell-session -$ boundary authenticate oidc -auth-method-id amoidc_q7jAdI1QgA -Opening returned authentication URL in your browser... -``` - -**Example output:** - - - -```plaintext -Authentication information: - Account ID: acctoidc_f0wWsno9jQ - Auth Method ID: amoidc_q7jAdI1QgA - Expiration Time: Wed, 21 Apr 2021 15:02:38 MDT - User ID: u_zAfnbL9b7y - -The token was successfully stored in the chosen keyring and is not displayed here. -``` - - - -## Usage - - - -```shell-session -$ boundary authenticate oidc [options] [args] -``` - - - -### Command options - -- `-auth-method-id` `(string: "")` - The auth method resource you want to use for the authentication. -You can also specify the auth method resource using the **BOUNDARY_AUTH_METHOD_ID** environment variable. - -- `-scope-id` `(string: "")` - The scope ID to use for the operation. -You can also specify the scope ID using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/authenticate/password.mdx b/website/content/docs/commands/authenticate/password.mdx deleted file mode 100644 index a3cd95637..000000000 --- a/website/content/docs/commands/authenticate/password.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -layout: docs -page_title: authenticate password - Command -description: >- - The "authenticate password" command invokes the password auth method to authenticate the CLI client. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# authenticate password - -Command: `boundary authenticate password` - -The `authenticate password` command lets you invoke the password auth method to -authenticate the Boundary CLI. - - -## Examples - -The following example authenticates the Boundary CLI using the password auth method and specifying the username: - -```shell-session -$ boundary authenticate password -login-name user1 -Please enter the password (it will be hidden): - -Authentication information: - Account ID: acctpw_JQXp0QHxQL - Auth Method ID: ampw_xxF3EIBn4k - Expiration Time: Thu, 26 May 2022 11:36:27 MDT - User ID: u_RlkqMP6jUv - -The token was successfully stored in the chosen keyring and is not displayed here. -``` - -## Usage - - - -```shell-session -$ boundary authenticate password [options] [args] -``` - - - - -### Command options - -- `-auth-method-id` `(string: "")` - The auth-method resource you want to use for the - authentication. - You can also specify the auth method resource using the **BOUNDARY_AUTH_METHOD_ID** environment variable. - -- `-login-name` `(string: "")` - A login name that corresponds to an account - within the given auth method. - You can also specify a login name using the **BOUNDARY_AUTHENTICATE_PASSWORD_LOGIN_NAME** environment variable. - -- `-password` `(string: "")` - The password that is associated with the login name. - If this value is blank, the command prompts you to enter the password interactively - in a non-echoing way. Otherwise, this value can refer to a file on disk (`file://`) - from which a password is read or an environment variable (`env://`) from which the - password is read. You can also specify the password using the - **BOUNDARY_AUTHENTICATE_PASSWORD_PASSWORD** environment variable. - -- `-scope-id` `(string: "")` - The scope ID to use for the operation. You can also specify the scope ID using the **BOUNDARY_SCOPE_ID** environment variable. - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/billing/index.mdx b/website/content/docs/commands/billing/index.mdx deleted file mode 100644 index 9bfc569d4..000000000 --- a/website/content/docs/commands/billing/index.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: docs -page_title: billing - Command -description: >- - The "billing" command retrieves the number of active users to help you predict user-based pricing. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# billing - -Command: `boundary billing` - -The `billing` command retrieves the number of active Boundary users in your organization to help you predict billing information. - -An active user is any unique Boundary user resource that has performed at least one authenticated action during the relevant billing period. -Users perform authenticated actions when they call API endpoints that require a valid auth token. -Boundary provides auth tokens to users when they authenticate using an auth method. - -## Examples - -The following command retrieves the number of monthly active users between September 2023 and February 2024: - -```shell-session -$ boundary billing monthly-active-users / - -start-time="2023-09" / - -end-time="2024-02" -``` - -## Usage - - - -```shell-session -Usage: boundary billing [sub command] [options] [args] - - # ... - -Subcommand: - monthly-active-users Display the number of monthly active users -``` - - - -For more information, examples, and usage, click on the name of the subcommand in the sidebar or the link below: - -- [monthly-active-users](/boundary/docs/commands/billing/monthly-active-users) \ No newline at end of file diff --git a/website/content/docs/commands/billing/monthly-active-users.mdx b/website/content/docs/commands/billing/monthly-active-users.mdx deleted file mode 100644 index fe99ba347..000000000 --- a/website/content/docs/commands/billing/monthly-active-users.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: docs -page_title: billing monthly-active-users - Command -description: >- - The "billing monthly-active-users" command retrieves the number of monthly active users during a specified time period to help you predict user-based pricing. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# billing monthly-active-users - -Command: `boundary billing monthly-active-users` - -The `billing monthly-active-users` command retrieves the number of monthly active Boundary users in your organization during a specific time to help predict billing information. - -## Example - -The following command retrieves the number of monthly active users between September 2023 and February 2024: - -```shell-session -$ boundary billing monthly-active-users / - -start-time="2023-09" / - -end-time="2024-02" -``` - -## Usage - - - -```shell-session -$ boundary billing monthly-active-users [options] [args] -``` - - - -### Command options - -- `end-time=` - The end date for which you want to view monthly active users in YYYY-MM format. -If you do not include an end time, the command retrieves active users from the start time through the current month. - - The end time is exclusive, so the command returns monthly active users up to, but not including, the month you enter. - If the end time is **2024-07**, for example, the results include all active users from June (2024-06), but they would not include any users from July (2024-07). -- `start-time=` - The start date for which you want to view monthly active users in YYYY-MM format. - - The start time is inclusive, so any active users from the month you enter are included in the results. - If the start time is **2024-06**, for example, the command returns all users from June (2024-06) through the specified end time. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/cache/add-token.mdx b/website/content/docs/commands/cache/add-token.mdx deleted file mode 100644 index 23b7928a1..000000000 --- a/website/content/docs/commands/cache/add-token.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -layout: docs -page_title: cache add-token - Command -description: >- - The "cache add-token" command adds an auth token resource to the Boundary cache. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# cache add-token - -Command: `boundary cache add-token` - -The `boundary cache add-token` command lets you add an auth token from your keyring to a Boundary cache that is running. - -By default, the Boundary CLI tries to use a keyring to store and receive auth tokens. -Whenever you use an auth token to interact with Boundary, the client cache stores the auth token and syncs the data associated with it. -If you authenticate to multiple Boundary instances, the client cache stores multiple auth tokens and syncs the data associated with each token. - -By adding auth tokens to your client cache, you can select which specific Boundary instance you want to search. - - - -The `search` operation only displays the resources that you have permissions to view. -You must have the `read` or `read:self` grant on the auth token to successfully add it. -If you are logged in as a user who does not have the permissions to view a resource, it does not display in the list of results. - -For more information, refer to [Identity and access management (IAM)](/boundary/docs/concepts/iam). - - - -## Examples - -The following command adds an auth token to the client cache from your keyring: - -```shell-session -$ boundary cache add-token -``` - -The following command specifies the name of the keyring `development` from which you want to add the token: - -```shell-session -$ boundary cache add-token -token-name development -``` - -## Usage - - - -```shell-session -$ boundary cache add-token [options] -``` - - - -### Command options - -- `keyring-type=` - Specifies the type of keyring to use. -The default value is `auto` which uses the Windows credential manager, OS X keychain, or cross-platform password store, depending on your platform. -Use the value `none` to disable keyring functionality. -Depending on your platform, available values include: - - `wincred` - - `keychain` - - `pass` - - `secret-service` - - You can also specify the keyring type using the **BOUNDARY_KEYRING_TYPE** environment variable. -- `output-curl-string` - Specifies that Boundary should print an equivalent cURL command string and exit, instead of executing the request. -The default value is `false`. -- `token` = A URL that points to a file on disk (file://) from which Boundary reads a token or an environment variable (env://) from which the token will be read. -If you set this parameter, it overrides the `token-name` parameter. -- `token-name` - If specified, Boundary uses the value in this parameter as the name when it stores the token in the system credential store. -You can use this value to switch user identities for different commands. -You can also specify a token name using the **BOUNDARY_TOKEN_NAME** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/cache/index.mdx b/website/content/docs/commands/cache/index.mdx deleted file mode 100644 index a349d5798..000000000 --- a/website/content/docs/commands/cache/index.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: docs -page_title: cache - Command -description: >- - The "cache" command performs operations on a local cache that facilitates searches and protects your system resources from being overwhelmed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# cache - -Command: `boundary cache` - -The `cache` command lets you manage the Boundary cache and perform operations on the local cache of information. - -## Example - -The following command starts the Boundary cache in the background: - -```shell-session -$ boundary cache start -background -``` - -## Usage - - - -```shell-session -Usage: boundary cache [options] [args] - # ... -Subcommands: - add-token Add an auth token to a Boundary cache that is currently running. - start Starts the Boundary cache. - status Gets the status information of a Boundary cache that is currently running. - stop Stops the Boundary cache. -``` - - - -For more information, examples, and usage, click on the name of the subcommand in the sidebar or one of the links below: - -- [add-token](/boundary/docs/commands/cache/add-token) -- [start](/boundary/docs/commands/cache/start) -- [status](/boundary/docs/commands/cache/status) -- [stop](/boundary/docs/commands/cache/stop) diff --git a/website/content/docs/commands/cache/start.mdx b/website/content/docs/commands/cache/start.mdx deleted file mode 100644 index 4796f30b7..000000000 --- a/website/content/docs/commands/cache/start.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: docs -page_title: cache start - Command -description: >- - The "cache start" command starts the Boundary cache and determines the behavior of the local cache. You can customize log, search, and refresh settings. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# cache start - -Command: `boundary cache start` - -The `boundary cache start` command lets you manually start the Boundary cache and customize the behavior of the local cache. - -## Example - -The following command starts the Boundary cache in the background: - -```shell-session -$ boundary cache start -background -``` - -## Usage - - - -```shell-session -$ boundary cache start [options] [args] -``` - - - -### Command options - -- `background` - Starts the Boundary cache in the background. -The default value is `false`. -By default, the cache starts in the foreground. -- `log-format=` - Specifies the log format, mostly as a fallback for events. -Supported values are `standard` and `json`. -- `max-search-refresh-timeout=` - If a search request triggers a best effort refresh, this value specifies how long the refresh should run before time out. -In the event of a timeout, Boundary uses the stale data that is currently in the cache. -The default value is 7 seconds. -- `max-search-staleness=` - The amount of time that can pass since the last refresh before the client cache causes a blocking refresh. -The blocking refresh occurs when you perform the `boundary search` command. -It requires Boundary to refresh the local cache using the control plane. -The default value is 30 seconds. -- `refresh-interval` - A duration that specifies how frequently the client cache should query Boundary for changes to sessions and targets. -Note that Boundary only searches sessions and targets that the user who ran the command has access to. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/cache/status.mdx b/website/content/docs/commands/cache/status.mdx deleted file mode 100644 index e5bc0cc5e..000000000 --- a/website/content/docs/commands/cache/status.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: docs -page_title: cache status - Command -description: >- - The "cache status" command checks the status of the Boundary cache and reports on configuration, user, and resource information. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# cache status - -Command: `boundary cache status` - -The `boundary cache status` command lets you manually check the status of the Boundary cache. -Boundary prints out a status report that includes configuration, user, and resource information. - -## Example - -The following command checks the status of the Boundary cache: - -```shell-session -$ boundary cache status -``` - -**Example output:** - - - -```plaintext -Status: - Domain Socket: /home/my_user/.boundary/socket/daemon.sock - Log Location: /home/my_user/.boundary/cache.log - Uptime: 15m22s - User Count: 1 -``` - - - -## Usage - - - -```shell-session -$ boundary cache status [options] [args] -``` - - - -### Command options - -- `output-curl-string` - Specifies that Boundary should print an equivalent cURL command string and exit, instead of executing the request. -The default value is `false`. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/cache/stop.mdx b/website/content/docs/commands/cache/stop.mdx deleted file mode 100644 index 5e76b2c5b..000000000 --- a/website/content/docs/commands/cache/stop.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: docs -page_title: cache stop - Command -description: >- - The "cache stop" command stops the Boundary cache. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# cache stop - -Command: `boundary cache stop` - -The `boundary cache stop` command lets you manually stop the Boundary cache. - -## Example - -The following command stops the Boundary cache: - -```shell-session -$ boundary cache stop -``` - -## Usage - - - -```shell-session -$ boundary cache stop [options] [args] -``` - - - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/client-agent/index.mdx b/website/content/docs/commands/client-agent/index.mdx deleted file mode 100644 index 5671c6cb8..000000000 --- a/website/content/docs/commands/client-agent/index.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -layout: docs -page_title: client-agent - Command -description: >- - The "client-agent" command lets you interact with the Boundary Client Agent. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# client-agent - -Command: `boundary client-agent` - -The `client-agent` command lets you interact with the Boundary Client Agent. -You can check the Client Agent's status, pause it, resume it, or list the active transparent sessions the Client Agent is managing. - -## Examples - -The following command lets you check the status of the Client Agent to ensure it is running: - -```shell-session -$ boundary client-agent status -``` - -The following command retrieves information about any sessions that the Client Agent is managing: - -```shell-session -$ boundary client-agent sessions -``` - -You can temporarily disable the Client Agent by pausing it with the following command: - -```shell-session -$ boundary client-agent pause -``` - -## Usage - - - -```shell-session -Usage: boundary client-agent [options] [args] - - # ... - -Subcommands: - pause Pauses the running boundary client agent - resume Resumes the paused boundary client agent - sessions List active transparent sessions managed by the client agent. - status Get the status information of the running boundary client agent -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [pause](/boundary/docs/commands/client-agent/pause) -- [resume](/boundary/docs/commands/client-agent/resume) -- [sessions](/boundary/docs/commands/client-agent/sessions) -- [status](/boundary/docs/commands/client-agent/status) diff --git a/website/content/docs/commands/client-agent/pause.mdx b/website/content/docs/commands/client-agent/pause.mdx deleted file mode 100644 index 8b4081371..000000000 --- a/website/content/docs/commands/client-agent/pause.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: client-agent pause - Command -description: >- - The "client-agent pause" command pauses the Client Agent so that it does not intercept DNS requests. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# client-agent pause - -Command: `boundary client-agent pause` - -The `boundary client-agent pause` command lets you temporarily stop the Client Agent. -When the Client Agent is paused, it does not intercept DNS requests and you cannot use transparent sessions. - -## Example - -The following command pauses the Client Agent: - -```shell-session -$ boundary client-agent pause -``` - -## Usage - - - -```shell-session -$ boundary client-agent pause [options] [args] -``` - - - -### Command options - -- `client-agent-port=` - Specifies the port on which the Client Agent listens. -You can also specify the port using the **BOUNDARY_CLIENT_AGENT_LISTENING_PORT** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/client-agent/resume.mdx b/website/content/docs/commands/client-agent/resume.mdx deleted file mode 100644 index 02729de60..000000000 --- a/website/content/docs/commands/client-agent/resume.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -layout: docs -page_title: client-agent resume - Command -description: >- - The "client-agent resume" command resumes running the Client Agent when it is paused. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# client-agent resume - -Command: `boundary client-agent resume` - -The `boundary client-agent resume` command lets you resume the Client Agent when it is paused. -When the Client Agent is paused, it does not intercept DNS requests and you cannot use transparent sessions. -You must resume the Client Agent to use transparent sessions again after you pause it. - -## Example - -The following command resumes the Client Agent: - -```shell-session -$ boundary client-agent resume -``` - -## Usage - - - -```shell-session -$ boundary client-agent resume [options] [args] -``` - - - -### Command options - -- `client-agent-port=` - Specifies the port on which the Client Agent listens. -You can also specify the port using the **BOUNDARY_CLIENT_AGENT_LISTENING_PORT** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/client-agent/sessions.mdx b/website/content/docs/commands/client-agent/sessions.mdx deleted file mode 100644 index e2731b24a..000000000 --- a/website/content/docs/commands/client-agent/sessions.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: docs -page_title: client-agent sessions - Command -description: >- - The "client-agent sessions" command lists any active sessions that the Client Agent is managing. It also lists any associated brokered credentials. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# client-agent sessions - -Command: `boundary client-agent sessions` - -The `boundary client-agent sessions` command lists any sessions that the Client Agent is managing as well as any brokered credentials that are associated with those sessions. - -## Example - -The following command lists any sessions that the Client Agent is managing: - -```shell-session -$ boundary client-agent sessions -``` - -## Usage - - - -```shell-session -$ boundary client-agent sessions [options] [args] -``` - - - -### Command options - -- `client-agent-port=` - Specifies the port on which the Client Agent listens. -You can also specify the port using the **BOUNDARY_CLIENT_AGENT_LISTENING_PORT** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/client-agent/status.mdx b/website/content/docs/commands/client-agent/status.mdx deleted file mode 100644 index f2f16dc2d..000000000 --- a/website/content/docs/commands/client-agent/status.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -layout: docs -page_title: client-agent status - Command -description: >- - The "client-agent status" command provides the status of the Client Agent so you can ensure that it is running. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# client-agent status - -Command: `boundary client-agent status` - -You can use the `boundary client-agent status` command to ensure that the Client Agent is running. -The command provides the runtime status and information about whether the current user is authenticated. -It may also include a list of errors, if the Client Agent has encountered any. - -## Example - -The following command provides the current status of the Client Agent: - -```shell-session -$ boundary client-agent status -``` - -## Usage - - - -```shell-session -$ boundary client-agent status [options] [args] -``` - - - -### Command options - -- `client-agent-port=` - Specifies the port on which the Client Agent listens. -You can also specify the port using the **BOUNDARY_CLIENT_AGENT_LISTENING_PORT** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/config/autocomplete.mdx b/website/content/docs/commands/config/autocomplete.mdx deleted file mode 100644 index a7413e6e2..000000000 --- a/website/content/docs/commands/config/autocomplete.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: docs -page_title: config autocomplete - Command -description: >- - The "config autocomplete" command installs or uninstalls autocompletion support for Boundary's CLI. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# config autocomplete - -Command: `boundary config autocomplete` - -The `config autocomplete` command lets you install or uninstall autocompletion support -for Boundary's CLI. - - -## Examples - -The following command installs autocompletion support for Boundary's CLI: - -```shell-session -$ boundary config autocomplete install -``` - -The following command uninstalls autocompletion support from Boundary's CLI: - -```shell-session -$ boundary config autocomplete uninstall -``` - -## Usage - -**Install:** - - - -```shell-session -$ boundary config autocomplete install [options] [args] -``` - - - -**Uninstall:** - - - -```shell-session -$ boundary config autocomplete uninstall [options] [args] -``` - - - - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/config/decrypt.mdx b/website/content/docs/commands/config/decrypt.mdx deleted file mode 100644 index f6833673a..000000000 --- a/website/content/docs/commands/config/decrypt.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -layout: docs -page_title: config decrypt - Command -description: >- - The "config decrypt" command decrypts sensitive values in configuration files. You must mark sensitive values with {{decrypt()}} as appropriate. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# config decrypt - -Command: `boundary config decrypt` - -The `config decrypt` command decrypts sensitive values in a Boundary -configuration file. You must mark these values with `{{decrypt()}}` as -appropriate, for example: `key = {{decrypt(encrypted_value)}}`. - -## Examples - -The following command overwrites the existing configuration file using the `-overwrite` flag: - -```shell-session -$ boundary config decrypt -overwrite config.hcl -``` - -In order for this command to perform its task, you must define a "kms" block within the configuration file: - -```hcl -kms "aead" { - purpose = "config" - aead_type = "aes-gcm" - key = "7xtkEoS5EXPbgynwd+dDLHopaCqK8cq0Rpep4eooaTs=" -} -``` - -You can define the "kms" block in the configuration file or using the `-config` -flag. If you define it in the configuration file, only string parameters are -supported, and the markers must be inside the quotation marks that delimit the string. -Additionally, if you define the block inline, do not use an "aead" block with -the key defined in the configuration file, as it provides no protection. - -## Usage - - - -```shell-session -$ boundary config decrypt [options] [args] -``` - - - - -### Command options - -- `-config` `(string: "")` - The configuration file to decrypt. - -- `-config-kms` `(string: "")` - If set, the given file is parsed for - a "kms" block with purpose `config` to determine whether it should be used to perform the command. - If you do not configure this value, the command expects a block to be defined inline with the configuration file, and will only be able to support quoted string parameters. - -- `-overwrite` - If set, overwrites the existing file. The default value is - `false`. - -- `-strip` - If set, strips the declarations from the file afterwards. - The default value is `false`. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/config/encrypt.mdx b/website/content/docs/commands/config/encrypt.mdx deleted file mode 100644 index 4aad1334a..000000000 --- a/website/content/docs/commands/config/encrypt.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -layout: docs -page_title: config encrypt - Command -description: >- - The "config encrypt" command encrypts sensitive values in configuration files. You must mark sensitive values with {{encrypt()}} as appropriate. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# config encrypt - -Command: `boundary config encrypt` - -The `config encrypt` command encrypts sensitive values in a Boundary -configuration file. You must mark these values with `{{encrypt()}}` as -appropriate, for example: `key = {{encrypt(key_value)}}`. - - -## Examples - -The following command overwrites the existing configuration file use the `-overwrite` flag: - -```shell-session -$ boundary config encrypt -overwrite config.hcl -``` - -In order for this command to perform its task, you must define a "kms" block within a configuration file: - -```hcl -kms "aead" { - purpose = "config" - aead_type = "aes-gcm" - key = "7xtkEoS5EXPbgynwd+dDLHopaCqK8cq0Rpep4eooaTs=" -} -``` - -You can define the "kms" block in the configuration file or using the `-config` -flag. If you define it in the configuration file, only string parameters are -supported, and the markers must be inside the quotation marks that delimit the string. -Additionally, if you define the block inline, do not use an "aead" block with -the key defined in the configuration file as it provides no protection. - -## Usage - - - -```shell-session -$ boundary config encrypt [options] [args] -``` - - - - -### Command options - -- `-config` `(string: "")` - The configuration file to encrypt. - -- `-config-kms` `(string: "")` - If set, the given file is parsed for - a "kms" block with purpose `config` to determine whether it should be used to perform the command. - If you do not configure this value, the command expects a block to be defined inline with the configuration file, and will only be able to support quoted string parameters. - -- `-overwrite` - If set, overwrites the existing file. The default value is - `false`. - -- `-strip` - If set, strips the declarations from the file afterwards. - The default value is `false`. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/config/get-token.mdx b/website/content/docs/commands/config/get-token.mdx deleted file mode 100644 index 3ce025f00..000000000 --- a/website/content/docs/commands/config/get-token.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -layout: docs -page_title: config get-token - Command -description: >- - The "config get-token" command fetches a token stored by the Boundary CLI. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# config get-token - -Command: `boundary config get-token` - -The `config get-token` command fetches a token stored by the Boundary CLI. - -## Examples - -The following command gets the token stored by the Boundary CLI: - -```shell-session -$ boundary config get-token -``` - -**Example output:** - - - -```plaintext -at_yczA5UPS7Y_s13B5PWh7KENvtKQKgDxaEvP682FMfq5eXrpzKNTpmaHgLS2ucRexrTQ7ueMhDFY5MdFvNuzuTWzUzYgacitnSBaPo75b3XZU4Zp6wmdsXqmkPNY3U -``` - - - -This command can be useful in various situations. For example, developers could share a line such as the following in a shell script, such that each -developer on their own machine executes the script using their own -Boundary token: - - - -```shell-session -$ curl --header "Authorization: Bearer $(boundary config get-token)" \ - --header "Content-Type: application/json" \ - http://127.0.0.1:9200/v1/roles/r_1234567890 -``` - - - -This command keeps parity with the behavior of other Boundary commands; if you set the -`BOUNDARY_TOKEN` environment variable, it overrides the value loaded -from the system store. Not only does this keep parity, but it also allows -examples such as the one above to work even if there is no stored token, but you specified -an environment variable. - -## Usage - - - -```shell-session -$ boundary config get-token [options] [args] -``` - - - -### Command options - -- `-account-id` - Prints out the account ID - associated with the token instead of the token itself, if specified. The default value is - `false`. - -- `-auth-method-id` - Prints out the auth method ID - associated with the token instead of the token itself, if specified. The default value is `false`. - -- `-keyring-type` `(string: "")` - Indicates the type of keyring to use. This value defaults to - `auto` which uses the Windows credential manager, OSX keychain, or - cross-platform password store depending on the platform. Set this value to `none` to disable - keyring functionality. The following keyring types are available, depending on platform: - - - `wincred` - - `keychain` - - `pass` - - `secret-service` - - You can also specify the keyring type using the **BOUNDARY_KEYRING_TYPE** environment - variable. - -- `-token-name` `(string: "")` - Indicates whether the given value should be used as - the name when loading the token from the system credential store. This value must - correspond to a name used when authenticating. You can also specify the token name using - the **BOUNDARY_TOKEN_NAME** environment variable. - -- `-user-id` - Prints out the user ID associated - with the token instead of the token itself, if specified. The default value is `false`. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/config/index.mdx b/website/content/docs/commands/config/index.mdx deleted file mode 100644 index 7e2263d86..000000000 --- a/website/content/docs/commands/config/index.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -layout: docs -page_title: config - Command -description: >- - The "config" command groups subcommands that interact with Boundary's configuration files. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# config - -Command: `boundary config` - -The `config` command groups subcommands for operators to interact with -Boundary's configuration files. - -## Examples - -The following command encrypts sensitive values in a configuration file: - -```shell-session -$ boundary config encrypt config.hcl -``` - -The following command decrypts sensitive values in a configuration file: - -```shell-session -$ boundary config decrypt config.hcl -``` - -The following command reads a stored token's output. - -```shell-session -$ boundary config get-token -``` - - -## Usage - - - -```shell-session -Usage: boundary config [options] [args] - - # ... - -Subcommands: - autocomplete Install or uninstall autocompletion for Boundary's CLI - decrypt Decrypt sensitive values in Boundary's configuration file - encrypt Encrypt sensitive values in Boundary's configuration file - get-token Get the stored token, or its properties -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [autocomplete](/boundary/docs/commands/config/autocomplete) -- [decrypt](/boundary/docs/commands/config/decrypt) -- [encrypt](/boundary/docs/commands/config/encrypt) -- [get-token](/boundary/docs/commands/config/get-token) diff --git a/website/content/docs/commands/connect/cassandra.mdx b/website/content/docs/commands/connect/cassandra.mdx deleted file mode 100644 index e02950eb9..000000000 --- a/website/content/docs/commands/connect/cassandra.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -layout: docs -page_title: connect cassandra - Command -description: >- - The "connect cassandra" command performs a target authorization or consumes an existing authorization token, and then launches a proxied Cassandra (CQL) connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect cassandra - -Command: `boundary connect cassandra` -The `connect cassandra` command authorizes a session against a target and invokes a Cassandra client for the connection. -The command fills in the local address and port. - -> **Note:** Currently, only configurations using Cassandra's `PasswordAuthenticator` are supported. - -@include 'cmd-connect-env-vars.mdx' - - -## Examples - -The following example shows how to connect to a target with the ID `ttcp_eTcZMueUYv` using a Cassandra helper: - -```shell-session -$ boundary connect cassandra -target-id=ttcp_eTcZMueUYv \ - -keyspace=mykeyspace \ - -username=superuser -``` - -When prompted, you must enter the password for the user, "superuser": - - - -```plaintext -Password: -Connected to example-cluster at localhost:9042 -[cqlsh 6.2.0 | Cassandra 5.0.4 | CQL spec 3.4.7 | Native protocol v5] -Use HELP for help. -superuser@cqlsh:mykeyspace> -``` - - - -## Usage - - - -```shell-session -$ boundary connect cassandra [options] [args] -``` - - - -@include 'cmd-connect-command-options.mdx' - -### Cassandra options: - -- `-keyspace` `(string: "")` - The keyspace name you want to pass through to the client. -You can also specify the keyspace name using the **BOUNDARY_CONNECT_KEYSPACE** environment variable. - -- `-style` `(string: "")` - How the CLI attempts to invoke a Cassandra client. -This value also sets a suitable default for `-exec`, if you did not specify a value. -The default and currently-understood value is `cqlsh`. -You can also specify how the CLI attempts to invoke a Cassandra client using the **BOUNDARY_CONNECT_CASSANDRA_STYLE** environment variable. - -- `-username` `(string: "")` - The username you want to pass through to the client. -This value may be overridden by credentials sourced from a credential store. -You can also specify a username using the **BOUNDARY_CONNECT_USERNAME** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/connect/http.mdx b/website/content/docs/commands/connect/http.mdx deleted file mode 100644 index cbe4d996d..000000000 --- a/website/content/docs/commands/connect/http.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -layout: docs -page_title: connect http - Command -description: >- - The "connect http" command command performs a target authorization or consumes an existing authorization token, and then launches a proxied http connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect http - -Command: `boundary connect http` - -The `connect http` command authorizes a session against a target and invokes an -HTTP client for the connection. -The command fills in the local address and port. - -@include 'cmd-connect-env-vars.mdx' - -## Example - -The following example authorizes a session to a target with the ID `ttcp_1234567890` and invokes the default HTTP client, `curl`: - -```shell-session -$ boundary connect http -target-id=ttcp_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary connect http [options] [args] -``` - - - -This command performs a target authorization or consumes an existing authorization token, and launches a proxied HTTP connection. - -@include 'cmd-connect-command-options.mdx' - -### HTTP options: - -- `-host` `(string: "")` - The host value to use. - This setting overrides the endpoint address from the session information. - Boundary passes the specified host name through to the client for use in the host header and TLS SNI value, if supported. - You can also specify the host value using the **BOUNDARY_CONNECT_HTTP_HOST** environment variable. - -- `-method` `(string: "")` - The HTTP method to use. -If you don't set a method, Boundary uses the client's default. -You can also specify a method using a the **BOUNDARY_CONNECT_HTTP_METHOD** environment variable. - -- `-path` `(string: "")` - The path that is appended to the - generated URL. - You can also specify a path using the **BOUNDARY_CONNECT_HTTP_PATH** environment variable. - -- `-scheme` `(string: "")` - The scheme to use. -The default scheme is `https`. -You can also specify the scheme using the **BOUNDARY_CONNECT_HTTP_SCHEME** environment variable. - -- `-style` `(string: "")` - How the CLI attempts to invoke an HTTP client. -This value also sets a suitable default for `-exec`, if you did not specify a value. -The default and currently-understood value is `curl`. -You can also specify how the CLI attempts to invoke the HTTP client using the **BOUNDARY_CONNECT_HTTP_STYLE** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/connect/index.mdx b/website/content/docs/commands/connect/index.mdx deleted file mode 100644 index e19675015..000000000 --- a/website/content/docs/commands/connect/index.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -layout: docs -page_title: connect - Command -description: >- - The "connect" command authorizes a target resource and launches a proxied connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect - -Command: `boundary connect` - -Every command that results in an API call contains a set of flags that control connection options, which include TLS and other settings. -Boundary provides connect helpers that can facilitate access to certain protocols like HTTP, RDP, and SSH. -One example is the Boundary helper for SSH that automatically accepts host SSH key prompts for you. -You run these connect helpers using the command `boundary connect `. -You can run `boundary connect -h` to see the available helpers, options, and arguments. - -## Examples - -The following example connects to a target `ttcP_INY0BCD2VF` and shows the use of the -[`-listen-addr`](/boundary/docs/commands//connect#-listen-port) and -[`-listen-port`](/boundary/docs/commands//connect#-listen-addr) flags -to specify the listening address and port used that Boundary will attempt to use -for every connection. This example uses the address `127.0.0.1` and -the port `8872`: - -```shell-session -$ boundary connect ssh \ - -listen-addr=127.0.0.1 \ - -listen-port=8872 - -target_id=ttcp_INY0BCD2VF -``` - -## Usage - - - -```text -Usage: boundary connect [options] [args] - # ... -Subcommands: - http Authorize a session against a target and invoke an HTTP client to connect - kube Authorize a session against a target and invoke a Kubernetes client to connect - cassandra Authorize a session against a target and invoke a Cassandra client to connect - mysql Authorize a session against a target and invoke a MySQL client to connect - mongo Authorize a session against a target and invoke a MongoDB client to connect - postgres Authorize a session against a target and invoke a Postgres client to connect - rdp Authorize a session against a target and invoke an RDP client to connect - redis Authorize a session against a target and invoke a redis client to connect - ssh Authorize a session against a target and invoke an SSH client to connect -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [http](/boundary/docs/commands/connect/http) -- [kube](/boundary/docs/commands/connect/kube) -- [cassandra](/boundary/docs/commands/connect/cassandra) -- [mysql](/boundary/docs/commands/connect/mysql) -- [mongo](/boundary/docs/commands/connect/mongo) -- [postgres](/boundary/docs/commands/connect/postgres) -- [rdp](/boundary/docs/commands/connect/rdp) -- [redis] (/boundary/docs/commands/connect/redis) -- [ssh](/boundary/docs/commands/connect/ssh) - -### Command options - -- `-addr` `(string: "")` - The address of the Boundary controller as a complete URL, for example https://boundary.example.com:9200. - Instead of passing the `-addr` argument with every command, you can configure the **BOUNDARY_ADDR** environment variable. - In both cases, the value denotes the address of the Boundary environment you want to send CLI commands to. -- `-ca-cert` `(string: "")` - The path on the local disk to a single PEM-encoded CA certificate that should be used to verify the controller or worker server's SSL certificate. - This value takes precedence over `-ca-path`. - You can also specify the path using the **BOUNDARY_CACERT** environment variable. -- `-ca-path` `(string: "")` - The path on the local disk to a directory of PEM-encoded CA certificates that should be used to verify the controller's SSL certificate. - You can also specify the path using the **BOUNDARY_CAPATH** environment variable. -- `-client-cert` `(string: "")` - The path on the local disk to a single PEM-encoded CA certificate that should be used for TLS authentication to the Boundary controller. - If you configure this flag, the `-client-key` value is also required. - You can also specify the path using the **BOUNDARY_CLIENT_CERT** environment variable. -- `-client-key` `(string: "")` - The path on the local disk to a single PEM-encoded private key that matches the client certificate you referenced with `-client-cert`. - You can also specify the path using the **BOUNDARY_CLIENT_KEY** environment variable. -- `-listen-addr` `(string: "")` - If set, the CLI attempts to bind its listening address to the given value, which must be an IP address. - If it cannot bind the listening address, the command produces an error. - If you do not set this value, Boundary defaults to the most common IPv4 loopback address, 127.0.0.1. - You can also specify a listening address using the **BOUNDARY_CONNECT_LISTEN_ADDR** environment variable. -- `-listen-port` `(string: "")` - If set, the CLI attempts to bind its listening port to the given value. - If it cannot bind the listening port, the command produces error. - You can also specify a listening address using the **BOUNDARY_CONNECT_LISTEN_PORT** environment variable. -- `-tls-insecure` - If set, this option disables verification of TLS certificates. - We highly discourage using this option as it decreases the security of data transmissions to - and from the Boundary server. - The default value is `false`. - You can also disable TLS certificate validation using the **BOUNDARY_TLS_INSECURE** environment variable. -- `-tls-server-name` `(string: "")` - A name to use as the SNI host when you connect to the Boundary server using TLS. - You can also specify the SNI host using the **BOUNDARY_TLS_SERVER_NAME** environment variable. - - -@include 'cmd-connect-command-options.mdx' diff --git a/website/content/docs/commands/connect/kube.mdx b/website/content/docs/commands/connect/kube.mdx deleted file mode 100644 index 15ea8f3a6..000000000 --- a/website/content/docs/commands/connect/kube.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -layout: docs -page_title: connect kube - Command -description: >- - The "connect kube" command command performs a target authorization or consumes an existing authorization token, and then launches a proxied kube connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect kube - -Command: `boundary connect kube` - -The `connect kube` command authorizes a session against a target and invokes a -Kubernetes client for the connection. -The command fills in the local address and port. - -@include 'cmd-connect-env-vars.mdx' - -## Examples - -The following example authorizes a session to a target with the ID `ttcp_1234567890` and runs the `get nodes` command using the default `kubectl` client: - -```shell-session -$ boundary connect kube \ - -target-id ttcp_t12345 \ - -- get nodes -``` - -## Usage - - - -```shell-session -$ boundary connect kube [options] [args] -``` - - - -This command performs a target authorization or consumes an existing authorization token, and launches a proxied Kube connection. - -@include 'cmd-connect-command-options.mdx' - -### Kubernetes options: - -- `-host` `(string: "")` - The host value to use. - If set, this value overrides the endpoint address from the session information. - Boundary passes the specified host name through to the client for use in the TLS SNI value, if supported. - You can also specify the host value using the **BOUNDARY_CONNECT_KUBE_HOST** environment variable. - -- `-scheme` `(string: "")` - The scheme to use. -The default value is `https`. -You can also specify the scheme using the **BOUNDARY_CONNECT_KUBE_SCHEME** environment variable. - -- `-style` `(string: "")` - How the CLI attempts to invoke a Kubernetes client. -This value also sets a suitable default for `-exec`, if you did not specify a value. -The default and currently-understood value is `kubectl`. -You can also specify how the CLI attempts to invoke a Kubernetes client using the `BOUNDARY_CONNECT_KUBE_STYLE` environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/connect/mongo.mdx b/website/content/docs/commands/connect/mongo.mdx deleted file mode 100644 index e29202b72..000000000 --- a/website/content/docs/commands/connect/mongo.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -layout: docs -page_title: connect mongo - Command -description: >- - The "connect mongo" command performs a target authorization or consumes an existing authorization token, and then launches a proxied MongoDB connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect mongo - -Command: `boundary connect mongo` - -The `connect mongo` command authorizes a session against a target and invokes a MongoDB client for the connection. -The command fills in the local address and port. - -@include 'cmd-connect-env-vars.mdx' - - -## Examples - -The following example shows how to connect to a target with the ID `ttcp_eTcMueUYv` using a MongoDB helper: - -```shell-session -$ boundary connect mongo -target-id=ttcp_eTcZMueUYv \ - -dbname=northwind \ - -username=superuser \ - -authentication-database=admin \ - -format=table -``` - -When prompted, you must enter the password for the user, "superuser": - - - -```plaintext -Enter password: -Current Mongosh Log ID: 64a1b2c3d4e5f6789012345 -Connecting to: mongodb://127.0.0.1:12345/northwind?authSource=admin -Using MongoDB: 7.0.0 -Using Mongosh: 2.0.0 - -northwind> show collections -orders -products -customers - -northwind> db.products.count() -77 - -northwind> -``` - - - -## Usage - - - -```shell-session -$ boundary connect mongo [options] [args] -``` - - - -@include 'cmd-connect-command-options.mdx' - -### MongoDB options: - -- `-dbname` `(string: "")` - The database name you want to pass through to the client. -You can also specify the database name using the **BOUNDARY_CONNECT_DBNAME** environment variable. - -- `-style` `(string: "mongosh")` - How the CLI attempts to invoke a MongoDB client. -This value also sets a suitable default for `-exec`, if you did not specify a value. -The default and currently-understood value is `mongosh`. -You can also specify how the CLI attempts to invoke a MongoDB client using the **BOUNDARY_CONNECT_MONGO_STYLE** environment variable. - -- `-username` `(string: "")` - The username you want to pass through to the client. -This value may be overridden by credentials sourced from a credential store. -You can also specify a username using the **BOUNDARY_CONNECT_USERNAME** environment variable. - -- `-authentication-database` `(string: "")` - The authentication database for MongoDB. -If omitted, mongosh defaults `authSource` to the database name (`-dbname`). If no database is specified, it defaults to `admin`. -You can also specify the authentication database using the **BOUNDARY_CONNECT_MONGO_AUTHENTICATION_DATABASE** environment variable. - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/connect/mysql.mdx b/website/content/docs/commands/connect/mysql.mdx deleted file mode 100644 index 0620f6505..000000000 --- a/website/content/docs/commands/connect/mysql.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -layout: docs -page_title: connect mysql - Command -description: >- - The "connect mysql" command performs a target authorization or consumes an existing authorization token, and then launches a proxied MySQL connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect mysql - -Command: `boundary connect mysql` - -The `connect mysql` command authorizes a session against a target and invokes a MySQL client for the connection. -The command fills in the local address and port. - -@include 'cmd-connect-env-vars.mdx' - - -## Examples - -The following example shows how to connect to a target with the ID `ttcp_eTcMueUYv` using a MySQL helper: - -```shell-session -$ boundary connect mysql -target-id=ttcp_eTcZMueUYv \ - -dbname=northwind \ - -username=superuser \ - -format=table -``` - -When prompted, you must enter the password for the user, "superuser": - - - -```plaintext -Enter password: -Welcome to the MySQL monitor. Commands end with ; or \g. -Your MySQL connection id is 8 -Server version: 8.0.30 MySQL Community Server - GPL - -Copyright (c) 2000, 2022, Oracle and/or its affiliates. - -Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. - -mysql> -``` - - - -## Usage - - - -```shell-session -$ boundary connect mysql [options] [args] -``` - - - -@include 'cmd-connect-command-options.mdx' - -### MySQL options: - -- `-dbname` `(string: "")` - The database name you want to pass through to the client. -You can also specify the database name using the **BOUNDARY_CONNECT_DBNAME** environment variable. - -- `-style` `(string: "")` - How the CLI attempts to invoke a MySQL client. -This value also sets a suitable default for `-exec`, if you did not specify a value. -The default and currently-understood value is `mysql`. -You can also specify how the CLI attempts to invoke a MySQL client using the **BOUNDARY_CONNECT_MYSQL_STYLE** environment variable. - -- `-username` `(string: "")` - The username you want to pass through to the client. -This value may be overridden by credentials sourced from a credential store. -You can also specfiy a username using the **BOUNDARY_CONNECT_USERNAME** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/connect/postgres.mdx b/website/content/docs/commands/connect/postgres.mdx deleted file mode 100644 index 4e7117f57..000000000 --- a/website/content/docs/commands/connect/postgres.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -layout: docs -page_title: connect postgres - Command -description: >- - The "connect postgres" command performs a target authorization or consumes an existing authorization token, and then launches a proxied PostgreSQL connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect postgres - -Command: `boundary connect postgres` - -The `connect postgres` command authorizes a session against a target and invokes a Postgres client for the connection. -The command fills in the local address and port. - -@include 'cmd-connect-env-vars.mdx' - - -## Examples - -The following example shows how to connect to a target with the ID `ttcp_eTcMueUYv` using a Postgres helper: - -```shell-session -$ boundary connect postgres -target-id=ttcp_eTcZMueUYv \ - -dbname=northwind \ - -username=superuser \ - -format=table -``` - -When prompted, you must enter the password for the user, "superuser": - - - -```plaintext -Password for user superuser: -psql (14.2, server 13.2 (Debian 13.2-1.pgdg100+1)) -Type "help" for help. - -postgres=# -``` - - - -## Usage - - - -```shell-session -$ boundary connect postgres [options] [args] -``` - - - -@include 'cmd-connect-command-options.mdx' - -### Postgres options: - -- `-dbname` `(string: "")` - The database name you want to pass through to the client. -You can also specify the database name using the **BOUNDARY_CONNECT_DBNAME** environment variable. - -- `-style` `(string: "")` - How the CLI attempts to invoke a Postgres client. -This value also sets a suitable default for `-exec`, if you did not specify a value. -The default and currently-understood value is `psql`. -You can also specify how the CLI attempts to invoke a Postgres client using the **BOUNDARY_CONNECT_POSTGRES_STYLE** environment variable. - -- `-username` `(string: "")` - The username you want to pass through to the client. -This value may be overridden by credentials sourced from a credential store. -You can also specfiy a username using the **BOUNDARY_CONNECT_USERNAME** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/connect/rdp.mdx b/website/content/docs/commands/connect/rdp.mdx deleted file mode 100644 index 646c8be23..000000000 --- a/website/content/docs/commands/connect/rdp.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -layout: docs -page_title: connect rdp - Command -description: >- - The "connect rdp" command command performs a target authorization or consumes an existing authorization token, and then launches a proxied RDP connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect rdp - -Command: `boundary connect rdp` - -The `connect rdp` command authorizes a session against a target and invokes an RDP client for the connection. -The command fills in the local address and port. - -@include 'cmd-connect-env-vars.mdx' - -## Examples - -The following example authorizes a session to a target with the ID `ttcp_1234567890` and invokes an RDP session with the built-in Windows RDP client, `mstsc`: - -```shell-session -$ boundary connect rdp \ - -target-id ttcp_1234567890 -``` - -The following example authorizes a session to a target with the ID `ttcp_123457890` and invokes a custom command for the RDP macOS client: - -```shell-session -$ boundary connect rdp \ - -target-id ttcp_1234567890 - -exec bash \ - -- -c "open rdp://full%20address=s={{boundary.addr}} && sleep 600" -``` - -## Usage - - - -```shell-session -$ boundary connect rdp [options] [args] -``` - - - -This command performs a target authorization or consumes an existing authorization token, and launches a proxied RDP connection. - -@include 'cmd-connect-command-options.mdx' - -### RDP options: - -- `-style` `(string: "")` - How the CLI attempts to invoke an RDP client. -This value also sets a suitable default for `-exec`, if you did not specify a value. -The currently-understood value is `mstsc`, which is the default on Windows and launches the Windows client. -It is also the default on Mac, and launches an rdp://URL. -You can also specify how the CLI attempts to invoke an RDP client using the **BOUNDARY_CONNECT_RDP_STYLE** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/connect/redis.mdx b/website/content/docs/commands/connect/redis.mdx deleted file mode 100644 index e65c303c5..000000000 --- a/website/content/docs/commands/connect/redis.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -layout: docs -page_title: connect redis - Command -description: >- - The "connect redis" command performs a target authorization or consumes an existing authorization token, and then launches a proxied redis (redis-cli) connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect redis - -Command: `boundary connect redis` -The `connect redis` command authorizes a session against a target and invokes a Redis client for the connection. -The command fills in the local address and port. - -@include 'cmd-connect-env-vars.mdx' - - -## Examples - -The following example shows how to connect to a target with the ID `ttcp_eTcZMueUYv` using a Redis helper: - -```shell-session -$ boundary connect redis -target-id=ttcp_eTcZMueUYv \ - -username=superuser -``` - -When prompted, you must enter the password for the user, "superuser": - - - - -```plaintext -Please input password: -127.0.0.1:60835> -``` - - - -## Usage - - - -```shell-session -$ boundary connect redis [options] [args] -``` - - - -@include 'cmd-connect-command-options.mdx' - -### Redis options: - -- `-style` `(string: "")` - How the CLI attempts to invoke a Redis client. -This value also sets a suitable default for `-exec`, if you did not specify a value. -The default and currently-understood value is `redis-cli`. -You can also specify how the CLI attempts to invoke a Redis client using the **BOUNDARY_CONNECT_REDIS_STYLE** environment variable. - -- `-username` `(string: "")` - The username you want to pass through to the client. -This value may be overridden by credentials sourced from a credential store. -You can also specify a username using the **BOUNDARY_CONNECT_USERNAME** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/connect/ssh.mdx b/website/content/docs/commands/connect/ssh.mdx deleted file mode 100644 index 30b9e00ad..000000000 --- a/website/content/docs/commands/connect/ssh.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: docs -page_title: connect ssh - Command -description: >- - The "connect ssh" command command performs a target authorization or consumes an existing authorization token, and then launches a proxied SSH connection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# connect ssh - -Command: `boundary connect ssh` - -The `connect ssh` command authorizes a session against a target and invokes an SSH client for the connection. -The command fills in the local address and port. -You can specify your SSH client of choice using the `-style` option. - -@include 'cmd-connect-env-vars.mdx' - -The SSH helper command sets the host key `Alias`. -When an `Alias` is set, SSH does not use `localhost:` for host key validation, but instead uses one of the following: - -- For connections to a target that has an attached host set, the SSH helper command sets the `HostID` as the alias. -- For connections directly to a host, the SSH helper command sets the `HostID` as the alias. -- For connections to a target that has an address field configured, the SSH helper command sets the `TargetID` as the alias. - -## Examples - -The following example authorizes a session to a target with the ID `ttcp_eTcZMueUYv` and invokes the default SSH client without any additional options: - - - -```shell-session -$ boundary connect ssh -target-id ttcp_eTcZMueUYv -``` - - - -The following example authorizes a session to a target with the ID `ttcp_eTcZMueUYv`, and pipes arguments directly to the invoked SSH binary. -Any SSH arguments after the double hyphen are sent directly to the binary: - - - -```shell-session -$ boundary connect ssh -target-id ttcp_eTcZMueUYv -- -A -``` - - - - - -```shell-session -$ boundary connect ssh -target-scope-name Helpdesk -target-name ubuntu-server -- -A -``` - - - - - -```shell-session -$ boundary connect ssh -target-id=ttcp_Gymo7Vcq7Y \ - -host-id=hst_FrdNPd9Zm9 -- -l ubuntu -i private_key.pem -``` - - - -## Usage - - - -```shell-session -$ boundary connect ssh [options] [args] -``` - - - -This command performs a target authorization or consumes an existing authorization token, and launches a proxied SSH connection. - -@include 'cmd-connect-command-options.mdx' - -### SSH options: - -- `style` `(string: "")` - How the CLI attempts to invoke an SSH - client. - This value also sets a suitable default for `-exec`, if you did not specify a value. - Currently understood values are `ssh` and `putty`. - The default is `ssh`. - You can also specify how the CLI attempts to invoke the SSH client using the **BOUNDARY_CONNECT_SSH_STYLE** environment variable. - -- `username` `(string: "")` - The username you want to pass through to the - client. - You can also specify a username using the **BOUNDARY_CONNECT_USERNAME** environment variable. - -- `remote-command` `(string: "")` - A command that you want to run on the remote host. -You can specify a complete command line, or you may include additional arguments. -If you include additional arguments, you must append them to the command and separate them using spaces. diff --git a/website/content/docs/commands/credential-libraries/create.mdx b/website/content/docs/commands/credential-libraries/create.mdx deleted file mode 100644 index df9b96050..000000000 --- a/website/content/docs/commands/credential-libraries/create.mdx +++ /dev/null @@ -1,202 +0,0 @@ ---- -layout: docs -page_title: credential-libraries create - Command -description: >- - The "credential-libraries create" command creates new credential library resources. You can create a generic Vault or Vault SSH certificate credential library. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-libraries create - -Command: `boundary credential-libraries create` - -The `credential-libraries create` command lets you create a credential library resource in Boundary. - -## Examples - -The following example creates a credential library for database credentials where Vault's database secrets engine provides dynamic credentials: - -```shell-session -$ boundary credential-libraries create vault-generic \ - -credential-store-id csvlt_5fvkRjCjou \ - -vault-path "database/creds/dba" \ - -name "northwind dba" -``` - -**Example output:** - - - -```plaintext -Credential Library information: - Created Time: Wed, 28 Sep 2022 08:50:32 MDT - Credential Store ID: csvlt_Xqa6V6QwfM - ID: clvlt_Ex17uiP7FO - Name: northwind dba - Type: vault - Updated Time: Wed, 28 Sep 2022 08:50:32 MDT - Version: 1 - - Scope: - ID: p_EZaXO0OZPX - Name: db-project - Parent Scope ID: o_R1QFYcO743 - Type: project - - Authorized Actions: - no-op - read - update - delete - - Attributes: - HTTP Method: GET - Path: database/creds/dba -``` - - - - -## Usage - - - -```shell-session -$ boundary credential-libraries create [type] [sub command] [options] [args] -``` - - - -### Command options - -- `-credential-store-id` `(string: "")` - The credential store resource to use - for the operation. You can also specify the credential store using the - **BOUNDARY_CREDENTIAL_STORE_ID** environment variable. -- `-description` `(string: "")` - A description of the credential library. -- `-name` `(string: "")` - The name of the credential library. - - -### Usages by type - -The available types are `vault-generic` and `vault-ssh-certificate`. - - - -A credential library type, `vault` is deprecated, so use `vault-generic` type instead. - - - - - - - -The `credential-libraries create vault-generic` command lets you create a generic Vault credential library. - -#### Example - -The following example creates a generic Vault credential library using a credential store with the ID `csvlt_1234567890`: - -```shell-session -$ boundary credential-libraries create vault-generic \ - -credential-store-id csvlt_1234567890 \ - -vault-path "database/creds/dba" -``` - -#### Usage - - - -```shell-session -$ boundary credential-libraries create vault-generic [options] [args] -``` - - - -#### Vault credential library options - -The following are specific Vault credential library options in addition to the command options: - -- `-credential-mapping-override` - An override for credential mapping. -- `-credential-type` `(string: "")` - The type of credential this library issues. -The default value is `Unspecified`. -- `-vault-http-method` `(string: "")` - The HTTP method the library should use when it communicates with Vault. -- `-vault-http-request-body` `(string: "")` - The HTTP request body the credential library uses to communicate with Vault. -This value can be the HTTP request body value itself, it can refer to a file on disk (`file://`) from which the value is read, or it can refer to an environment variable (`env://`) from which the value is read. -- `-vault-path` `(string: "")` - The path in Vault to request credentials from. - - - - - -The `credential-libraries create vault-ssh-certificate` command lets you create a Vault SSH certificate credential library. - -#### Example - -The following example creates a Vault SSH certificate credential library with the ID `csvlt_1234567890`: - -```shell-session -$ boundary credential-libraries create vault-ssh-certificate \ - -credential-store-id csvlt_1234567890 \ - -vault-path "/ssh/sign/role" \ - -username user -``` - -#### Usage - - - -```shell-session -$ boundary credential-libraries create vault-ssh-certificate [options] [args] -``` - - - -#### Vault SSH certificate credential library options - -The following are options are specific to the Vault SSH certificate credential library, in addition to the command options: - -- `-additional-valid-principal` - Any additional users or groups that you want to configure as valid principals. -By default, Boundary only passes the username to Vault to sign as a valid principal. -Use this option when you want to configure additional users or groups as valid principals that the certificate should be signed for in Vault. - - For more information, refer to OpenSSH's definition of [valid principals](https://github.com/openssh/openssh-portable/blob/5f93c4836527d9fda05de8944a1c7b4a205080c7/PROTOCOL.certkeys#L176-L181) and Vault's [SSH secrets engine](https://developer.hashicorp.com/vault/api-docs/secret/ssh#valid_principals) documentation. -- `-critical-option` - A key=value pair to add to the request's - critical-options map. - It can also be a key value only which sets a JSON null as the value. - If you provide a value, Boundary infers the type automatically. - You can use `-string-critical-option`, `-bool-critical-option`, or `-num-critical-option` to override the type. - You can specify values for this option multiple times. - This option supports sourcing values from files using `file://` and environment variables using `env://`. -- `-critical-options` `(string: "")` - A JSON map value to use as the entirety of the request's critical-options map. -Usually this value is sourced from a file using the `file://` syntax. -This value is exclusive with the other critical-option flags. -- `-extension` - A key=value pair to add to the request's extensions map. -It can also be a key value only which will set a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can use `-string-extension`, `-bool-extension`, or `-num-extension` to override the type. -You can specify values for this option multiple times. -This option supports sourcing values from files using `file://` and environment variables using `env://`. -- `-extensions` `(string: "")` - A JSON map value to use as the entirety of - the request's extensions map. - Usually this value is sourced from a file using the `file://` syntax. - This option is exclusive with the other extension flags. -- `-key-bits` `(string: "")` - The number of bits to use when the SSH private key is generated. -The value depends on the `key_type`. -If you use a `ed25519` key, you should not set a value or set the value to `0`. -If you use a `ecdsa` key, you should set the value to `256`, `384`, or `521`. -If you use an `rsa` key, you should set the value to `2048`, `3072`, or `4096`. -- `-key-id` `(string: "")` - Specifies the created certificate's key id. -- `-key-type` `(string: "")` - Specifies the key type for the generated ssh private key. -Supported values include `ed25519`, `ecdsa`, and `rsa`. -- `-ttl` `(string: "")` - The generated certificate's time-to-live. -- `-username` `(string: "")` - The username to use with the SSH certificate. -- `-vault-path` `(string: "")` - The path in Vault to request credentials from. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/credential-libraries/delete.mdx b/website/content/docs/commands/credential-libraries/delete.mdx deleted file mode 100644 index 53bd56d1d..000000000 --- a/website/content/docs/commands/credential-libraries/delete.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: docs -page_title: credential-libraries delete - Command -description: >- - The "credential-libraries delete" command deletes an existing credential library resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-libraries delete - -Command: `boundary credential-libraries delete` - -The `credential-libraries delete` command lets you delete an existing credential library resource. - -## Example - -The following example deletes a credential library with the ID `csvlt_5fvkRjCjou`: - -```shell-session -$ boundary credential-libraries delete -id csvlt_5fvkRjCjou -``` - -## Usage - - - -```shell-session -$ boundary credential-libraries delete [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the credential library to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/credential-libraries/index.mdx b/website/content/docs/commands/credential-libraries/index.mdx deleted file mode 100644 index 410858084..000000000 --- a/website/content/docs/commands/credential-libraries/index.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -layout: docs -page_title: credential-libraries - Command -description: >- - The "credential-libraries" command performs operations on credential library resources. Credential libraries provide credentials of the same type and access level. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-libraries - -Command: `boundary credential-libraries` - -The `credential-libraries` command lets you perform operations on Boundary credential library resources. -A credential library provides credentials for sessions. -All credentials returned by a library must be equivalent from an access control perspective. - -A credential library is responsible for managing the lifecycle of the credentials it returns. -For dynamic secrets, this includes creation, renewal, and revocation. -For rotating credentials, this includes check-out, check-in, and rotation of secrets. -The system retrieves credentials from a library for a session and notifies the library when the session has been terminated. -A credential library belongs to a single credential store. - -## Examples - -The following example retrieves information for a credential library with the ID, `clvlt_QYnQPAjA24`: - -```shell-session -$ boundary credential-libraries read -id clvlt_QYnQPAjA24 -``` - -**Example output:** - - - -```plaintext -Credential Library information: - Created Time: Fri, 18 Aug 2023 16:22:29 PDT - Credential Store ID: csvlt_5fvkRjCjou - ID: clvlt_QYnQPAjA24 - Name: northwind dba - Type: vault-generic - Updated Time: Fri, 18 Aug 2023 16:22:29 PDT - Version: 1 - - Scope: - ID: p_tnqESc86qE - Name: db-project - Parent Scope ID: o_4VUR6ZATqW - Type: project - - Authorized Actions: - no-op - read - update - delete - - Attributes: - HTTP Method: GET - Path: database/creds/dba -``` - - - -## Usage - - - -```shell-session -Usage: boundary credential-libraries [sub command] [options] [args] - - # ... - -Subcommands: - create Create a credential library - delete Delete a credential library - list List a credential library - read Read a credential library - update Update a credential library -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/credential-libraries/create) -- [delete](/boundary/docs/commands/credential-libraries/delete) -- [list](/boundary/docs/commands/credential-libraries/list) -- [read](/boundary/docs/commands/credential-libraries/read) -- [update](/boundary/docs/commands/credential-libraries/update) diff --git a/website/content/docs/commands/credential-libraries/list.mdx b/website/content/docs/commands/credential-libraries/list.mdx deleted file mode 100644 index ad14b9ee9..000000000 --- a/website/content/docs/commands/credential-libraries/list.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -layout: docs -page_title: credential-libraries list - Command -description: >- - The "credential-libraries list" command lists the available credential library resources within an enclosing scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-libraries list - -Command: `boundary credential-libraries list` - -The `credential-libraries list` command lists credential libraries within an enclosing scope or resource. - -## Examples - -The following example lists all credential libraries for a credential store with the ID `clvlt_QYnQPAjA24`: - -```shell-session -$ boundary credential-libraries list \ - -credential-store-id -``` - -**Example output:** - - - -```plaintext -Credential Library information: - ID: clvlt_QYnQPAjA24 - Version: 1 - Type: vault-generic - Name: northwind dba - Authorized Actions: - no-op - read - update - delete -``` - - - -## Usage - - - -```shell-session -$ boundary credential-libraries list [options] [args] -``` - - - - -### Command options - -- `-credential-store-id` `(string: "")` - The credential store resource to list credential libraries for. -You can also specify the credential store using the **BOUNDARY_CREDENTIAL_STORE_ID** environment variable. -- `-filter` `(string: "")` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/credential-libraries/read.mdx b/website/content/docs/commands/credential-libraries/read.mdx deleted file mode 100644 index cdaabe174..000000000 --- a/website/content/docs/commands/credential-libraries/read.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: docs -page_title: credential-libraries read - Command -description: >- - The "credential-libraries read" command retrieves the details of a credential library. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-libraries read - -Command: `boundary credential-libraries read` - -The `credential-libraries read` command reads the credential library information for a specific credential library ID. - - -## Examples - -The following example retrieves credential library information for a credential library with the ID `clvlt_QYnQPAjA24`: - -```shell-session -$ boundary credential-libraries read -id clvlt_QYnQPAjA24 -``` - -**Example output:** - - - -```plaintext -Credential Library information: - Created Time: Fri, 18 Aug 2023 16:22:29 PDT - Credential Store ID: csvlt_5fvkRjCjou - ID: clvlt_QYnQPAjA24 - Name: northwind dba - Type: vault-generic - Updated Time: Fri, 18 Aug 2023 16:22:29 PDT - Version: 1 - - Scope: - ID: p_tnqESc86qE - Name: db-project - Parent Scope ID: o_4VUR6ZATqW - Type: project - - Authorized Actions: - no-op - read - update - delete - - Attributes: - HTTP Method: GET - Path: database/creds/dba -``` - - - -## Usage - - - -```shell-session -$ boundary credential-libraries read [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the credential library from which to read information. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/credential-libraries/update.mdx b/website/content/docs/commands/credential-libraries/update.mdx deleted file mode 100644 index 6766da9b1..000000000 --- a/website/content/docs/commands/credential-libraries/update.mdx +++ /dev/null @@ -1,200 +0,0 @@ ---- -layout: doc -page_title: credential-libraries update - Command -description: >- - The "credential-libraries update" command updates an existing credential library resource with new information. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-libraries update - -Command: `boundary credential-libraries update` - -The `credential-libraries update` command lets you update Boundary credential library resources. - -## Examples - -The following example updates an existing Vault credential library with the ID `csvlt_5fvkRjCjou` to point to a new Vault secrets engine path: - -```shell-session -$ boundary credential-libraries update vault-generic \ - -id csvlt_5fvkRjCjou \ - -vault-path "database/creds/db-mysql" -``` - -**Example output:** - - - -```plaintext -Credential Library information: - Created Time: Fri, 18 Aug 2023 16:22:29 PDT - Credential Store ID: csvlt_5fvkRjCjou - ID: clvlt_QYnQPAjA24 - Name: northwind dba - Type: vault-generic - Updated Time: Fri, 18 Aug 2023 20:04:27 PDT - Version: 2 - - Scope: - ID: p_tnqESc86qE - Name: db-project - Parent Scope ID: o_4VUR6ZATqW - Type: project - - Authorized Actions: - no-op - read - update - delete - - Attributes: - HTTP Method: GET - Path: database/creds/db-mysql -``` - - - - -## Usage - - - -```shell-session -$ boundary credential-libraries update vault [options] [args] -``` - - - -### Command options - -- `-description` `(string: "")` - A description to set on the credential library. -- `-id` `(string: "")` - The ID of the credential library to update. -- `-name` `(string: "")` - A name to set on the credential library. -- `-version` `(int: 0)` - The version of the credential library against which to perform the update operation. -If you don't specify a version, the command performs a check-and-set automatically. - -#### Usages by type - -The available types are `vault-generic` and `vault-ssh-certificate`. - - - -A credential library type, `vault` is deprecated, so use `vault-generic` type -instead. - - - - - - -The `credential-libraries update vault-generic` command lets you update a generic Vault credential library. - -#### Example - -The following example updates a generic Vault credential library with the ID `clvlt_1234567890` to add the name `devops` and the description `For DevOps usage`: - -```shell-session -$ boundary credential-libraries update vault-generic \ - -id clvlt_1234567890 \ - -name devops \ - -description "For DevOps usage" -``` - -#### Usage - - - -```shell-session -$ boundary credential-libraries create vault-generic [options] [args] -``` - - - -#### Vault credential library options - -The following are specific Vault credential library options in addition to the command options: - -- `-credential-mapping-override` - An override for credential mapping. -- `-vault-http-method` `(string: "")` - The HTTP method the library should use when it communicates with Vault. -- `-vault-http-request-body` `(strinboundary credential-libraries update vault-ssh-certificate -id clvsclt_1234567890 -name devops -description "For DevOps usage": "")` - The HTTP request body the credential library uses to communicate with Vault. -This value can be the HTTP request body itself, it can refer to a file on disk (`file://`) from which the value is read, or it can refer to an environment variable (`env://`) from which the value is read. -- `-vault-path` `(string: "")` - The path in Vault to request credentials from. - - - - - -The `credential-libraries update vault-ssh-certificate` command lets you update a Vault SSH certificate credential library. - -#### Example - -The following example updates a Vault SSH certificate credential library with the ID `clvsclt_1234567890` to add the name `devops` and the description `For DevOps usage`: - -```shell-session -$ boundary credential-libraries update vault-ssh-certificate \ - -id clvsclt_1234567890 \ - -name devops \ - -description "For DevOps usage" -``` - -#### Usage - - - -```shell-session -$ boundary credential-libraries update vault-ssh-certificate [options] [args] -``` - - - -#### Vault SSH certificate credential library options - -The following are options specific to the Vault SSH certificate credential library, in addition to the command options: - -- `-additional-valid-principal` - Any additional users or groups that you want to configure as valid principals. -By default, Boundary only passes the username to Vault as a valid principal. -Use this option when you want to configure additional users or groups as valid principals that the certificate should be signed for in Vault. - - For more information, refer to OpenSSH's definition of [valid principals](https://github.com/openssh/openssh-portable/blob/5f93c4836527d9fda05de8944a1c7b4a205080c7/PROTOCOL.certkeys#L176-L181) and Vault's [SSH secrets engine](https://developer.hashicorp.com/vault/api-docs/secret/ssh#valid_principals) documentation. -- `-critical-option` - A key=value pair to add to the request's - critical-options map. - It can also be a key value only which sets a JSON null as the value. - If you provide a value, Boundary infers the type automatically. - You can use `-string-critical-option`, `-bool-critical-option`, or `-num-critical-option` to override the type. - You can specify values for this option multiple times. - This option supports sourcing values from files using `file://` and environment variables using `env://`. -- `-critical-options` `(string: "")` A JSON map value to use as the entirety of the request's critical-options map. -Usually this value is sourced from a file using the `file://` syntax. -This value is exclusive with the other critical-option flags. -- `-extension` - A key=value pair to add to the request's extensions map. -It can also be a key value only which will set a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can use `-string-extension`, `-bool-extension`, or `-num-extension` to override the type. -You can specify values for this option multiple times. -This option supports sourcing values from files using `file://` and environment variables using `env://`. -- `-extensions` `(string: "")` - A JSON map value to use as the entirety of - the request's extensions map. - Usually this value is sourced from a file using the `file://` syntax. - This option is exclusive with the other extension flags. -- `-key-bits` `(string: "")` - The number of bits to use when the SSH private key is generated. -The value depends on the `key_type`. -If you use a `ed25519` key, you should not set a value or set the value to `0`. -If you use a `ecdsa` key, you should set the value to `256`, `384`, or `521`. -If you use an `rsa` key, you should set the value to `2048`, `3072`, or `4096`. -- `-key-id` `(string: "")` - Specifies the certificate's key id. -- `-key-type` `(string: "")` - Specifies the key type for the ssh private key. -Supported values include `ed25519`, `ecdsa`, and `rsa`. -- `-ttl` `(string: "")` - The generated certificate's time-to-live. -- `-username` `(string: "")` - The username to use with the SSH certificate. -- `-vault-path` `(string: "")` - The path in Vault to request credentials from. - - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/credential-stores/create.mdx b/website/content/docs/commands/credential-stores/create.mdx deleted file mode 100644 index 0c6748072..000000000 --- a/website/content/docs/commands/credential-stores/create.mdx +++ /dev/null @@ -1,161 +0,0 @@ ---- -layout: docs -page_title: credential-stores create - Command -description: >- - The "credential-stores create" command creates new credential store resources. You can create static or Vault credential stores to manage credentials. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-stores create - -Command: `boundary credential-stores create` - -The `credential-stores create` command lets you create a Boundary credential store resource. - -## Examples - -The following example creates a credential store resource in a project scope with the ID `p_tnqESc86qE`: - -```shell-session -$ boundary credential-stores create vault -scope-id p_tnqESc86qE \ - -vault-address $VAULT_ADDR \ - -vault-token $VAULT_TOKEN \ - -vault-namespace $VAULT_NAMESPACE -``` - -**Example output:** - - - -```plaintext -Credential Store information: - Created Time: Thu, 28 Jul 2022 15:08:12 MDT - ID: csvlt_ytzGHsfp3r - Type: vault - Updated Time: Thu, 28 Jul 2022 15:08:12 MDT - Version: 1 - - Scope: - ID: p_jd7lspegXk - Name: ssh-project - Parent Scope ID: o_SN2K0DAGpi - Type: project - - Authorized Actions: - no-op - read - update - delete - - Authorized Actions on Credential Store's Collections: - credential-libraries: - create - list - - Attributes: - Address: https://vault-cluster-boundary.vault.11eb3a47-8920-4714-ba99-0242ac11000e.aws.hashicorp.cloud:8200 - Token HMAC: NZJWT74Jyq09gLQfP4RiK5eDWfY7NWXYHoKL4nKQFDY -``` - - - - -## Usage - - - -```shell-session -$ boundary credential-stores create [type] [sub command] [options] [args] -``` - - - -### Command options - -- `-description` `(string: "")` - The description to set on the credential store. -- `-name` `(string: "")` - The name to set on the credential store. -- `-scope-id` `(string: "")` - The scope in which to make the request. -The default scope is `global`. -You can also indicate the scope using the **BOUNDARY_SCOPE_ID** environment variable. - -### Usages by type - -The available types are `static` and `vault`. - - - - -The `credential-stores create static` command lets you create a static-type credential store. - -#### Example - -The following example creates a static credential score in a scope with the ID `p_1234567890`: - -```shell-session -$ boundary credential-stores create static -scope-id p_1234567890 -``` - -#### Usage - - - -```shell-session -$ boundary credential-stores create static [options] [args] -``` - - - - - - - -The `credential-stores create vault` command lets you create a Vault credential store. - -#### Example - -The following example creates a Vault credential store: - -```shell-session -$ boundary credential-stores create vault \ - -vault-address "http://127.0.0.1:8200" \ - -vault-token "" -``` - -#### Usage - - - -```shell-session -$ boundary credential-stores create vault [options] [args] -``` - - - -#### Vault credential stores options - -The following options are specific to Vault credential stores in addition to the command options: - -- `-vault-address` `(string: "")` - The address of the Vault server. -The address should be a complete URL such as https://127.0.0.1:8200. -- `-vault-ca-cert` `(string: "")` - The CA certificate to use when you connect to Vault. -This value can be the CA certificate itself, or it can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-vault-client-certificate` `(string: "")` - The client certificate to use when Boundary connects to Vault for this credential store. -This value can be the client certificate itself, or it can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-vault-client-certificate-key` `(string: "")` - The private key the client certificate should use when Boundary connects to Vault for this store. -This value can be the private key itself, or it can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-vault-namespace` `(string: "")` - The Vault namespace the credential store should use. -- `-vault-tls-server-name` `(string: "")` - The name to use as the SNI host when you connect using TLS. -- `-vault-tls-skip-verify` - If set, skips TLS verification. -The default value is `false`. -- `-vault-token` `(string: "")` - The Vault token to use when Boundary connects to Vault for this credential store. -- `-worker-filter` `(string: "")` - A Boolean expression to filter which workers can process Vault commands for this credential store. - - - - - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/credential-stores/delete.mdx b/website/content/docs/commands/credential-stores/delete.mdx deleted file mode 100644 index 246974ea1..000000000 --- a/website/content/docs/commands/credential-stores/delete.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: credential-stores delete - Command -description: >- - The "credential-stores delete" command deletes an existing credential store resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-stores delete - -Command: `boundary credential-stores delete` - -The `credential-stores delete` command deletes a credential store given its ID. - -## Examples - -The following example deletes a credential store with the ID `csvlt_5fvkRjCjou`: - -```shell-session -$ boundary credential-stores delete -id csvlt_5fvkRjCjou -The delete operation completed successfully. -``` - -## Usage - - - -```shell-session -$ boundary credential-stores delete [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the credential store to delete. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/credential-stores/index.mdx b/website/content/docs/commands/credential-stores/index.mdx deleted file mode 100644 index 5895f0d4e..000000000 --- a/website/content/docs/commands/credential-stores/index.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -layout: docs -page_title: credential-stores - Command -description: >- - The "credential-stores" command performs operations on credential store resources. Credential stores can manage credentials of differing types and access levels. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-stores - -Command: `boundary credential-stores` - -The `credential-stores` command lets you manage Boundary credential store resources. - -A credential store is a resource that can retrieve, store, and potentially generate credentials of differing types and differing access levels. -They belong to projects and support the principle of least privilege by limiting the credentials that can be accessed to the minimum necessary for the project. -A credential store can also contain credential libraries. - -## Examples - -The following example lists all credential stores for a scope with the ID `p_tnqESc86qE`: - -```shell-session -$ boundary credential-stores list -scope-id p_tnqESc86qE -``` - -**Example output:** - - - -```plaintext -Credential Store information: - ID: csvlt_5fvkRjCjou - Version: 1 - Type: vault - Authorized Actions: - no-op - read - update - delete -``` - - - -## Usage - - - -```shell-session -Usage: boundary credential-stores [sub command] [options] [args] - - # ... - -Subcommands: - create Create a credential store - delete Delete a credential store - list List a credential store - read Read a credential store - update Update a credential store -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/credential-stores/create) -- [delete](/boundary/docs/commands/credential-stores/delete) -- [list](/boundary/docs/commands/credential-stores/list) -- [read](/boundary/docs/commands/credential-stores/read) -- [update](/boundary/docs/commands/credential-stores/update) diff --git a/website/content/docs/commands/credential-stores/list.mdx b/website/content/docs/commands/credential-stores/list.mdx deleted file mode 100644 index f8f21452d..000000000 --- a/website/content/docs/commands/credential-stores/list.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -layout: docs -page_title: credential-stores list - Command -description: >- - The "credential-stores list" command lists the available credential store resources within an enclosing scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-stores list - -Command: `boundary credential-stores list` - -The `credential-stores list` command lists any credential stores within an enclosing scope or resource. - -## Examples - -The following example lists all credential stores for a scope with the ID `p_tnqESc86qE`: - -```shell-session -$ boundary credential-stores list -scope-id p_tnqESc86qE -``` - -**Example output:** - - - -```plaintext -Credential Store information: - ID: csvlt_5fvkRjCjou - Version: 1 - Type: vault - Authorized Actions: - no-op - read - update - delete -``` - - - -## Usage - - - -```shell-session -$ boundary credential-stores list [options] [args] -``` - - - - -### Command options - -- `-filter` `(string: "")` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-recursive` - If set, the list operation is applied recursively into child scopes, if supported by the type. -The default value is `false`. -- `-scope-id ``(string: "")` - The scope in which to make the request. -The default value is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/credential-stores/read.mdx b/website/content/docs/commands/credential-stores/read.mdx deleted file mode 100644 index bf9ea7b14..000000000 --- a/website/content/docs/commands/credential-stores/read.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: docs -page_title: credential-stores read - Command -description: >- - The "credential-stores read" command retrieves the details of a credential store resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-stores read - -Command: `boundary credential-stores read` - -The `credential-stores read` command reads credential store information for a credential store with a specific ID. - -## Examples - -The following example retrieves credential store information for a credential store with the ID `csvlt_5fvkRjCjou`: - -```shell-session -$ boundary credential-stores read -id csvlt_5fvkRjCjou -``` - -**Example output:** - - - -```plaintext -Credential Store information: - Created Time: Fri, 18 Aug 2023 16:22:02 PDT - ID: csvlt_5fvkRjCjou - Type: vault - Updated Time: Fri, 18 Aug 2023 16:22:02 PDT - Version: 1 - - Scope: - ID: p_tnqESc86qE - Name: db-project - Parent Scope ID: o_4VUR6ZATqW - Type: project - - Authorized Actions: - no-op - read - update - delete - - Authorized Actions on Credential Store's Collections: - credential-libraries: - create - list - - Attributes: - Address: http://127.0.0.1:8200 - Token Status: expired - Worker Filter: "worker" in "/tags/type" -``` - - - -## Usage - - - -```shell-session -$ boundary credential-stores read [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the credential store for which to read information. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/credential-stores/update.mdx b/website/content/docs/commands/credential-stores/update.mdx deleted file mode 100644 index b9bc520f3..000000000 --- a/website/content/docs/commands/credential-stores/update.mdx +++ /dev/null @@ -1,164 +0,0 @@ ---- -layout: doc -page_title: credential-stores update - Command -description: >- - The "credential-stores update" command updates an existing credential store resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credential-stores update - -Command: `boundary credential-stores update` - -The `credential-stores update` command lets you update Boundary credential store resources. - -## Examples - -The following example updates an existing Vault credential store with the ID `csvlt_5fvkRjCjou` to add the description `For DevOps usage`, and the Vault namespace `devops`: - -```shell-session -$ boundary credential-stores update vault -id csvlt_5fvkRjCjou \ - -description "For DevOps usage" \ - -vault-namespace "devops" -``` - -**Example output:** - - - -```plaintext -Credential Store information: - Created Time: Fri, 18 Aug 2023 16:22:02 PDT - Description: For DevOps usage - ID: csvlt_5fvkRjCjou - Type: vault - Updated Time: Sun, 20 Aug 2023 22:21:25 PDT - Version: 2 - - Scope: - ID: p_tnqESc86qE - Name: db-project - Parent Scope ID: o_4VUR6ZATqW - Type: project - - Authorized Actions: - no-op - read - update - delete - - Authorized Actions on Credential Store's Collections: - credential-libraries: - create - list - - Attributes: - Address: http://127.0.0.1:8200 - Namespace: devops - Token Status: current - Worker Filter: "worker" in "/tags/type" -``` - - - - -## Usage - - - -```shell-session -$ boundary credential-stores update vault [options] [args] -``` - - - -### Command options - -- `-description` `(string: "")` - The description to set on the credential store. -- `-id` `(string: "")` - The ID of the credential store to update. -- `-name` `(string: "")` - The name to set on the credential store. -- `-version` `(int: 0)` - The version of the credential store against which to perform an update operation. -If you do not specify a version, the command performs a check-and-set automatically. - -#### Usages by type - -The available types are `static` and `vault`. - - - - -The `credential-stores update static` command lets you update information for a static credential store. - -#### Example - -The following example updates a static credential store with the name `devops` and the description `For DevOps usage`: - -```shell-session -$ boundary credential-stores update static \ - -name devops \ - -description "For DevOps usage" -``` - -#### Usage - - - -```shell-session -$ boundary credential-stores update static [options] [args] -``` - - - - - - -The `credential-stores update vault` command lets you update a Vault credential store. - -#### Example - -The following example updates a Vault credential store with the ID `csvlt_1234567890` to add the name `devops` and the description `For DevOps usage`: - -```shell-session -$ boundary credential-stores update vault \ - -id csvlt_1234567890 \ - -name devops \ - -description "For DevOps usage" -``` - -#### Usage - - - -```shell-session -$ boundary credential-stores update vault [options] [args] -``` - - - -#### Vault credential store options - -The following options are specific to Vault credential stores in addition to the command options: - -- `-vault-address` `(string: "")` - The address of the Vault server. -The address should be a complete URL such as https://127.0.0.1:8200. -- `-vault-ca-cert` `(string: "")` - The CA certificate to use when you connect to Vault. -This value can be the CA certificate itself, or it can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-vault-client-certificate` `(string: "")` - The client certificate to use when Boundary connects to Vault for this credential store. -This value can be the client certificate itself, or it can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-vault-client-certificate-key` `(string: "")` - The private key the client certificate should use when Boundary connects to Vault for this store. -This value can be the private key itself, or it can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-vault-namespace` `(string: "")` - The Vault namespace the credential store should use. -- `-vault-tls-server-name` `(string: "")` - The name to use as the SNI host when you connect using TLS. -- `-vault-tls-skip-verify` - If set, skips TLS verification. -The default value is `false`. -- `-vault-token` `(string: "")` - The Vault token to use when Boundary connects to Vault for this credential store. -- `-worker-filter` `(string: "")` - A Boolean expression to filter which workers can process Vault commands for this credential store. - - - - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/credentials/create.mdx b/website/content/docs/commands/credentials/create.mdx deleted file mode 100644 index d915e0f63..000000000 --- a/website/content/docs/commands/credentials/create.mdx +++ /dev/null @@ -1,252 +0,0 @@ ---- -layout: docs -page_title: credentials create - Command -description: >- - The "credentials create" command creates new credential resources. Available types are json, ssh-private-key, username-password, and username-password-domain. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credentials create - -Command: `boundary credentials create` - -The `credentials create` command lets you create Boundary credential resources. - -## Examples - -The following example defines a new username password credential within a static credential store with the ID `credup_J15mtU4qmy`: - -```shell-session -$ boundary credentials create username-password \ - -name ssh-user \ - -credential-store-id credup_J15mtU4qmy\ - -username ssh-user \ - -password env://SSH_USER_PASS -``` - -**Example output:** - - - -```plaintext -Credential information: - Created Time: Tue, 22 Aug 2023 15:56:07 PDT - Credential Store ID: csst_5GGWwRngd7 - ID: credup_J15mtU4qmy - Name: ssh-user - Type: username_password - Updated Time: Tue, 22 Aug 2023 15:56:07 PDT - Version: 1 - - Scope: - ID: p_1zMlAwGHtH - Name: quick-start-project - Parent Scope ID: o_R0wbo0H6Zl - Type: project - - Authorized Actions: - no-op - read - update - delete - - Attributes: - Password HMAC: bXhHJHgaGz6fpolEpQPd0azcICSgmbVuSLfyhJhmqJY - Username: ssh-user -``` - - - - -## Usage - - - -```shell-session -$ boundary credentials create [type] [sub command] [options] [args] -``` - - - -### Command options - -- `-credential-store-id` `(string: "")` - The credential-store resource in which to create the credential. -You can also specify the credential store using the **BOUNDARY_CREDENTIAL_STORE_ID** environment variable. -- `-description` `(string: "")` - A description to set on the credential. -- `-name` `(string: "")` - A name to set on the credential. - -#### Usages by type - -The available types are `json`, `ssh-private-key`, `username-password`, and `username-password-domain`. - - - - -The `credentials create json` command lets you create a JSON type credential. - -#### Example - -The following example creates a JSON credential in a credential store with the ID `csst_1234567890`: - -```shell-session -$ boundary credentials create json \ - -credential-store-id csst_1234567890 \ - -object file:///home/user/secret -``` -#### Usage - - - -```shell-session -$ boundary credentials create json [options] [args] -``` - - - -#### JSON object credential options - -The following options are specific to JSON credentials in addition to the command options: - -- `-bool-kv` `(map: {})` – A key=value Boolean value to add to the request's object map. -You can specify this option multiple times. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-kv` `(map: {})` – A key=value pair to add to the request's object map. -This option can also be a key value only which will set a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -Use `-string-kv`,`-bool-kv`, or `-num-kv` to override the type. -You can specify this option multiple times. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-num-kv` `(map: {})` – A key=value numeric value to add to the request's object map. -You can specify this option multiple times. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-object` `(string: "")` - A JSON map value to use as the entirety of the request's object map. -Usually this is sourced from a file using `file://` syntax. -This option is exclusive with the other kv flags. -- `-string-kv` `(map: {})` – A key=value string value to add to the request's object map. -You can specify this option multiple times. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. - - - - -The `credentials create ssh-private-key` command lets you create an SSH private key credential type. - -#### Example - -The following example creates an SSH private key credential in a credential store with the ID `csvlt_1234567890`: - -```shell-session -$ boundary credentials create ssh-private-key \ - -credential-store-id csvlt_1234567890 \ - -username user \ - -private-key file:///home/user/.ssh/id_ed25519 -``` - -#### Usage - - - -```shell-session -$ boundary credentials create ssh-private-key [options] [args] -``` - - - -#### SSH private key credential options - -The following options are specific to SSH private key credentials in addition to the command options: - -- `-private-key` `(string: "")` - The SSH private key associated with the - credential. - This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-private-key-passphrase` `(string: "")` - The passphrase associated with the - SSH private key. - Boundary ingores this value if the private key does not require a passphrase or if you do not supply a private key. - This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. - If you leave this option empty, and the key requires a passphrase, you can enter it manually. -- `-username` `(string: "")` - The username associated with the credential. - - - - -The `credentials create username-password` command lets you create a username password type credential. - -#### Example - -The following example creates a username password credential in a credential store with the ID `csvlt_1234567890`: - -```shell-session -$ boundary credentials create username-password \ - -credential-store-id csvlt_1234567890 \ - -username user -password pass -``` - -#### Usage - - - -```shell-session -$ boundary credentials create username-password -credential-store-id [options] [args] -``` - - - - -#### Username password credential options - -The following options are specific to username password credentials in addition to the command options: - -- `-password` `(string: "")` - The password associated with the credential. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-username` `(string: "")` - The username associated with the credential. - - - - -The `credentials create username-password-domain` command lets you create a username password domain credential type for Active Directory authentication. - -Username password domain credentials are primarily used with RDP targets for credential injection. - -#### Example - -The following example creates a username password domain credential in a credential store with the ID `csst_1234567890`: - -```shell-session -boundary credentials create username-password-domain \ - -credential-store-id csst_1234567890 \ - -username administrator \ - -password env://ADMIN_PASSWORD \ - -domain company.com -``` - -#### Usage - - - -```shell-session -boundary credentials create username-password-domain [options] [args] -``` - - - -#### Username password domain credential options - -The following options are specific to username password domain credentials in addition to the command options: - -- `domain` `(string: "")` - The Active Directory domain name. If you include the domain in the `username` field, Boundary automatically fills in the domain information. - - For example, if you enter `admin@mydomain` or `mydomain\admin` in the `username` field, Boundary automatically completes the `domain` field with `mydomain`. - -- `password` `(string: "")` - The password associated with the credential. This value can be a reference to a file on disk (file://) or an environment variable (env://) from which Boundary reads the value. - -- `username` `(string: "")` - The username associated with the credential. This value can include domain information in `username@domain` or `domain\username` format. - - - - - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/credentials/delete.mdx b/website/content/docs/commands/credentials/delete.mdx deleted file mode 100644 index c83199c84..000000000 --- a/website/content/docs/commands/credentials/delete.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: docs -page_title: credentials delete - Command -description: >- - The "credentials delete" command deletes an existing credential resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credentials delete - -Command: `boundary credentials delete` - -The `credentials delete` command lets you delete a credential given its ID. - -## Examples - -The following example deletes a credential with the ID `credup_6zHHwQWvUS`: - -```shell-session -$ boundary credentials delete -id credup_6zHHwQWvUS -The delete operation completed successfully. -``` - -## Usage - - - -```shell-session -$ boundary credentials delete [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the credential to delete. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/credentials/index.mdx b/website/content/docs/commands/credentials/index.mdx deleted file mode 100644 index 67e28ba0a..000000000 --- a/website/content/docs/commands/credentials/index.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -layout: docs -page_title: credentials - Command -description: >- - The "credentials" command performs operations on Boundary credential resources. Credentials contain secrets that bind an identity to a set of permissions. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credentials - -Command: `boundary credentials` - -The `credentials` command lets you create and manage Boundary credential resources in Boundary's static credential store. - - - -The `credentials` command does not support viewing, creating, or managing credentials that reside in the Vault credential store. - - - -A credential is a data structure containing one or more secrets that bind an identity to a set of permissions or capabilities on a host for a session. - -## Examples - -The following example retrieves information about a credential with the ID `credup_J15mtU4qmy`: - -```shell-session -$ boundary credentials read -id credup_J15mtU4qmy -``` - -**Example output:** - - - -```plaintext -Credential information: - Created Time: Tue, 22 Aug 2023 15:56:07 PDT - Credential Store ID: csst_5GGWwRngd7 - ID: credup_J15mtU4qmy - Name: ssh-user - Type: username_password - Updated Time: Tue, 22 Aug 2023 15:56:07 PDT - Version: 1 - - Scope: - ID: p_1zMlAwGHtH - Name: quick-start-project - Parent Scope ID: o_R0wbo0H6Zl - Type: project - - Authorized Actions: - no-op - read - update - delete - - Attributes: - Password HMAC: bXhHJHgaGz6fpolEpQPd0azcICSgmbVuSLfyhJhmqJY - Username: ssh-user -``` - - - -## Usage - - - -```shell-session -Usage: boundary credentials [sub command] [options] [args] - - # ... - -Subcommands: - create Create a credential - delete Delete a credential - list List a credential - read Read a credential - update Update a credential -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/credentials/create) -- [delete](/boundary/docs/commands/credentials/delete) -- [list](/boundary/docs/commands/credentials/list) -- [read](/boundary/docs/commands/credentials/read) -- [update](/boundary/docs/commands/credentials/update) diff --git a/website/content/docs/commands/credentials/list.mdx b/website/content/docs/commands/credentials/list.mdx deleted file mode 100644 index 53bf962e9..000000000 --- a/website/content/docs/commands/credentials/list.mdx +++ /dev/null @@ -1,92 +0,0 @@ ---- -layout: docs -page_title: credentials list - Command -description: >- - The "credentials list" command lists the available credential resources within an enclosing scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credentials list - -Command: `boundary credentials list` - -The `credentials list` command lists credentials within an enclosing scope or resource. - -## Examples - -The following example lists all credentials for a credential store with the ID `csst_5GGWwRngd7`: - -```shell-session -$ credentials list -credential-store-id csst_5GGWwRngd7 -``` - -**Example output:** - - - -```plaintext -Credential information: - ID: credup_29IUJANN59 - Version: 1 - Type: username_password - Name: tester - Authorized Actions: - no-op - read - update - delete - - ID: credup_6zHHwQWvUS - Version: 1 - Type: username_password - Name: support-eng - Authorized Actions: - no-op - read - update - delete - - ID: credup_J15mtU4qmy - Version: 1 - Type: username_password - Name: ssh-user - Authorized Actions: - no-op - read - update - delete -``` - - - -## Usage - - - -```shell-session -$ boundary credentials list [options] [args] -``` - - - - -### Command options - -- `-credential-store-id` `(string: "")` - The credential store resource that contains the credentials you want to list. -You can also specify the credential store using the **BOUNDARY_CREDENTIAL_STORE_ID** environment variable. -- `-filter` `(string: "")` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/credentials/read.mdx b/website/content/docs/commands/credentials/read.mdx deleted file mode 100644 index 00127757e..000000000 --- a/website/content/docs/commands/credentials/read.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -layout: docs -page_title: credentials read - Command -description: >- - The "credentials read" command retrieves the details of an existing credential resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credentials read - -Command: `boundary credentials read` - -The `credentials read` command retrieves information about a credential with a specified ID. - -## Examples - -The following example retrieves credential information for a credential with the ID `credup_29IUJANN59`: - -```shell-session -$ boundary credentials read -id credup_29IUJANN59 -``` - -**Example output:** - - - -```plaintext -Credential information: - Created Time: Tue, 22 Aug 2023 18:26:06 PDT - Credential Store ID: csst_5GGWwRngd7 - ID: credup_29IUJANN59 - Name: tester - Type: username_password - Updated Time: Tue, 22 Aug 2023 18:26:06 PDT - Version: 1 - - Scope: - ID: p_1zMlAwGHtH - Name: quick-start-project - Parent Scope ID: o_R0wbo0H6Zl - Type: project - - Authorized Actions: - no-op - read - update - delete - - Attributes: - Password HMAC: bXhHJHgaGz6fpolEpQPd0azcICSgmbVuSLfyhJhmqJY - Username: tester -``` - - - -## Usage - - - -```shell-session -$ boundary credentials read [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the credential for which you want to retrieve information. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/credentials/update.mdx b/website/content/docs/commands/credentials/update.mdx deleted file mode 100644 index 7ea107d77..000000000 --- a/website/content/docs/commands/credentials/update.mdx +++ /dev/null @@ -1,252 +0,0 @@ ---- -layout: doc -page_title: credentials update - Command -description: >- - The "credentials update" command updates an existing credential resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# credentials update - -Command: `boundary credentials update` - -The `credentials update` command lets you update Boundary credential resources. - -## Examples - -The following example updates an existing user password credential with a new password: - -```shell-session -$ export NEW_SSH_USER_PASSWORD="my-new-long-password" - -$ boundary credentials update username-password -id credup_J15mtU4qmy \ - -password env://NEW_SSH_USER_PASSWORD -``` - -**Example output:** - - - -```plaintext -Credential information: - Created Time: Tue, 22 Aug 2023 15:56:07 PDT - Credential Store ID: csst_5GGWwRngd7 - Description: Ops admin who needs to access the machine - ID: credup_J15mtU4qmy - Name: ssh-user - Type: username_password - Updated Time: Tue, 22 Aug 2023 21:26:34 PDT - Version: 2 - - Scope: - ID: p_1zMlAwGHtH - Name: quick-start-project - Parent Scope ID: o_R0wbo0H6Zl - Type: project - - Authorized Actions: - no-op - read - update - delete - - Attributes: - Password HMAC: JxqSB5DJ_dBlTCJAfkX6k-o-6CwjgEDmmnbrTxvQ7_g - Username: ssh-user -``` - - - - -## Usage - - - -```shell-session -$ boundary credentials update [type] [sub command] [options] [args] -``` - - - -### Command options - -- `-description` `(string: "")` - A description to set on the credential. -- `-id` `(string: "")` - The ID of the credential to update. -- `-name` `(string: "")` - A name to set on the credential. -- `-version` `(int: 0)` - The version of the credential to update. -If you don't specify a version, the command performs a check-and-set automatically. - -#### Usages by type - -The available types are `json`, `ssh-private-key`, `username-password`, and `username-password-domain`. - - - - -The `credentials update json` command lets you update a JSON credential. - -#### Example - -The following example updates a JSON credential with the ID `csst_1234567890`: - -```shell-session -$ boundary credentials update json \ - -id csst_1234567890 \ - -name devops \ - -description "For DevOps usage" -``` - -#### Usage - - - -```shell-session -$ boundary credentials update json [options] [args] -``` - - - -#### JSON object credential options - -The following options are specific to JSON credentials in addition to the command options: - -- `-bool-kv` `(map: {})` – A key=value Boolean value to add to the request's object map. -You can specify this option multiple times. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-kv` `(map: {})` – A key=value pair to add to the request's object map. -This option can also be a key value only which will set a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -Use `-string-kv`,`-bool-kv`, or `-num-kv` to override the type. -You can specify this option multiple times. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-num-kv` `(map: {})` – A key=value numeric value to add to the request's object map. -You can specify this option multiple times. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-object` `(string: "")` - A JSON map value to use as the entirety of the request's object map. -Usually this is sourced from a file using `file://` syntax. -This option is exclusive with the other kv flags. -- `-string-kv` `(map: {})` – A key=value string value to add to the request's object map. -You can specify this option multiple times. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. - - - - -The `credentials update ssh-private-key` lets you update an SSH private key credential. - -#### Example - -The following example updates an SSH private key with the ID `clvlt_1234567890`: - -```shell-session -$ boundary credentials update ssh-private-key \ - -id clvlt_1234567890 \ - -name devops \ - -description "For DevOps usage" -``` - -#### Usage - - - -```shell-session -$ boundary credentials update ssh-private-key [options] [args] -``` - - - -#### SSH private key credential options - -The following options are specific to SSH private key credentials in addition to the command options: - -- `-private-key` `(string: "")` - The SSH private key associated with the - credential. - This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-private-key-passphrase` `(string: "")` - The passphrase associated with the - SSH private key. - Boundary ingores this value if the private key does not require a passphrase or if you do not supply a private key. - This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. - If you leave this option empty, and the key requires a passphrase, you can enter it manually. -- `-username` `(string: "")` - The username associated with the credential. - - - - -The `credentials update username-password` command lets you update a username password type. - -#### Example - -The following example updates a username password credential with the ID `clvlt_1234567890`: - -```shell-session -$ boundary credentials update username-password \ - -id clvlt_1234567890 \ - -name devops \ - -description "For DevOps usage" -``` - -#### Usage - - - -```shell-session -$ boundary credentials update username-password [options] [args] -``` - - - -#### Username password credential options - -The following options are specific to username password credentials in addition to the command options: - -- `-password` `(string: "")` - The password associated with the credential. -This value can be a reference to a file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the value. -- `-username` `(string: "")` - The username associated with the credential. - - - - -The `credentials update username-password-domain` command lets you update an existing username password domain credential type. - -Username password domain credentials are primarily used with RDP targets for credential injection. - -#### Example - -The following example updates a username password domain credential with the ID `csst_1234567890`: - -```shell-session -boundary credentials update username-password-domain \ - -id csst_1234567890 \ - -name devops \ - -description "For DevOps usage" \ -``` - -#### Usage - - - -```shell-session -boundary credentials update username-password-domain [options] [args] -``` - - -#### Username password domain credential options - -The following options are specific to username password domain credentials in addition to the command options: - -- `domain` `(string: "")` - The Active Directory domain name. If you include the domain in the `username` field, Boundary automatically fills in the domain information. - - For example, if you enter `admin@mydomain` or `mydomain\admin` in the `username` field, Boundary automatically completes the `domain` field with `mydomain`. - -- `password` `(string: "")` - The password associated with the credential. This value can be a reference to a file on disk (file://) or an environment variable (env://) from which Boundary reads the value. - -- `username` `(string: "")` - The username associated with the credential. This value can include domain information in `username@domain` or `domain\username` format. - - - - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/database/index.mdx b/website/content/docs/commands/database/index.mdx deleted file mode 100644 index 2ea9fb283..000000000 --- a/website/content/docs/commands/database/index.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: docs -page_title: database - Command -description: >- - The "database" command performs operations on Boundary's database. You can initialize or migrate the database. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# database - -Command: `boundary database` - -The `database` command lets you perform operations on Boundary's database. - -Boundary manages its state and configuration in a relational database management system (RDBMS), namely PostgreSQL. -You must create, set up, and make the PostgreSQL database accessible to the Boundary controller nodes before you configure the nodes themselves. - -## Examples - -The following example initializes the Boundary database: - -```shell-session -$ boundary database init \ - -skip-auth-method-creation \ - -skip-host-resources-creation \ - -skip-scopes-creation \ - -skip-target-creation \ - -config /etc/boundary.d/controller.hcl -``` - -Before you can start Boundary, you must initialize the database from one Boundary controller. -This operation is only required once. -It will execute the required database migrations for the Boundary cluster to operate. - -## Usage - - - -```shell-session -Usage: boundary database [sub command] [options] [args] - - # ... - -Subcommands: - init Initialize Boundary's database - migrate Migrate Boundary's database to the most recent schema supported by this binary. -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [init](/boundary/docs/commands/database/init) -- [migrate](/boundary/docs/commands/database/migrate) diff --git a/website/content/docs/commands/database/init.mdx b/website/content/docs/commands/database/init.mdx deleted file mode 100644 index 238020357..000000000 --- a/website/content/docs/commands/database/init.mdx +++ /dev/null @@ -1,135 +0,0 @@ ---- -layout: docs -page_title: database init - Command -description: >- - The "database init" command initializes Boundary's database. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# database init - -Command: `boundary database init` - -The `database init` command initializes Boundary's database. - -## Examples - -The following example initializes a Boundary's database with the configuration specified in the `/etc/boundary.d/controller.hcl` file: - -```shell-session -$ boundary database init -config=/etc/boundary.d/controller.hcl -``` - -The `controller.hcl` file contains the database URL. - - - -```hcl -...snip... - -# Controller configuration block -controller { - # This name attr must be unique across all controller instances if running in HA mode - name = "boundary-controller-1" - description = "Boundary controller number one" - - # This is the public hostname or IP where the workers can reach the - # controller. This should typically be a load balancer address - public_cluster_addr = "example-cluster-lb.example.com" - - # Enterprise license file, can also be the raw value or env:// value - license = "file:///path/to/license/file.hclic" - - # After receiving a shutdown signal, Boundary will wait 10s before initiating the shutdown process. - graceful_shutdown_wait_duration = "10s" - - # Database URL for postgres. This is set in boundary.env and - #consumed via the “env://” notation. - database { - url = "env://POSTGRESQL_CONNECTION_STRING" - } -} - -...snip... -``` - - - - -## Usage - - - -```shell-session -$ boundary database init [options] [args] -``` - - - -Some initial resources are created in the following order, and in the indicated scopes: - -- Initial login role (global) -- Password-type auth method (global) -- Org scope (global) -- Project scope (org) - - Static-type host catalog (project) - - Static-type host set - - Static-type host - - Target (project) - - - -You can use flags to prevent Boundary from creating these resources. -If you use flags to skip any of these resources, any resources that would be created afterwards are also skipped. -Refer to the following [init options](#init-options) for the available flags. - - - -### Command options - -- `-config` `(string: "")` - The path to the configuration file. -- `-config-kms` `(string: "")` - The path to a configuration file containing a `kms` block marked for the `config` purpose. -The KMS block performs decryption of the main configuration file. -If you don't set a `kms` block, Boundary looks for such a block in the main configuration file, which has some drawbacks; see the help output for `boundary config encrypt -h` for details. -- `-log-format` `(string: "")` - The log format. -Supported values are `standard` and `json`. -- `-log-level` `(string: "")` - The log verbosity level. Supported values include the following in order of more detail to less: - - - `trace` - - `debug` - - `info` - - `warn` - - `err` - - You can also specify a log level using the **BOUNDARY_LOG_LEVEL** environment variable. - -### Init options: - -- `-migration-url` `(string: "")` - If set, this value overrides the migration URL set in the configuration file, and specifies the URL used to connect to the database for initialization. -Configuring this option can allow different permissions for the user running initialization vs. standard operations. -This value can refer to a direct database URL, or it can refer to file on disk (`file://`) or an environment variable (`env://`) from which Boundary reads the URL. - -- `-skip-auth-method-creation` - If not set, skips the creation of an auth method as part of initialization. -If you set this value, the recovery KMS is required to perform any actions. -The default value is `false`. - -- `-skip-host-resources-creation` - If not set, skips the creation of host resources as part of the initialization, inlcuding host catalog, host set, and hosts. -The default value is `false`. - -- `-skip-initial-authenticated-user-role-creation` - If set, skips the creation of the role and grants that are provisioned by default for all authenticated users. - -- `-skip-initial-login-role-creation` - If not set, skips the creation of a default role allowing necessary grants for logging in as part of initialization. -If you set this value, the recovery KMS is required to perform any actions. -The default value is `false`. - -- `-skip-scopes-creation` - If not set, skips the creation of scopes as part of initialization. -The default value is `false`. - -- `-skip-target-creation` - If not set, skips the creation of a target as part of initialization. -The default value is `false`. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/database/migrate.mdx b/website/content/docs/commands/database/migrate.mdx deleted file mode 100644 index ecca22fc5..000000000 --- a/website/content/docs/commands/database/migrate.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -layout: docs -page_title: database migrate - Command -description: >- - The "database migrate" command migrates Boundary's database within an enclosing scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# database migrate - -Command: `boundary database migrate` - -The `database migrate` command migrates the Boundary database within an enclosing scope or resource. - -## Examples - -The following example migrates Boundary's database to the database URL specified in the controller configuration file: - -```shell-session -$ boundary database migrate -config=/etc/boundary.d/controller.hcl -``` - -## Usage - - - -```shell-session -$ boundary database migrate [options] -``` - - - - -### Command options - -- `-config` `(string: "")` - The path to the configuration file. -- `-config-kms` `(string: "")` - The path to a configuration file containing a `kms` block marked for the `config` purpose. -The KMS block performs decryption of the main configuration file. -If you don't set a `kms` block, Boundary looks for such a block in the main configuration file, which has some drawbacks; see the help output for `boundary config encrypt -h` for details. -- `-log-format` `(string: "")` - The log format. Supported values are `standard` and `json`. -- `-log-level` `(string: "")` - The log verbosity level. Supported values include the following in order of more detail to less: - - - `trace` - - `debug` - - `info` - - `warn` - - `err` - - You can also specify a log level using the **BOUNDARY_LOG_LEVEL** environment variable. - -### Migration options: - -- `-migration-url` `(string: "")` - If set, this value overrides the migration URL set in the configuration file, and specifies the URL use to connect to the database for migration. -Configuring this option can allow different permissions for the user running initialization or migration vs. a standard operation. -This value can refer to a direct database URL, or it can refer to a file on disk (`file://`) or an environment variable (env://) from which Boundary reads the URL. -- `-repair` `(string: "")` - If set, runs the repair function for the provided migration - version. - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/delete.mdx b/website/content/docs/commands/delete.mdx deleted file mode 100644 index 6a69cfe06..000000000 --- a/website/content/docs/commands/delete.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: docs -page_title: delete - Command -description: >- - The "delete" command deletes existing resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# delete - -Command: `boundary delete` - -The `boundary delete` command lets you delete Boundary resources. -It is a generic command that runs a delete operation on a Boundary resource using the resource's ID. - -When you run this command, Boundary interprets it as the type-specific command. -For example, if you enter the `delete` command with a storage bucket ID, Boundary runs the `storage-buckets delete` command. -Help, error, or cURL output from the command may show the full command syntax. - -## Example - -This example deletes a storage bucket with the ID `sb_1234567890`: - -```shell-session -$ boundary delete -id sb_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary delete [resource ID] [args] -``` - - - -### Command options - -- `-id=` - The ID of the resource you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/dev.mdx b/website/content/docs/commands/dev.mdx deleted file mode 100644 index 005ce8234..000000000 --- a/website/content/docs/commands/dev.mdx +++ /dev/null @@ -1,262 +0,0 @@ ---- -layout: docs -page_title: dev - Command -description: >- - The `dev` command starts a Boundary instance in a dev mode. Dev mode provides admin credentials for password authentication. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# dev - -Command: `boundary dev` - -The `dev` command starts a Boundary instance in a dev mode. Dev mode -provides admin credentials for password authentication. - -Dev mode brings up a fully functioning instance of Boundary which includes: - -- A controller server -- A worker server -- A Postgres database - -These components are ephemeral; therefore, data is not persisted. -Setting up an environment in dev mode is a convenient method for quick testing. - -## Examples - -The following example starts a Boundary instance in a dev mode: - -```shell-session -$ boundary dev -``` - -**Example output:** - - - -```plaintext -==> Boundary server configuration: - - [Bsr] AEAD Key Bytes: McoUxn6XMdaYdS8lb2bqjgvrZIaLWML0 - [Controller] AEAD Key Bytes: SA+ccZA42hj/7XRwYeq4c7OEeSoYT4Ds - [Recovery] AEAD Key Bytes: 9KJyjHcC35MPcz6VsfGczZn4KLCNXhz5 - [Worker-Auth] AEAD Key Bytes: Pgr4AbL+S6hThU6B0cyVOI7cqtoyCVrS - [Bsr] AEAD Type: aes-gcm - [Recovery] AEAD Type: aes-gcm - [Root] AEAD Type: aes-gcm - [Worker-Auth-Storage] AEAD Type: aes-gcm - [Worker-Auth] AEAD Type: aes-gcm - Cgo: disabled - Controller Public Cluster Addr: 127.0.0.1:9201 - Dev Database Container: infallible_mahavira - Dev Database Url: postgres://postgres:password@localhost:32769/boundary?sslmode=disable - Generated Admin Login Name: admin - Generated Admin Password: password - Generated Host Catalog Id: hcst_1234567890 - Generated Host Id: hst_1234567890 - Generated Host Set Id: hsst_1234567890 - Generated Ldap Auth Method Base Search DNs: users="ou=people,dc=example,dc=org" groups="ou=groups,dc=example,dc=org" - Generated Ldap Auth Method Host:Port: 127.0.0.1:64160 (does not have a root DSE; use simple bind) - Generated Ldap Auth Method Id: amldap_1234567890 - Generated Oidc Auth Method Id: amoidc_1234567890 - Generated Org Scope Id: o_1234567890 - Generated Password Auth Method Id: ampw_1234567890 - Generated Project Scope Id: p_1234567890 - Generated Target With Address Id: ttcp_1234567890 - Generated Target With Host Source Id: ttcp_0987654321 - Generated Unprivileged Login Name: user - Generated Unprivileged Password: password - Listener 1: tcp (addr: "127.0.0.1:9200", cors_allowed_headers: "[]", cors_allowed_origins: "[*]", cors_enabled: "true", max_request_duration: "1m30s", purpose: "api") - Listener 2: tcp (addr: "127.0.0.1:9201", max_request_duration: "1m30s", purpose: "cluster") - Listener 3: tcp (addr: "127.0.0.1:9203", max_request_duration: "1m30s", purpose: "ops") - Listener 4: tcp (addr: "127.0.0.1:9202", max_request_duration: "1m30s", purpose: "proxy") - Log Level: info - Mlock: supported: false, enabled: false - Version: Boundary v0.13.1 - Version Sha: db01791662a7126fbf4ea0a27b23b70acd20b17b - Worker Auth Current Key Id: september-viewing-rubdown-wrench-sliceable-valid-chute-retrace - Worker Auth Storage Path: (in-memory) - Worker Public Proxy Addr: 127.0.0.1:9202 - -==> Boundary server started! Log data will stream in below: -... -``` - - - -The generated admin username is `admin` and the password is `password`. - -## Usage - - - -```shell-session -$ boundary dev [options] -``` - - - - -### Command options - - -- `-api-listen-address` `(string: "")` - The address to bind for controller "api" - purposes. If the address begins with a forward slash, Boundary assumes it is a Unix - domain socket path. You can also specify an address using the - **BOUNDARY_DEV_CONTROLLER_API_LISTEN_ADDRESS** environment variable. - -- `-audit-events` `(string: "")` - If set, indicates whether you want to emit audit events. Supported values are `true` and `false`. - -- `-bsr-key` `(string: "")` - A valid, base64-encoded AES key to be used - for session recording. You can also specify the BSR key using the **BOUNDARY_DEV_BSR_KEY** - environment variable. - -- `-cluster-listen-address` `(string: "")` - The address to bind for controller - "cluster" purposes. If the address begins with a forward slash, Boundary assumes it is a Unix domain socket path. You can also specify an address using the - **BOUNDARY_DEV_CONTROLLER_CLUSTER_LISTEN_ADDRESS** environment variable. - -- `-combine-logs` - If set, sends both startup information and logs to stdout. - If you do not set this value, startup information goes - to stdout and logs are sent to stderr. The default is `false`. - -- `-container-image` `(string: "")` - A container image to use. - This value must be in `:` format - -- `-controller-only` - If set, indicates that only a dev controller should be - started instead of both a dev controller and dev worker. The default value is `false`. - -- `-controller-public-cluster-address` `(string: "")` - The public address at which - the controller is reachable for cluster tasks, such as worker connections. - You can also specify the public address using the **BOUNDARY_DEV_CONTROLLER_PUBLIC_CLUSTER_ADDRESS** environment variable. - -- `-database-url` `(string: "")` - The URL that Boundary uses to connect to - the database for initialization, otherwise a Docker container is - started. This URL can refer to a file on disk (`file://`) from which a URL is read, an environment variable (`env://`) from which the URL is read, or a direct database URL. - -- `-disable-database-destruction` - If set, creates a database automatically in Docker. - The database is not removed when the dev server is shut down. - The default value is `false`. - -- `-event-allow-filter` `(string: "")` - An optional allow filter for every event. - You can specfiy this value multiple times. - -- `-event-deny-filter` `(string: "")` - An optional deny filter for every event. - You can specify this value multiple times. - -- `-event-format` `(string: "")` - The event format. - The following values are supported: - - - `cloudevents-json` - - `cloudevents-text` - - `hclog-json` - - `hclog-text` - -- `-host-address` `(string: "")` - The address to use for the default host that is - created. This value must be a bare host or IP address, it cannot be a port. The default value is `localhost`. You can also specify a host address using the **BOUNDARY_DEV_HOST_ADDRESS** environment variable. - -- `-id-suffix` `(string: "")` - If set, designates that auto-created resources use this - suffix value for their identifier, along with any resource-specific prefix, if set. This value must be 10 alphanumeric characters. As an example, if this is set to `1234567890`, - the generated password auth method ID is `ampw_1234567890`, the - generated TCP target ID is `ttcp_1234567890`, and so on. - - This value must be different from any `-secondary-id-suffix` or **BOUNDARY_DEV_SECONDARY_ID_SUFFIX** value. - The default is `1234567890`. You can also configure a suffix using the **BOUNDARY_DEV_ID_SUFFIX** environment variable. - -- `-log-format` `(string: "")` - The log format. Supported values are `standard` and - `json`. - -- `-log-level` `(string: "")` - The desired log verbosity level. - Supported values, in order of more detail to less, are: - - - `trace` - - `debug` - - `info` - - `warn` - - `err` - - You can also specify log verbosity level using the **BOUNDARY_LOG_LEVEL** environment variable. - -- `-login-name` `(string: "")` - The initial admin login name. If you set this value to an empty - string, Boundary autogenerates a login name. The default value is `admin`. You can also specify a login name using the **BOUNDARY_DEV_LOGIN_NAME** environment variable. - -- `-observation-events` `(string: "")` - If set, indicates whether you want Boundary to emit observation events. Supported values are `true` and `false`. - -- `-ops-listen-address` `(string: "")` - An address to bind to for "ops" purpose. - If the address begins with a forward slash, Boundary assumes it is a Unix domain - socket path. You can also specify an address using the - **BOUNDARY_DEV_OPS_LISTEN_ADDRESS** environment variable. - -- `-password` `(string: "")` - The initial admin login password. If you set this value to an empty - string, Boundary autogenerates a password. The default value is `password`. You can also specify an initial admin login password using the **BOUNDARY_DEV_PASSWORD** environment variable. - -- `-plugin-execution-dir` `(string: "")` - The directory where Boundary should write - plugins that it executes. - If you do not set a value, Boundary defaults to using the system temp directory. - You can also specify a directory using the **BOUNDARY_DEV_PLUGIN_EXECUTION_DIR** - environment variable. - -- `-proxy-listen-address` `(string: "")` - The address to bind for worker "proxy" - purposes. You can also specify an address using the - **BOUNDARY_DEV_WORKER_PROXY_LISTEN_ADDRESS** environment variable. - -- `-recovery-key` `(string: "")` - The base64'd 256-bit AES key to use - for recovery operations. You can also specify a recovery key using the - **BOUNDARY_DEV_RECOVERY_KEY** environment variable. - -- `-secondary-id-suffix` `(string: "")` - If set, indicates that secondary auto-created - resources should use the given value for their identifier, along with their - resource-specific prefix, if set. This value must be 10 alphanumeric characters. Currently it is only used for the target resource. The secondary suffix must be different from the `-id-suffix` and **BOUNDARY_DEV_ID_SUFFIX** values. The default value is `0987654321`. You can also specify a secondary suffix using the **BOUNDARY_DEV_SECONDARY_ID_SUFFIX** environment variable. - -- `-system-events` `(string: "")` - If set, indicates whether you want Boundary to emit system events. Supported values are `true` and `false`. - -- `-target-default-port` `(int: 0)` - The default port to use for the default target - that is created. The default value is `22`. You can also specify a default target port using the **BOUNDARY_DEV_TARGET_DEFAULT_PORT** environment variable. - -- `-target-session-connection-limit` `(int: 0)` - The maximum number of connections - per session to set on the default target. A value of `-1` means unlimited. The default is - `-1`. You can also specify the maximum number of connections using the - **BOUNDARY_DEV_TARGET_SESSION_CONNECTION_LIMIT** environment variable. - -- `-target-session-max-seconds` `(int: 0)` - The maximum number of seconds to use for sessions on the default target. -You can also specify the maximum number of seconds using the **BOUNDARY_DEV_TARGET_SESSION_MAX_SECONDS** environment variable. - -- `-ui-passthrough-dir` `(string: "")` - A passthrough directory in the - webserver at /. You can also specify a passthrough directory using the - **BOUNDARY_DEV_UI_PASSTHROUGH_DIR** environment variable. - -- `-unprivileged-login-name` `(string: "")` - The initial unprivileged user's name. If - you set this value to an empty string, Boundary automatically generates the user name. The default value is `user`. - You can also specify the user name using the **BOUNDARY_DEV_UNPRIVILEGED_LOGIN_NAME** - environment variable. - -- `-unprivileged-password` `(string: "")` - The initial unprivileged user login - password. If you set this value to an empty string, Boundary automatically generates the password. The default value is `password`. You can also specify the password using the - **BOUNDARY_DEV_UNPRIVILEGED_PASSWORD** environment variable. - -- `-worker-auth-enable-debugging` - If set, turns on debug logging for the - worker authentication process. The default value is `false`. - -- `-worker-auth-key` `(string: "")` - A valid, base64-encoded AES key to - use for worker-auth purposes You can also specify a key using the - **BOUNDARY_DEV_WORKER_AUTH_KEY** environment variable. - -- `-worker-auth-method` `(string: "")` - If set, lets you specify how the generated - worker authenticates to the controller. The default is `random`. - -- `-worker-auth-storage-dir` `(string: "")` - The directory in which to store - worker authentication credentials when in dev mode. If you do not set this value, Boundary uses in-memory storage or a temporary directory. - -- `-worker-auth-storage-skip-cleanup` - If set, prevents deletion of - worker credential storage directory, if set. This value has no effect unless - you specfiy a `worker-auth-storage-dir` value. The default value is `false`. - -- `-worker-public-address` `(string: "")` - The public address at which the worker - is reachable for session proxying. You can also specify an address using the - **BOUNDARY_DEV_WORKER_PUBLIC_ADDRESS** environment variable. - -- `-worker-recording-storage-dir` `(string: "")` - The directory in which to - store worker session recordings when in dev mode. If you do not specify a directory, Boundary creates a temporary directory. Session recording is only available for Boundary Enterprise and HCP Boundary. \ No newline at end of file diff --git a/website/content/docs/commands/groups/add-members.mdx b/website/content/docs/commands/groups/add-members.mdx deleted file mode 100644 index 20d07a425..000000000 --- a/website/content/docs/commands/groups/add-members.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -layout: docs -page_title: groups add-members - Command -description: >- - The "groups add-members" command adds users as members of a group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups add-members - -Command: `boundary groups add-members` - -The `groups add-members` command lets you add users as members of a group. - -## Examples - -The following example adds a user with ID, `u_qboadM3Q25` to the group with ID, `g_XzlDiNLgoz`: - -```shell-session -$ boundary groups add-members -id g_XzlDiNLgoz -member u_qboadM3Q25 -``` - -**Example output:** - - - -```plaintext -Group information: - Created Time: Thu, 24 Aug 2023 09:51:44 PDT - Description: A test group - ID: g_XzlDiNLgoz - Name: group01 - Updated Time: Thu, 24 Aug 2023 11:12:31 PDT - Version: 2 - - Scope: - ID: o_R0wbo0H6Zl - Name: quick-start-org - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members - - Members: - ID: u_qboadM3Q25 - Scope ID: o_R0wbo0H6Zl -``` - - - - -## Usage - - - -```shell-session -$ boundary groups add-members [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the group you want to add a member to. -- `-member` `(string: "")` - The ID of the user you want to add to the group. -You can specify the `-member` flag multiple times. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/groups/create.mdx b/website/content/docs/commands/groups/create.mdx deleted file mode 100644 index dbe83c9c5..000000000 --- a/website/content/docs/commands/groups/create.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -layout: docs -page_title: groups create - Command -description: >- - The "groups create" command creates a new group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups create - -Command: `boundary groups create` - -The `groups create` command lets you create a new group. - -## Examples - -The following example creates a group, `group01` in the scope `o_R0wbo0H6Zl`: - -```shell-session -$ boundary groups create -name "group01" \ - -description "A test group" \ - -scope-id o_R0wbo0H6Zl -``` - -**Example output:** - - - -```plaintext -Group information: - Created Time: Thu, 24 Aug 2023 09:51:44 PDT - Description: A test group - ID: g_XzlDiNLgoz - Name: group01 - Updated Time: Thu, 24 Aug 2023 09:51:44 PDT - Version: 1 - - Scope: - ID: o_R0wbo0H6Zl - Name: quick-start-org - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members -``` - - - - -## Usage - - - -```shell-session -$ boundary groups create [options] [args] -``` - - - - -### Command options - -- `-description` `(string: "")` - A description to set on the new group. -- `-name` `(string: "")` - A name to set on the new group. -- `-scope-id` `(string: "")` - The scope in which to create the group. -The default value is `global`. -You can also specify a scope using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/groups/delete.mdx b/website/content/docs/commands/groups/delete.mdx deleted file mode 100644 index 8893993cf..000000000 --- a/website/content/docs/commands/groups/delete.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -layout: docs -page_title: groups delete - Command -description: >- - The "groups delete" command deletes an existing group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups delete - -Command: `boundary groups delete` - -The `groups delete` command lets you delete an existing group. - - -## Examples - -The following example deletes a group with the given ID, `g_FNVVhAd0on`. - -```shell-session -$ boundary groups delete -id g_FNVVhAd0on -The delete operation completed successfully. -``` - -## Usage - - - -```shell-session -$ boundary groups delete [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the group to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/groups/index.mdx b/website/content/docs/commands/groups/index.mdx deleted file mode 100644 index c87ac029e..000000000 --- a/website/content/docs/commands/groups/index.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -layout: docs -page_title: groups - Command -description: >- - The "groups" command performs operations on group resources. A group represents a collection of users with the same access control. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups - -Command: `boundary groups` - -The `groups` command lets you create and manage group resources in Boundary. - -A group in Boundary is a resource that represents a collection of users that are treated equally for the purposes of access control. -A group is a principal, which means it can be assigned to roles. -Roles assigned to a group are indirectly assigned to the users in the group, and users receive all permissions of the assigned roles. -You can define groups at the global, organization, or project scope. - -## Examples - -The following example creates a group, `group01` in a scope with the id `o_R0wbo0H6Zl`: - -```shell-session -$ boundary groups create -name "group01" \ - -description "A test group" \ - -scope-id o_R0wbo0H6Zl -``` - -**Example output:** - - - -```plaintext -Group information: - Created Time: Thu, 24 Aug 2023 09:51:44 PDT - Description: A test group - ID: g_XzlDiNLgoz - Name: group01 - Updated Time: Thu, 24 Aug 2023 09:51:44 PDT - Version: 1 - - Scope: - ID: o_R0wbo0H6Zl - Name: quick-start-org - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members -``` - - - -## Usage - - - -```shell-session -Usage: boundary groups [sub command] [options] [args] - - # ... - -Subcommands: - add-members Add members to a group - create Create a group - delete Delete a group - list List a group - read Read a group - remove-members Remove members from a group - set-members Set the full contents of the members on a group - update Update a group -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [add-members](/boundary/docs/commands/groups/add-members) -- [create](/boundary/docs/commands/groups/create) -- [delete](/boundary/docs/commands/groups/delete) -- [list](/boundary/docs/commands/groups/list) -- [read](/boundary/docs/commands/groups/read) -- [remove-members](/boundary/docs/commands/groups/remove-members) -- [set-members](/boundary/docs/commands/groups/set-members) -- [update](/boundary/docs/commands/groups/update) diff --git a/website/content/docs/commands/groups/list.mdx b/website/content/docs/commands/groups/list.mdx deleted file mode 100644 index a3c6cb1c1..000000000 --- a/website/content/docs/commands/groups/list.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -layout: docs -page_title: groups list - Command -description: >- - The "groups list" command lists the available group resources within an enclosing scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups list - -Command: `boundary groups list` - -The `groups list` command lists all groups within an enclosing scope or resource. - -## Examples - -The following example lists all groups defined within the scope `o_R0wbo0H6Zl`: - -```shell-session -$ boundary groups list -scope-id o_R0wbo0H6Zl -``` - -**Example output:** - - - -```plaintext -Group information: - ID: g_XzlDiNLgoz - Version: 2 - Name: group01 - Description: A test group - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members - - ID: g_FNVVhAd0on - Version: 1 - Name: webdev - Description: Web dev group - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members - - ID: g_9SpLKOoTse - Version: 1 - Name: support - Description: Support engineering group - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members -``` - - - -## Usage - - - -```shell-session -$ boundary groups list [options] [args] -``` - - - - -### Command options - -- `-filter` `(string: "")` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `-scope-id ``(string: "")` - The scope from which to list the groups. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/groups/read.mdx b/website/content/docs/commands/groups/read.mdx deleted file mode 100644 index 6361983a7..000000000 --- a/website/content/docs/commands/groups/read.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: docs -page_title: groups read - Command -description: >- - The "groups read" command retrieves the details of an existing group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups read - -Command: `boundary groups read` - -The `groups read` command retrieves the group details for a given ID. - - -## Examples - -The following example retrieves the group information for a group with the ID, `g_XzlDiNLgoz`: - -```shell-session -$ boundary groups read -id g_XzlDiNLgoz -``` - -**Example output:** - - - -```plaintext -Group information: - Created Time: Thu, 24 Aug 2023 09:51:44 PDT - Description: A test group - ID: g_XzlDiNLgoz - Name: group01 - Updated Time: Thu, 24 Aug 2023 11:12:31 PDT - Version: 2 - - Scope: - ID: o_R0wbo0H6Zl - Name: quick-start-org - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members - - Members: - ID: u_qboadM3Q25 - Scope ID: o_R0wbo0H6Zl -``` - - - -## Usage - - - -```shell-session -$ boundary groups read [options] [args] -``` - - - - -### Command options - -- `-id` `(string: "")` - The ID of the group to retrieve information for. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/groups/remove-members.mdx b/website/content/docs/commands/groups/remove-members.mdx deleted file mode 100644 index 1f16d623b..000000000 --- a/website/content/docs/commands/groups/remove-members.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -layout: docs -page_title: groups remove-members - Command -description: >- - The "groups remove-members" command removes members from a group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups remove-members - -Command: `boundary groups remove-members` - -The `groups remove-members` command removes users from a group, given its ID. - -## Examples - -The following example removes a user with the ID `u_J5l9FWB7yq` from a group with the ID `g_FNVVhAd0on`: - -```shell-session -$ boundary groups remove-members -id g_FNVVhAd0on \ - -member u_J5l9FWB7yq -``` - -**Example output:** - - - -```plaintext -Group information: - Created Time: Thu, 24 Aug 2023 13:58:23 PDT - Description: Web dev group - ID: g_FNVVhAd0on - Name: webdev - Updated Time: Thu, 24 Aug 2023 14:21:05 PDT - Version: 3 - - Scope: - ID: o_R0wbo0H6Zl - Name: quick-start-org - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members - - Members: - ID: u_ad8tbsXHJP - Scope ID: o_R0wbo0H6Zl -``` - - - -The output displays the group information. - -## Usage - - - -```shell-session -$ boundary groups remove-members [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the group from which to remove a member. -- `-member` `(string: "")` - The ID of the user to be removed from the group. -You can specify the `-member` flag multiple times. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/groups/set-members.mdx b/website/content/docs/commands/groups/set-members.mdx deleted file mode 100644 index 212b0968f..000000000 --- a/website/content/docs/commands/groups/set-members.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -layout: docs -page_title: groups set-members - Command -description: >- - The "groups set-members" command configures a complete set of users as members in a group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups set-members - -Command: `boundary groups set-members` - -The `groups set-members` command lets you configure the complete set of users in a group. - -## Examples - -The following example set users with the IDs, "`u_ad8tbsXHJP`" and "`u_J5l9FWB7yq`" as group members in a group with the group ID `g_FNVVhAd0on`: - -```shell-session -$ boundary groups set-members -id g_FNVVhAd0on \ - -member u_ad8tbsXHJP \ - -member u_J5l9FWB7yq -``` - -**Example output:** - - - -```plaintext -Group information: - Created Time: Thu, 24 Aug 2023 13:58:23 PDT - Description: Web dev group - ID: g_FNVVhAd0on - Name: webdev - Updated Time: Thu, 24 Aug 2023 14:12:35 PDT - Version: 2 - - Scope: - ID: o_R0wbo0H6Zl - Name: quick-start-org - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members - - Members: - ID: u_ad8tbsXHJP - Scope ID: o_R0wbo0H6Zl - - ID: u_J5l9FWB7yq - Scope ID: o_R0wbo0H6Z -``` - - - -The output displays the group information. - -## Usage - - - -```shell-session -$ boundary groups set-members [options] [args] -``` - - - -### Command options - -- `-id` `(string: "")` - The ID of the group on which to set members. -- `-member` `(string: "")` - The ID of the user or users you want to add to the group. -You can specify the `-member` flag multiple times. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/groups/update.mdx b/website/content/docs/commands/groups/update.mdx deleted file mode 100644 index 8edf39bd3..000000000 --- a/website/content/docs/commands/groups/update.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -layout: docs -page_title: groups update - Command -description: >- - The "groups update" command updates an existing group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# groups update - -Command: `boundary groups update` - -The `groups update` command lets you update an existing group's information. - -## Examples - -In this example, an existing group (`g_9SpLKOoTse`) has the following details: - - - -```plaintext -Group information: - Created Time: Thu, 24 Aug 2023 13:58:50 PDT - Description: Support engineering group - ID: g_9SpLKOoTse - Name: support - Updated Time: Thu, 24 Aug 2023 13:58:50 PDT - Version: 3 - -...snip... -``` - - - -The following command updates the group's `description` and `version`: - -```shell-session -$ boundary groups update -id g_9SpLKOoTse \ - -description "Customer support for product XXX" \ - -version 4 -``` - -**Example output:** - - - -```plaintext -Group information: - Created Time: Thu, 24 Aug 2023 13:58:50 PDT - Description: Customer support for product XXX - ID: g_9SpLKOoTse - Name: support - Updated Time: Thu, 24 Aug 2023 14:33:18 PDT - Version: 4 - - Scope: - ID: o_R0wbo0H6Zl - Name: quick-start-org - Parent Scope ID: global - Type: org - - Authorized Actions: - no-op - read - update - delete - add-members - set-members - remove-members -``` - - - -## Usage - - - -```shell-session -$ boundary groups update [options] [args] -``` - - - -### Command options - -- `-description` `(string: "")` - The description to set on the group. -- `-id` `(string: "")` - The ID of the group to update. -- `-name` `(string: "")` - The name to set on the group. -- `-version` `(string: "")` - The version of the group to update. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-catalogs/create.mdx b/website/content/docs/commands/host-catalogs/create.mdx deleted file mode 100644 index fcae40885..000000000 --- a/website/content/docs/commands/host-catalogs/create.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -layout: docs -page_title: host-catalogs create - Command -description: >- - The "host-catalogs create" command creates a new host catalog resource. You can create plugin or static host catalog types. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-catalogs create - -Command: `host-catalogs create` - -The `host-catalogs create` command lets you create a new host catalog. - -## Example - -This example creates a static host catalog with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary host-catalogs create static -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -$ boundary host-catalogs create [type] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - plugin Create a plugin-type host catalog - static Create a static-type host catalog -``` - - - -### Usages by type - -You can create plugin or static host catalog types. - - - - -The `boundary host-catalogs create plugin` command lets you create a plugin type host catalog. - -#### Example - -This example creates a plugin type host catalog with the name `prodops` and the description `Plugin host-catalog for ProdOps`, and adds it to a scope with the ID `p_1234567890`. - -```shell-session -$ boundary host-catalogs create plugin -scope-id p_1234567890 -name prodops -description "Plugin host-catalog for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary host-catalogs create plugin [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the plugin host catalog. -- `-name=` - The name to set on the plugin host catalog. -- `-plugin-id=` - The ID of the plugin associated with the host catalog you want to create. -- `-plugin-name=` - The name of the plugin associated with the host catalog you want to create. -- `-scope-id=` - The scope in which you want to create the host catalog. -The default scope is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. -- `-worker-filter=` A boolean expression to filter which workers can handle dynamic host catalog commands for this host catalog. - -#### Attribute options - -- `-attr` - A key=value pair to add to the request's attribute map. -This option can also be a key value only, which sets a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can override the type using `-string-attr`, `-bool-attr`, or `-num-attr`. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-attributes=` - A JSON map value that you can use as the entirety of the request's attributes map. -Usually this value is sourced from a file using the `file://` syntax. -This option is exclusive with other `attr` flags. -- `-bool-attr` - A key=value Boolean value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-num-attr` - A key=value numeric value that you can add to the request's attributes map. -You can specify this value multiple times. -This attribute supports referencing values from files using `file://` and environment variables using `env://`. -- `-string-attr` - A key=value string value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. - -#### Secrets options - -- `-bool-secret` - A key=value Boolean value that you can add to the request's secrets map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-num-secret` - A key=value numeric value that you can add to the request's secrets map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-secret` - A key=value pair that you can add to the request's secrets map. -This option can also be a key value only, which sets a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can override the type using `-string-secret`, `-bool-secret`, or `-num-secret`. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-secrets=` - A JSON map value that you can use as the entirety of the request's secrets map. -Usually this value is sourced from file using `file://` syntax. -This option is exclusive with other secret flags. -- `-string-secret` - A key=value string value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. - - - - - -The `boundary host-catalogs create static` command lets you create a static type host catalog. - -#### Example - -This example creates a static type host catalog with the name `prodops` and the description `Static host-catalog for ProdOps` and adds it to the scope `p_1234567890`: - -```shell-session -$ boundary host-catalogs create static -scope-id p_1234567890 -name prodops -description "Static host-catalog for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary host-catalogs create static [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the static host catalog. -- `-name=` - The name to set on the static host catalog. -- `-scope-id=` - The scope in which to create the static host catalog. -The default scope is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable, - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-catalogs/delete.mdx b/website/content/docs/commands/host-catalogs/delete.mdx deleted file mode 100644 index 5e6ed4374..000000000 --- a/website/content/docs/commands/host-catalogs/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: host-catalogs delete - Command -description: >- - The "host-catalogs delete" command deletes a existing host catalog resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-catalogs delete - -Command: `host-catalogs delete` - -The `host-catalogs delete` command lets you delete an existing host catalog by providing the ID. - -## Example - -This example deletes a host catalog with the ID `_1234567890`: - -```shell-session -$ boundary host-catalogs delete -id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary host-catalogs delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the host catalog to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-catalogs/index.mdx b/website/content/docs/commands/host-catalogs/index.mdx deleted file mode 100644 index 9bf273e6f..000000000 --- a/website/content/docs/commands/host-catalogs/index.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: docs -page_title: host-catalogs - Command -description: >- - The "host-catalogs" command performs operations on Boundary host catalog resources. Host catalogs contain hosts and host sets. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-catalogs - -Command: `boundary host-catalogs` - -The `host-catalogs` command lets you perform operations on Boundary host catalog resources. - -## Example - -The following example reads the information from a host catalog with the ID `hcst_1234567890`: - -```shell-session -$ boundary host-catalogs read -id hcst_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary host-catalogs [options] [args] - # ... -Subcommands: - create Create a host catalog - delete Delete a host catalog - list List a host catalog - read Read a host catalog - update Update a host catalog -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/host-catalogs/create) -- [delete](/boundary/docs/commands/host-catalogs/delete) -- [list](/boundary/docs/commands/host-catalogs/list) -- [read](/boundary/docs/commands/host-catalogs/read) -- [update](/boundary/docs/commands/host-catalogs/update) \ No newline at end of file diff --git a/website/content/docs/commands/host-catalogs/list.mdx b/website/content/docs/commands/host-catalogs/list.mdx deleted file mode 100644 index c60110151..000000000 --- a/website/content/docs/commands/host-catalogs/list.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -layout: docs -page_title: host-catalogs list - Command -description: >- - The "host-catalogs list" command lists the available host catalog resourcess within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-catalogs list - -Command: `boundary host-catalogs list` - -The `boundary host-catalogs list` command lets you list the Boundary host catalogs within a given scope or resource. - -## Example - -This example lists all host catalogs in the scope `_1234567890`. -The `recursive` option means Boundary runs the operation recursively on any child scopes, if applicable: - -```shell-session -$ boundary host-catalogs list -scope-id _1234567890 -recursive -``` - -## Usage - - - -```shell-session -$ boundary host-catalogs list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -- `-scope-id=` - The scope from which you want to list host catalogs. -The default scope is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-catalogs/read.mdx b/website/content/docs/commands/host-catalogs/read.mdx deleted file mode 100644 index 2bf37cf22..000000000 --- a/website/content/docs/commands/host-catalogs/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: host-catalogs read - Command -description: >- - The "host-catalogs read" command retrieves host catalog information for a host catalog resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-catalogs read - -Command: `boundary host-catalogs read` - -The `boundary host-catalogs read` command lets you read information about a Boundary host catalog using its given ID. - -## Example - -This example reads the details for a host catalog with the ID `_1234567890`: - -```shell-session -$ boundary host-catalogs read -id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary host-catalogs read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the host catalog whose information you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-catalogs/update.mdx b/website/content/docs/commands/host-catalogs/update.mdx deleted file mode 100644 index d45c46a69..000000000 --- a/website/content/docs/commands/host-catalogs/update.mdx +++ /dev/null @@ -1,155 +0,0 @@ ---- -layout: docs -page_title: host-catalogs update - Command -description: >- - The "host-catalogs update" command updates an existing host catalog resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-catalogs update - -Command: `host-catalogs update` - -The `host-catalogs update` command lets you update an existing host catalog. - -## Example - -This example updates a static host catalog with the ID `hcst_1234567890` to add the name `devops` and the description `For DevOps usage`: - -```shell-session -$ boundary host-catalogs update static -id hcst_1234567890 -name devops -description "For DevOps usage" -``` - -## Usage - - - -```shell-session -$ boundary host-catalogs update [type] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - plugin Update a plugin-type host catalog - static Update a static-type host catalog -``` - - - -### Usages by type - -You can update plugin or static host set types. - - - - -The `boundary host-catalogs update plugin` command lets you update a plugin type host catalog. - -#### Example - -This example updates a plugin type host catalog with the ID `hc_1234567890` to add the name `devops` and the description `Plugin host-catalog for DevOps`. - -```shell-session -$ boundary host-catalogs update plugin -id hc_1234567890 -name "devops" -description "Plugin host-catalog for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary host-catalogs update plugin [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the plugin host catalog. -- `-id=` - The ID of the plugin type host catalog to update. -- `-name=` - The name to set on the plugin host catalog. -- `-version=` - The version of the plugin host catalog to update. -If you do not specify a version, the command automatically performs a check-and-set. - -#### Attribute options - -- `-attr` - A key=value pair to add to the request's attribute map. -This option can also be a key value only, which sets a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can override the type using `-string-attr`, `-bool-attr`, or `-num-attr`. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-attributes=` - A JSON map value that you can use as the entirety of the request's attributes map. -Usually this value is sourced from a file using the `file://` syntax. -This option is exclusive with other `attr` flags. -- `-bool-attr` - A key=value Boolean value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-num-attr` - A key=value numeric value that you can add to the request's attributes map. -You can specify this value multiple times. -This attribute supports referencing values from files using `file://` and environment variables using `env://`. -- `-string-attr` - A key=value string value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. - -### Secrets options - -- `-bool-secret` - A key=value Boolean value that you can add to the request's secrets map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-num-secret` - A key=value numeric value that you can add to the request's secrets map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-secret` - A key=value pair that you can add to the request's secrets map. -This option can also be a key value only, which sets a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can override the type using `-string-secret`, `-bool-secret`, or `-num-secret`. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-secrets=` - A JSON map value that you can use as the entirety of the request's secrets map. -Usually this value is sourced from file using `file://` syntax. -This option is exclusive with other secret flags. -- `-string-secret` - A key=value string value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. - - - - - -The `boundary host-catalogs update static` command lets you update a static type host catalog. - -#### Example - -This example updates a static type host catalog with the ID `hcst_1234567890` to add the name `devops` and the description `Static host-catalog for DevOps`: - -```shell-session -$ boundary host-catalogs update static -id hcst_1234567890 -name "devops" -description "Static host-catalog for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary host-catalogs update static [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the static host catalog. -- `-id=` - The ID of the static type host catalog you want to update. -- `-name=` - The name to set on the static host catalog. -- `-version=` - The version of the static type host catalog you want to update. -If you do not specify a version, the command automatically performs a check-and-set. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/add-hosts.mdx b/website/content/docs/commands/host-sets/add-hosts.mdx deleted file mode 100644 index 73391f997..000000000 --- a/website/content/docs/commands/host-sets/add-hosts.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: host-sets add-hosts - Command -description: >- - The "host-sets add-hosts" command adds new hosts to host set resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets add-hosts - -Command: `host-sets add-hosts` - -The `host-sets add-hosts` command lets you add hosts to host sets, if the types match and it is allowed by the host set type. - -## Example - -This example adds the hosts `hst_1234567890` and `hst_0987654321` to the host set `hsst_1234567890`: - -```shell-session -$ boundary host-sets add-hosts -id hsst_1234567890 -host hst_1234567890 -host hst_0987654321 -``` - -## Usage - - - -```shell-session -$ boundary host-sets add-hosts [options] [args] -``` - - - -### Command options - -- `-host=` - The hosts you want to add to the host set. -You can specify multiple hosts. -- `-id=` - The ID of the host set you want to add hosts to. -- `-version=` The version of the host set you want to add hosts to. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/create.mdx b/website/content/docs/commands/host-sets/create.mdx deleted file mode 100644 index b38ce85cf..000000000 --- a/website/content/docs/commands/host-sets/create.mdx +++ /dev/null @@ -1,146 +0,0 @@ ---- -layout: docs -page_title: host-sets create - Command -description: >- - The "host-sets create" command creates a new host set resource. You can create plugin or static type host sets. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets create - -Command: `host-sets create` - -The `host-sets create` command lets you create a new host set. - -## Example - -This example creates a static host set with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary host-sets create static -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -$ boundary host-sets create [type] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - plugin Create a plugin-type host set - static Create a static-type host set -``` - - - -### Usages by type - -You can create plugin or static type host sets. - - - - -The `boundary host-sets create plugin` command lets you create a plugin type host set. - -#### Example - -This example creates a plugin type host set with the name `prodops` and the description `Plugin host-set for ProdOps`, and adds it to a host catalog with the ID `hcst_1234567890`. - -```shell-session -$ boundary host-sets create plugin -host-catalog-id hcst_1234567890 -name prodops -description "Plugin host-set for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary host-sets create plugin [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the plugin host set. -- `-host-catalog-id=` - The host catalog resource to use for the operation. -You can also specify the host catalog using the **BOUNDARY_HOST_CATALOG_ID** environment variable. -- `-name=` - The name to set on the plugin host set. - -#### Attribute options - -- `-attr` - A key=value pair to add to the request's attribute map. -This option can also be a key value only, which sets a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can override the type using `-string-attr`, `-bool-attr`, or `-num-attr`. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-attributes=` - A JSON map value that you can use as the entirety of the request's attributes map. -Usually this value is sourced from a file using the `file://` syntax. -This option is exclusive with other `attr` flags. -- `-bool-attr` - A key=value Boolean value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-num-attr` - A key=value numeric value that you can add to the request's attributes map. -You can specify this value multiple times. -This attribute supports referencing values from files using `file://` and environment variables using `env://`. -- `-string-attr` - A key=value string value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. - -#### Plugin host-set options - -- `-preferred-endpoint=` - If set, indicates which IP address or DNS name out of a host's available options is preferred as an endpoint. -You can specify your preference using `cidr:` or `dns:`. -You can specify multiple preferences to create an order of preferences. -If you do not specify a preference, Boundary chooses a value from all available values using a built-in priority order. -The endpoint preference option may not be valid for all plugin types. -- `-sync-interval=` - The interval of time between sync operations on the host set. -You can enter an integer number of seconds or a string such as `400s`, `5m`, or `6h`. -The interval is applied to the end of the previous sync operation, not the beginning. -If you set the interval to a negative value, it disables synchronization for that host set. -If you set the interval to null, Boundary uses the default value. -The default value may change between releases. - - - - - -The `boundary host-sets create static` command lets you create a static type host set. - -#### Example - -This example creates a static type host set with the name `prodops` and the description `Static host for ProdOps`: - -```shell-session -$ boundary host-sets create static -name prodops -description "Static host-set for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary host-sets create static [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the static host set. -- `-host-catalog-id=` - The host catalog resource to use for the operation. -You can also specify the host catalog using the **BOUNDARY_HOST_CATALOG_ID** environment variable. -- `-name=` - The name to set on the static host set. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/delete.mdx b/website/content/docs/commands/host-sets/delete.mdx deleted file mode 100644 index c78a25c5b..000000000 --- a/website/content/docs/commands/host-sets/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: host-sets delete - Command -description: >- - The "host-sets delete" command deletes a existing host set resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets delete - -Command: `host-sets delete` - -The `host-sets delete` command lets you delete an existing host set by providing the ID. - -## Example - -This example deletes a host set with the ID `_1234567890`: - -```shell-session -$ boundary host-sets delete -id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary host-sets delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the host set you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/index.mdx b/website/content/docs/commands/host-sets/index.mdx deleted file mode 100644 index a5ad92263..000000000 --- a/website/content/docs/commands/host-sets/index.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: docs -page_title: host-sets - Command -description: >- - The "host-sets" command performs operations on Boundary host set resources. A host set represents a collection of hosts with the same access control. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets - -Command: `boundary host-sets` - -The `host-sets` command lets you perform operations on Boundary host set resources. - -## Example - -The following command reads the details of a host set with the ID `hsst_1234567890`: - -```shell-session -$ boundary host-sets read -id hsst_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary host-sets [options] [args] - # ... -Subcommands: - add-hosts Add hosts to the specified host set - create Create a host set - delete Delete a host set - list List a host set - read Read a host set - remove-hosts Remove hosts from the specified host set - set-hosts Set the full contents of the hosts on the specified host set - update Update a host set -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [add-hosts](/boundary/docs/commands/host-sets/add-hosts) -- [create](/boundary/docs/commands/host-sets/create) -- [delete](/boundary/docs/commands/host-sets/delete) -- [list](/boundary/docs/commands/host-sets/list) -- [read](/boundary/docs/commands/host-sets/read) -- [remove-hosts](/boundary/docs/commands/host-sets/remove-hosts) -- [set-hosts](/boundary/docs/commands/host-sets/set-hosts) -- [update](/boundary/docs/commands/host-sets/update) \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/list.mdx b/website/content/docs/commands/host-sets/list.mdx deleted file mode 100644 index 29e3249e8..000000000 --- a/website/content/docs/commands/host-sets/list.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: docs -page_title: host-sets list - Command -description: >- - The "host-sets list" command lists the available host set resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets list - -Command: `boundary host-sets list` - -The `boundary host-sets list` command lets you list the Boundary host sets within a given scope or resource. - -## Example - -This example lists all host sets within the host catalog `_1234567890`: - -```shell-session -$ boundary host-sets list -host-catalog-id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary host-sets list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-host-catalog-id=` - The host catalog resource to use to produce the list. -You can also specify the host catalog using the **BOUNDARY_HOST_CATALOG_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/read.mdx b/website/content/docs/commands/host-sets/read.mdx deleted file mode 100644 index ac3ebe632..000000000 --- a/website/content/docs/commands/host-sets/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: host-sets read - Command -description: >- - The "host-sets read" command retrieves the details of an existing host set resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets read - -Command: `boundary host-sets read` - -The `boundary host-sets read` command lets you read the details of a Boundary host set using its given ID. - -## Example - -This example reads host set details for a host set with the ID `_1234567890`: - -```shell-session -$ boundary host-sets read -id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary host-sets read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the host set whose information you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/remove-hosts.mdx b/website/content/docs/commands/host-sets/remove-hosts.mdx deleted file mode 100644 index 5724f8a69..000000000 --- a/website/content/docs/commands/host-sets/remove-hosts.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: host-sets remove-hosts - Command -description: >- - The "host-sets remove-hosts" command removes hosts from host set resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets remove-hosts - -Command: `host-sets remove-hosts` - -The `host-sets remove-hosts` command lets you remove hosts from host sets, if the types match and it is allowed by the host set type. - -## Example - -This example removes the host `hst_0987654321` from the host set `hsst_1234567890`: - -```shell-session -$ boundary host-sets remove-hosts -id hsst_1234567890 -host hst_0987654321 -``` - -## Usage - - - -```shell-session -$ boundary host-sets remove-hosts [options] [args] -``` - - - -### Command options - -- `-host=` - The hosts you want to remove from the host set. -You can specify multiple hosts. -- `-id=` - The ID of the containing host set you want to remove hosts from. -- `-version=` - The version of the host set you want to remove hosts from. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/set-hosts.mdx b/website/content/docs/commands/host-sets/set-hosts.mdx deleted file mode 100644 index 1e0c75811..000000000 --- a/website/content/docs/commands/host-sets/set-hosts.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: host-sets set-hosts - Command -description: >- - The "host-sets set-hosts" command configures a complete set of hosts on host set resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets set-hosts - -Command: `host-sets set-hosts` - -The `host-sets set-hosts` command lets you configure the complete set of hosts on a host set resource, if the types match and it is allowed by the host set type. - -## Example - -This example sets the host `hst_1234567890` on the host set `hsst_1234567890`: - -```shell-session -$ boundary host-sets set-hosts -id hsst_1234567890 -host hst_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary host-sets set-hosts [options] [args] -``` - - - -### Command options - -- `-host=` - The hosts to configure on the host set. -You can specify multiple hosts. -- `-id=` - The ID of the host set to set hosts on. -- `-version=` The version of the host set you want to set hosts on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/host-sets/update.mdx b/website/content/docs/commands/host-sets/update.mdx deleted file mode 100644 index 5c6c925be..000000000 --- a/website/content/docs/commands/host-sets/update.mdx +++ /dev/null @@ -1,148 +0,0 @@ ---- -layout: docs -page_title: host-sets update - Command -description: >- - The "host-sets update" command updates an existing host set resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# host-sets update - -Command: `host-sets update` - -The `host-sets update` command lets you update an existing host set. - -## Example - -This example updates a static host set with the ID `hsst_1234567890` to add the name `devops` and the description `For DevOps usage`: - -```shell-session -$ boundary host-sets update static -id hsst_1234567890 -name devops -description "For DevOps usage" -``` - -## Usage - - - -```shell-session -$ boundary host-sets update [type] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - plugin Update a plugin-type host set - static Update a static-type host set -``` - - - -### Usages by type - -You can update plugin or static host set types. - - - - -The `boundary host-sets update plugin` command lets you update a plugin type host set. - -#### Example - -This example updates a plugin type host set with the ID `hsplg_1234567890` to add the name `devops` and the description `Plugin host-set for DevOps`. - -```shell-session -$ boundary host-sets update plugin -id hsplg_1234567890 -name "devops" -description "Plugin host-set for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary host-sets update plugin [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the plugin host set. -- `-id=` - The ID of the plugin type host set to update. -- `-name=` - The name to set on the plugin host set. -- `-version=` - The version of the plugin host set to update. -If you do not specify a version, the command automatically performs a check-and-set. - -#### Attribute options - -- `-attr` - A key=value pair to add to the request's attribute map. -This option can also be a key value only, which sets a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can override the type using `-string-attr`, `-bool-attr`, or `-num-attr`. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-attributes=` - A JSON map value that you can use as the entirety of the request's attributes map. -Usually this value is sourced from a file using the `file://` syntax. -This option is exclusive with other `attr` flags. -- `-bool-attr` - A key=value Boolean value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-num-attr` - A key=value numeric value that you can add to the request's attributes map. -You can specify this value multiple times. -This attribute supports referencing values from files using `file://` and environment variables using `env://`. -- `-string-attr` - A key=value string value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. - -#### Plugin host-set options - -- `-preferred-endpoint=` - If set, specifies which IP address or DNS name out of a host's available options is preferred as an endpoint. -You can specify your preference using `cidr:` or `dns:`. -You can specify multiple preferences to create an order of preferences. -If you do not specify a preference, Boundary chooses a value from all available values using a built-in priority order. -The endpoint preference option may not be valid for all plugin types. -- `-sync-interval=` - The interval of time between sync operations on the host set. -You can enter an integer number of seconds or a string such as `400s`, `5m`, or `6h`. -The interval is applied to the end of the previous sync operation, not the beginning. -If you set the interval to a negative value, it disables synchronization for that host set. -If you set the interval to null, Boundary uses the default value. -The default value may change between releases. - - - - - -The `boundary host-sets update static` command lets you update a static type host set. - -#### Example - -This example updates a static type host set with the ID `hsst_1234567890` to add the name `devops` and the description `Static host-set for DevOps`: - -```shell-session -$ boundary host-sets update static -id hsst_1234567890 -name "devops" -description "Static host-set for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary host-sets update static [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the static host set. -- `-id=` - The ID of the static type host set to update. -- `-name=` - The name to set on the static host set. -- `-version=` - The version of the static type host set to update. -If you do not specify a version, the command automatically performs a check-and-set. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/hosts/create.mdx b/website/content/docs/commands/hosts/create.mdx deleted file mode 100644 index 7ba37cd08..000000000 --- a/website/content/docs/commands/hosts/create.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -layout: docs -page_title: hosts create - Command -description: >- - The "hosts create" command creates a new host resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# hosts create - -Command: `hosts create` - -The `hosts create` command lets you create a new host. - -## Example - -This example creates a static host with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary hosts create static -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -$ boundary hosts create [type] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - static Create a static type host. -``` - - - -### Usages by type - -The `boundary hosts create static` command lets you create a static type host. - -#### Example - -This example creates a static type host with the name `prodops`, the description `Static host for ProdOps`, and the address `127.0.0.1`. - -```shell-session -$ boundary hosts create static -name prodops -description "Static host for ProdOps" -address "127.0.0.1" -``` - -#### Usage - - - -```shell-session -$ boundary hosts create static [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the host. -- `-host-catalog-id=` - The host catalog resource to use for the operation. -You can also specify the host catalog using the **BOUNDARY_HOST_CATALOG_ID** environment variable. -- `-name=` - The name to set on the host. - -#### Static host options - -- `-address=` - The address of the static host. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/hosts/delete.mdx b/website/content/docs/commands/hosts/delete.mdx deleted file mode 100644 index 0ee7d61fe..000000000 --- a/website/content/docs/commands/hosts/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: hosts delete - Command -description: >- - The "hosts delete" command deletes an existing host resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# hosts delete - -Command: `hosts delete` - -The `hosts delete` command lets you delete an existing host by providing the ID. - -## Example - -This example deletes a host with the ID `h_1234567890`: - -```shell-session -$ boundary hosts delete -id h_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary hosts delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the host you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/hosts/index.mdx b/website/content/docs/commands/hosts/index.mdx deleted file mode 100644 index 55e7446c3..000000000 --- a/website/content/docs/commands/hosts/index.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: docs -page_title: hosts - Command -description: >- - The "hosts" command performs operations on Boundary host resources. A host represents a computing element with a network address that Boundary can reach. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# hosts - -Command: `boundary hosts` - -The `hosts` command lets you perform operations on Boundary host resources. - -## Example - -The following command reads the details of a host with the ID `hst_1234567890`: - -```shell-session -$ boundary hosts read -id hst_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary hosts [options] [args] - # ... -Subcommands: - create Create a host - delete Delete a host - list List a host - read Read a host - update Update a host -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/hosts/create) -- [delete](/boundary/docs/commands/hosts/delete) -- [list](/boundary/docs/commands/hosts/list) -- [read](/boundary/docs/commands/hosts/read) -- [update](/boundary/docs/commands/hosts/update) diff --git a/website/content/docs/commands/hosts/list.mdx b/website/content/docs/commands/hosts/list.mdx deleted file mode 100644 index 5fc796479..000000000 --- a/website/content/docs/commands/hosts/list.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: docs -page_title: hosts list - Command -description: >- - The "hosts list" command lists the available host resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# hosts list - -Command: `boundary hosts list` - -The `boundary hosts list` command lets you list the Boundary hosts within a given scope or resource. - -## Example - -This example lists all hosts within the host catalog `_1234567890`: - -```shell-session -$ boundary hosts list -host-catalog-id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary hosts list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-host-catalog-id=` - The host catalog resource to use to produce the list. -You can also specify the host catalog using the **BOUNDARY_HOST_CATALOG_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/hosts/read.mdx b/website/content/docs/commands/hosts/read.mdx deleted file mode 100644 index e82601307..000000000 --- a/website/content/docs/commands/hosts/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: hosts read - Command -description: >- - The "hosts read" command retrieves details about a host resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# hosts read - -Command: `boundary hosts read` - -The `boundary hosts read` command lets you read information about a Boundary host using its given ID. - -## Example - -This example reads the information about a host with the ID `h_1234567890`: - -```shell-session -$ boundary hosts read -id h_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary hosts read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the host whose information you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/hosts/update.mdx b/website/content/docs/commands/hosts/update.mdx deleted file mode 100644 index da9307c4a..000000000 --- a/website/content/docs/commands/hosts/update.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: docs -page_title: hosts update - Command -description: >- - The "hosts update" command updates an existing host resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# hosts update - -Command: `hosts update` - -The `hosts update` command lets you update an existing host. - -## Example - -This example updates a host with the ID `hst_1234567890` to add the name `devops` and the description `For DevOps usage`: - -```shell-session -$ boundary hosts update -id hst_1234567890 -name devops -description "For DevOps usage" -``` - -## Usage - - - -```shell-session -$ boundary hosts update [type] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - static Update a static type host. -``` - - - -### Usages by type - -The `boundary hosts update static` command lets you update a static type host. - -#### Example - -This example updates a static type host with the ID `hst_1234567890` to add the name `devops`, the description `Static host for DevOps`, and the address `10.20.30.40`. - -```shell-session -$ boundary hosts update static -id hst_1234567890 -name "devops" -description "Static host for DevOps" -address "10.20.30.40" -``` - -#### Usage - - - -```shell-session -$ boundary hosts update static [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set on the host. -- `-id=` - The ID of the host you want to update. -- `-name=` - The name to set on the host. -- `-version=` - The version of the host to update. -If you do not specify a version, the command performs a check-and-set automatically. - -#### Static host options - -- `-address=` - The address of the static host. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/index.mdx b/website/content/docs/commands/index.mdx deleted file mode 100644 index 426d3ebdf..000000000 --- a/website/content/docs/commands/index.mdx +++ /dev/null @@ -1,433 +0,0 @@ ---- -layout: docs -page_title: Commands (CLI) -description: >- - Learn about Boundary's CLI command structure and behavior. View standard connection options, client options, and environment variables. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary CLI overview - -Boundary's CLI has predictable behavior throughout its various commands. This -page details the common patterns used to help you make better use -of the CLI. - -## CLI command structure - -There are a number of command and subcommand options available. -To see all available command options, run `boundary -h`, -and to see all available subcommand options, run `boundary -h`. - -Below is the typical structure for most Boundary CLI commands: - - - -```text -boundary [options] [args] -``` - - - -- `options` - [Client](#client-options) and [connection](#connection-options) options to specify additional settings -- `args` - API arguments specific to the operation - -### Examples - -The following example shows the use of the [`-addr`](/boundary/docs/api-clients/cli#addr) flag to specify which Boundary controller to send a request to: - -```shell-session -$ boundary authenticate password \ - -addr=https://boundary.example.com:9200 \ - -auth-method-id=ampw_1234567890 -``` - -Instead of specifying the `-addr` flag for every command, you can set an environment variable `BOUNDARY_ADDR=https://boundary.controller.com:9200`. - -## Autocompletion - -Boundary's CLI supports autocompletion, which allows tab completion of commands, -flags, and in some case, the parameters to those flags. - -Run the following command to install autocompletion to the CLI: - -```shell-session -$ boundary config autocomplete install -``` - -If you want to install autocompletion manually using Bash, add the following line in a -`~/.bash_profile` or a similar file: - -```shell-session -complete -C /path/to/boundary boundary -``` - -## Keyring token storage - -Boundary uses various mechanisms, depending on platform, to allow for secure -storage of authentication tokens for later use. Each platform has a -platform-specific option. -On Windows and macOS, the platform-specific options are the defaults. -The Unix password manager [pass](https://www.passwordstore.org/) is available on all platforms. -You can also set `-keyring-type` to `none` or use the environment variable **BOUNDARY_KEYRING_TYPE** to disable storage and retrieval of the token on all platforms. - -Additionally, you can store or retrieve more than one token at once using the -`-token-name` flag or **BOUNDARY_TOKEN_NAME** environment variable. -Configuring multiple tokens lets you store tokens used by different Boundary installations, or other needs. - - - - -On Windows, Boundary uses the default Windows credential store, `wincred`. - -Available keyring types include: - -- `wincred` (default) -- `pass` -- `none` - - - - -On macOS, Boundary uses Keychain via `/usr/bin/security`. -Using this binary lets us keep the Boundary binary statically linked, which we prefer. - -Available keyring types include: - -- `keychain` (default) -- `pass` -- `none` - - - - -On all other platforms, the default is `pass`. -However, you can use an implementation of the [freedesktop.org secret service](https://specifications.freedesktop.org/secret-service/latest/) if it is available via `gnome-keyring`, `kwallet`, or other applications. - -Available keyring types include: - -- `pass` (default) -- `secret-service` -- `none` - - - - -## Map to collections and sub-types - -Generally speaking, Boundary's CLI commands map to the collections they operate -on. For example, when you operate on roles, the command is `boundary roles ...`. - -As a result, the patterns for reading, deleting, and listing are predictable: - -- `boundary read` -- `boundary delete` -- `boundary list` - -The `read` and `delete` commands always operate on a particular resource identifier, so -they require an `-id` parameter. -The `list` command operates on collections, so it requires either a `-scope-id` parameter or, depending on the type, a higher level resource identifier, such as `-auth-method-id`. - -Creating and updating resources may require an extra parameter, if the resource type -is abstract. -An abstract resource type cannot be operated on directly, but must be operated on through an implementation. -As an example, a role is not an abstract type, and does not have various implementations. -Therefore, you can operate directly on a role as demonstrated in the following examples: - -- `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 you create or update a target: - -- `boundary targets create tcp` -- `boundary targets update tcp` - -This format allows the CLI to perform proper presentation and validation of parameters -and functions for the given type. - -Similar to `read`, the `update` command operates on an existing target, so it always requires -an `-id` parameter. Similar to `list`, the `create` command operates on a collection, so it always either requires a `-scope-id` parameter or a parameter that defines the parent resource. - -## Parameter handling - -All parameters specified on the CLI are specified as a Go-style flag with a -single dash, e.g. `-id`. You can specify the arguments to those flags using an -equals sign, as in `-id=r_1234567890`, or a space, like `-id r_1234567890`. - -To see the available parameters, pass the `-h` flag to any command. - -Flags are semi-position dependent. The flags must come **after** the command -definition, but are otherwise order independent. - -For example, the following commands are equivalent: - -- `boundary roles create -scope-id global -name foo` -- `boundary roles create -name foo -scope-id global` - -But the following example results in an error: - -- `boundary roles -name foo -scope-id global create` - -This structure applies to using the `-h` command as well. - -### Clear/default values - -On the CLI, you can use `null` as a value to indicate to Boundary that you want -to unset a value, and revert it to Boundary's default value. -In many cases this default value is empty, but in other cases it's not. -For example, a `name` or `description` parameter is empty by default, but a password auth method's minimum password length is not `0`, but rather `8`. - -Additionally, you are not typically allowed to set string values to the empty string `""`, since specific values must be non-empty. -You should use `null` to clear a value to ensure that you revert it to Boundary's recommended default value. - - - -Boundary uses `null` because the API is JSON. Using `null` as the -value causes the key for the parameter to be inserted into the eventual API -call's JSON object, but with the value set to the JSON `null`. This in turn -informs the controller that the value should be set to its default. Keep in -mind that this is not a direct translation to database `NULL` semantics. - - - -### Connection options - -Every command that results in an API call contains a set of flags that control -connection options, which control TLS and other settings for the connection. - -To print out all available CLI command options, run the command with `-help` or -the `-h` flag. - -```shell-session -$ boundary dev -help -``` - -- `-addr` `(string: "")` - The address of the Boundary controller, as a complete URL, for example `https://boundary.example.com:9200`. You can also specify the address - using the **BOUNDARY_ADDR** environment variable. - -- `-ca-cert` `(string: "")` - The path on the local disk to a single PEM-encoded CA - certificate that is used to verify the controller or worker's server's SSL certificate. - This value takes precedence over `-ca-path`. You can also specify the path using the **BOUNDARY_CACERT** environment variable. - -- `-ca-path` `(string: "")` - The path on the local disk to a directory of - PEM-encoded CA certificates to verify the controller's SSL certificate. - You can also specify the path using the **BOUNDARY_CAPATH** environment variable. - -- `-client-cert` `(string: "")` - The path on the local disk to a single PEM-encoded - CA certificate to use for TLS authentication to the Boundary controller. If - you specify this flag, the `-client-key` flag is also required. You can also specify the path using the **BOUNDARY_CLIENT_CERT** environment variable. - -- `-client-key` `(string: "")` - The path on the local disk to a single PEM-encoded - private key matching the client certificate from `-client-cert`. You can also specify the path using the **BOUNDARY_CLIENT_KEY** environment variable. - -- `-tls-insecure` - If set, disables verification of TLS certificates. - Using this option is highly discouraged as it decreases the security of data - transmissions to and from the Boundary server. The default is `false`. You can also disable verification of TLS certificates using the **BOUNDARY_TLS_INSECURE** environment variable. - -- `-tls-server-name` `(string: "")` - The name to use as the SNI host when - you connect to the Boundary server using TLS. You can also specify the SNI host name using the - **BOUNDARY_TLS_SERVER_NAME** environment variable. - -### Client options - -Every command that results in an API call contains a set of flags that control -client options. Some notable options include the following: - -- `-keyring-type` `(string: "")` - The type of keyring to use. The default value is - `auto`, which uses the Windows credential manager, OSX keychain, or - cross-platform password store, depending on platform. Set this value to `none` to disable - keyring functionality. Available keyring types, depending on platform, are: - - - `wincred` - - `keychain` - - `pass` - - `secret-service` - - You can also specify the keyring type using the **BOUNDARY_KEYRING_TYPE** environment variable. - -- `-output-curl-string` - If set, formats the command that - would have been run as a string using `curl` that you can use directly on the - command line. This is a great way to discover how CLI functions map to API - calls. The default is `false`. - -- `-recovery-config` `(string: "")` - If set, specifies a configuration - file that contains the information necessary to access a KMS configured to be - used for the recovery workflow within a Boundary controller. You can also specify the configuration file using the **BOUNDARY_RECOVERY_CONFIG** environment variable. - -- `-skip-cache-daemon` - If set, skips starting the caching daemon or sending the current used or retrieved token to the caching daemon. -The default is `false`. -You can also specify this value using the BOUNDARY_SKIP_CACHE_DAEMON environment variable. - -- `-token` `(string: "")` - A URL that points to a file on disk `(file://)` or an environment variable `(env://)` from which the token is read. This value overrides the `token-name` parameter. - -- `-token-name` `(string: "")` - The name of the token. When the CLI authenticates, it stores the token - in the platform-specific OS credential store. You can use the `token-name` - parameter to store more than one token at a time. When you specify this - parameter during authentication, Boundary uses the given name as part of the key for - storage. If you specify it for any other command, Boundary uses the corresponding - token for that call. You can also specify the token name using the - **BOUNDARY_TOKEN_NAME** environment variable. - -### Output options - -Nearly every command supports having its success output be formatted as JSON via -`-format json`. For commands that result in an API call, the JSON output is -the exact output from the controller. If you use the output of the CLI in scripts -or as parameters to other tools, **always** use the formatted output. The default text -output is meant for human users, and the formatting or the information included -within that output from the original JSON may change at any time. - -Note that using `-format json` on a `boundary authenticate` command results in -Boundary not saving the token to the system password store. In this case, the -authentication information is only printed to your terminal in JSON format. -You can use the `BOUNDARY_TOKEN` environment variable or `-token` flag to -provide the token in subsequent commands. - - - `-format` `(string: "")` - The given format to print the output. Valid - formats are `table` or `json`. The default value is `table`. You can also specify the format using the `BOUNDARY_CLI_FORMAT` environment variable. - -## Environment variables - -The CLI reads the following environment variables to set behavioral defaults. -Environment variables can alleviate the need to repetitively type a flag. Flags always take -precedence over the environment variables. - -### Connection options - -Boundary includes the following environment variables to help you configure connection options. - -### `BOUNDARY_ADDR` - -The address of the Boundary controller as a complete URL, for example `https://boundary.example.com:9200`. - -### `BOUNDARY_CACERT` - -The path on the local disk to a single PEM-encoded CA certificate to verify the controller -or worker's SSL certificate. This variable takes precedence over the `BOUNDARY_CAPATH` variable or `-ca-path` connection option, if specified. - -### `BOUNDARY_CAPATH` - -The path on the local disk to a directory of PEM-encoded CA certificates to verify the SSL -certificate of the controller. - -### `BOUNDARY_CLIENT_CERT` - -The path on the local disk to a single PEM-encoded CA certificate to use for TLS authentication -to the Boundary controller. If you set the path, you must also specify a client key using the `BOUNDARY_CLIENT_KEY` variable or `-client-key` connection option. - -### `BOUNDARY_CLIENT_KEY` - -The path on the local disk to a single PEM-encoded private key that matches the client certificate -specified by the `BOUNDARY_CLIENT_CERT` variable or the `-client-cert` connection option. - -### `BOUNDARY_SKIP_CACHE_DAEMON` - -Prevents Boundary from starting the caching demon or sending the current used or retrieved token to the caching daemon. -You can use the `BOUNDARY_SKIP_CACHE_DAEMON` variable or the `-skip-cache-daemon` connection option. - -### `BOUNDARY_TLS_INSECURE` - -If set, disables verification of TLS certificates. Using this option is highly discouraged as it -decreases the security of data transmissions to and from the Boundary server. The default value is `false`. - -### `BOUNDARY_TLS_SERVER_NAME` - -The name to use as the SNI host when you connect to the Boundary server using TLS. - -### Client options - -Boundary includes the following environment variables to help you configure client options. - -### `BOUNDARY_KEYRING_TYPE` - -The type of keyring to use. Defaults to `auto` which uses the Windows credential manager, -OSX keychain, or cross-platform password store, depending on the platform. -Set the value to `none` to disable keyring -functionality. Available keyring types, depending on the platform, include: - -- `wincred` -- `keychain` -- `pass` -- `secret-service` - -### `BOUNDARY_RECOVERY_CONFIG` - -If set, determines if the given config file is parsed for a "kms" block with the purpose `recovery`. -If you specify a value, Boundary uses the recovery mechanism to authorize the call. - -### `BOUNDARY_TOKEN_NAME` - -The token name when stored in the system credential store. -You can specify a token name to allow switching user identities for different commands. - -### Connect options - -Boundary includes the following environment variables to help you configure connect options. - -### `BOUNDARY_CONNECT_AUTHZ_TOKEN` - -The authorization string returned from the Boundary controller when an "authorize-session" action is used against a target. -If you set the string to `-`, the command attempts to read in the authorization string from standard input. - -### `BOUNDARY_CONNECT_EXEC` - -If set, executes the given binary after connecting to the worker. -This enviornment variable should be a binary on your path or an absolute path. -If you follow any command flags with ` -- ` (space, two hyphens, space), then any arguments that follow are set directly to the binary. - -### `BOUNDARY_CONNECT_LISTEN_ADDR` - -If set, attempts to bind the listening address to the given value, which must be an IP address. -If the CLI cannot bind the address, the command produces an error. -If you don't set this value, it defaults to the most common IPv4 loopback address, 127.0.0.1. - -### `BOUNDARY_CONNECT_LISTEN_PORT` - -If set, attempts to bind the listening port to the given value, if you set this variable. -If the CLI cannot bind the address, the command produces an error. - -### `BOUNDARY_CONNECT_TARGET_SCOPE_ID` - -The target scope ID, if you authorize the session using scope parameters and target name. -This variable is mutually exclusive with `BOUNDARY_CONNECT_TARGET_SCOPE_NAME`. - -### `BOUNDARY_CONNECT_TARGET_SCOPE_NAME` - -The target scope name, if you authorize the session using scope parameters and target name. -This variable is mutually exclusive with `BOUNDARY_CONNECT_TARGET_SCOPE_ID`. - -### Command options - -Boundary includes the following environment variables to help you configure command options. - -### `BOUNDARY_AUTH_METHOD_ID` - -An auth method ID. - -### `BOUNDARY_LOG_LEVEL` - -The log verbosity level, mostly as a fallback for events. -Supported values, listed in order of more detail to less, are: - -- `trace` -- `debug` -- `info` -- `warn` -- `err` - -### `BOUNDARY_SCOPE_ID` - -The scope to use for the operation. - -### Output options - -Boundary includes the following environment variables to help you configure output options. - -### `BOUNDARY_CLI_FORMAT` - -The given format in which to print the output. Valid formats are `table` and `json`. The default value is `table`. diff --git a/website/content/docs/commands/logout.mdx b/website/content/docs/commands/logout.mdx deleted file mode 100644 index 17c64702a..000000000 --- a/website/content/docs/commands/logout.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: docs -page_title: logout - Command -description: >- - The `logout` command deletes the current token from Boundary and removes it from the local store. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# logout - -Command: `boundary logout` - -The `logout` command deletes the current token from Boundary and removes it from the local store. - -## Examples - -The following example logs out the current user and removes the token from the credential store: - -```shell-session -$ boundary logout -The token was successfully deleted within the Boundary controller. -The token was successfully removed from the local credential store. -``` - -## Usage - - - -```shell-session -$ boundary logout [options] -``` - - - - -### Command options - -- `-keyring-type` `(string: "")` - The type of keyring to use. - This value defaults to `auto` and uses the Windows credential manager, OSX keychain, or - cross-platform password store, depending on the platform. - Set this value to `none` to disable keyring functionality. - Depending on the platform, the following types of keyring are supported: - - - `wincred` - - `keychain` - - `pass` - - `secret-service` - - You can also specify the keyring using the **BOUNDARY_KEYRING_TYPE** environment - variable. - -- `-token-name` `(string: "")` - The name to use when Boundary loads the token from the system credential store. - If you specify a token name, it must correspond to the name you use for authentication. - You can also be specify a token name using the **BOUNDARY_TOKEN_NAME** environment variable. \ No newline at end of file diff --git a/website/content/docs/commands/managed-groups/create.mdx b/website/content/docs/commands/managed-groups/create.mdx deleted file mode 100644 index 73b14881b..000000000 --- a/website/content/docs/commands/managed-groups/create.mdx +++ /dev/null @@ -1,115 +0,0 @@ ---- -layout: docs -page_title: managed-groups create - Command -description: >- - The "managed-groups create" command creates a new managed group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# managed-groups create - -Command: `managed-groups create` - -The `managed-groups create` command lets you create a new managed group. - -## Example - -This example creates a managed group with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary managed-groups create -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -$ boundary managed-groups create [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - ldap Create an ldap managed group - oidc Create an oidc managed group -``` - - - -### Usages by type - -You can create LDAP or OIDC managed groups. - - - - -The `boundary managed-groups create ldap` command lets you create LDAP managed groups. - -#### Example - -This example creates a LDAP managed group using the LDAP group name `admin` and the description `Ldap managed group for ProdOps`: - -```shell-session -$ boundary managed-groups create ldap -group-names admin -description "Ldap managed group for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary managed-groups create ldap [options] [args] -``` - - - -#### Command options - -- `-auth-method-id=` - The auth-method resource to use for creating the managed group. -You can also specify the auth-method resource using the **BOUNDARY_AUTH_METHOD_ID** environment variable. -- `-description=` - The description to set for the LDAP managed group. -- `-group-names=` - The LDAP group names against which an LDAP account's associated groups are evaluated to determine membership. -Boundary evaluates managed group membership when you log in. -You can specify multiple group names. -- `-name=` - The name for the LDAP managed group. - - - - -The `boundary managed-groups create oidc` command lets you create OIDC managed groups. - -#### Example - -This example creates a OIDC managed group using a filter and the description `Oidc managed group for ProdOps`: - -```shell-session -$ boundary managed-groups create oidc -filter '"/token/email" == "doe@example.com"' -description "Oidc managed group for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary managed-groups create oidc [options] [args] -``` - - - -#### Command options - -- `-auth-method-id=` - The auth-method resource to use for creating the managed group. -You can also specify the auth-method resource using the **BOUNDARY_AUTH_METHOD_ID** environment variable. -- `-description=` - The description to set for the OIDC managed group. -- `-filter=` - The filter that defines the criteria against which an account's OIDC token and user info are evaluated to determine if it is a member of the OIDC managed group. -Boundary evaluates managed group membership when you log in. -- `-name=` - The name to set for the OIDC managed group. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/managed-groups/delete.mdx b/website/content/docs/commands/managed-groups/delete.mdx deleted file mode 100644 index ce5982446..000000000 --- a/website/content/docs/commands/managed-groups/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: managed-groups delete - Command -description: >- - The "managed-groups delete" command deletes an existing managed group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# managed-groups delete - -Command: `managed-groups delete` - -The `managed-groups delete` command lets you delete an existing managed group by providing the ID. - -## Example - -This example deletes a managed group with the ID `_1234567890`: - -```shell-session -$ boundary managed-groups delete -id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary managed-groups delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the managed group you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/managed-groups/index.mdx b/website/content/docs/commands/managed-groups/index.mdx deleted file mode 100644 index 2b4e380bf..000000000 --- a/website/content/docs/commands/managed-groups/index.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: docs -page_title: managed-groups - Command -description: >- - The "managed-groups" command performs operations on Boundary managed group resources. Managed groups represent collections of accounts. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# managed-groups - -Command: `boundary managed-groups` - -The `managed-groups` command lets you perform operations on Boundary managed group resources. - -## Example - -The following command creates a managed group with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary managed-groups create -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -Usage: boundary managed-groups [options] [args] - # ... -Subcommands: - create Create a managed group - delete Delete a managed group - list List a managed group - read Read a managed group - update Update a managed group -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/managed-groups/create) -- [delete](/boundary/docs/commands/managed-groups/delete) -- [list](/boundary/docs/commands/managed-groups/list) -- [read](/boundary/docs/commands/managed-groups/read) -- [update](/boundary/docs/commands/managed-groups/update) diff --git a/website/content/docs/commands/managed-groups/list.mdx b/website/content/docs/commands/managed-groups/list.mdx deleted file mode 100644 index 0bce63ec0..000000000 --- a/website/content/docs/commands/managed-groups/list.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: docs -page_title: managed-groups list - Command -description: >- - The "managed-groups list" command lists the available managed group resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# managed-groups list - -Command: `boundary managed-groups list` - -The `boundary managed-groups list` command lets you list the Boundary managed groups within a given scope or resource. - -## Example - -This example lists all managed groups within the scope `s_1234567890`: - -```shell-session -$ boundary managed-groups list -scope-id s_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary managed-groups list [options] [args] -``` - - - -### Command options - -- `auth-method-id=` - The auth method resource to use for this operation. -You can also specify the auth method using the **BOUNDARY_AUTH_METHOD_ID** environment variable. -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/managed-groups/read.mdx b/website/content/docs/commands/managed-groups/read.mdx deleted file mode 100644 index e14a994f3..000000000 --- a/website/content/docs/commands/managed-groups/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: managed-groups read - Command -description: >- - The "managed-groups read" command retrieves the details of a managed group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# managed-groups read - -Command: `boundary managed-groups read` - -The `boundary managed-groups read` command lets you read the details of a Boundary managed group using its given ID. - -## Example - -This example reads the details of a managed group with the ID `_1234567890`: - -```shell-session -$ boundary managed-groups read -id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary managed-groups read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the managed group you want to read information for. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/managed-groups/update.mdx b/website/content/docs/commands/managed-groups/update.mdx deleted file mode 100644 index 575b8e56d..000000000 --- a/website/content/docs/commands/managed-groups/update.mdx +++ /dev/null @@ -1,117 +0,0 @@ ---- -layout: docs -page_title: managed-groups update - Command -description: >- - The "managed-groups update" command updates an existing managed group resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# managed-groups update - -Command: `managed-groups update` - -The `managed-groups update` command lets you update an existing managed group. - -## Example - -This example updates a managed group with the ID `_1234567890` to include the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary managed-groups update -id _1234567890 -name "prodops" -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -$ boundary managed-groups update [options] [args] - -Please see the managed-groups subcommand help for detailed usage information. - -Subcommands: - ldap Update an ldap managed group - oidc Update an oidc managed group -``` - - - -### Usages by type - -You can update LDAP or OIDC managed groups. - - - - -The `boundary managed-groups update ldap` command lets you update LDAP managed groups. - -#### Example - -This example updates a LDAP managed group with the ID `acctldap_1234567890` to add the name `devops` and the description `Ldap managed group for DevOps`: - -```shell-session -$ boundary managed-groups update ldap -id acctldap_1234567890 -name "devops" -description "Ldap managed group for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary managed-groups update ldap [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set for the LDAP managed group. -- `-group-names=` - The LDAP group names against which an LDAP account's associated groups are evaluated to determine membership. -Boundary evaluates managed group membership when you log in. -You can specify multiple group names. -- `-id=` - The ID of the LDAP managed group to update. -- `-name=` - The name to set for the LDAP managed group. -- `-version=` - The version of the LDAP managed group to update. -If you do not specify a version, the command automatically performs a check-and-set. - - - - -The `boundary managed-groups update oidc` command lets you update OIDC managed groups. - -#### Example - -This example updates an OIDC managed group with the ID `acctoidc_1234567890` to add the name `devops` and the description `Oidc managed group for DevOps`: - -```shell-session -$ boundary managed-groups update oidc -id acctoidc_1234567890 -name "devops" -description "Oidc managed group for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary managed-groups update oidc [options] [args] -``` - - - -#### Command options - -- `-description=` - The description to set for the OIDC managed group. -- `-filter=` - The filter that defines the criteria against which an account's OIDC token and user info are evaluated to determine if it is a member of the OIDC managed group. -Boundary evaluates managed group membership when you log in. -- `-id=` - The ID of the OIDC managed group you want to update. -- `-name=` - The name to set for the OIDC managed group. -- `-version=` - The version of the OIDC managed group to update. -If you do not specify a version, the command performs a check-and-set automatically. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/policies/create.mdx b/website/content/docs/commands/policies/create.mdx deleted file mode 100644 index 26a350dfc..000000000 --- a/website/content/docs/commands/policies/create.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -layout: docs -page_title: policies create - Command -description: >- - The "policies create" command creates new policy resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# policies create - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary policies create` - -The `boundary policies create` command lets you create Boundary policies. - -Storage policies codify how long session recordings must be kept and when they should be deleted. -For more information, refer to the [storage policies](/boundary/docs/domain-model/storage-policy) documentation. - -## Example - -This example creates a storage policy with the name `prod` and the description `Prod Storage Policy`. -The policy has a retention period of 10 days, and it will be deleted after 20 days: - -```shell-session -$ boundary policies create storage -name prod -description "Prod Storage Policy" -retain-for-days 10 -delete-after-days 20 -``` - -## Usage - - - -```shell-session -$ boundary policies create storage [options] [args] -``` - - - -### Subcommands - -- `storage` - Creates a storage type policy. - -### Command options - -- `-description=` - The description to set for the policy. -- `-name=` -The name to set on the policy. -The name is optional, but if you set it, it must be unique within the scope ID. -If you do not provide a name, Boundary uses the storage policy ID as the default name. -- `-scope-id=` - Scope in which to create the policy. -The default scope is global. -You can also specify a scope using the **BOUNDARY_SCOPE_ID** environment variable. - -### Storage policy options - -- `-delete-after-days=` - The number of days after which Boundary will delete a session recording. -- `-delete-after-overridable=` - Whether the policy's deletion period can be overridden by downstream policies. -The value can be `true` or `false`. -- `-retain-for-days=` - The number of days a session recording should be retained for. -- `-retain-for-overridable=` - Whether the policy's retention period can be overriden by downstream storage policies. -The value can be `true` or `false`. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/policies/delete.mdx b/website/content/docs/commands/policies/delete.mdx deleted file mode 100644 index 620f87228..000000000 --- a/website/content/docs/commands/policies/delete.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: policies delete - Command -description: >- - The "policies delete" command deletes existing policy resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# policies delete - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary policies delete` - -The `boundary policies delete` command lets you delete Boundary policies. - -## Example - -This example deletes a policy with the ID `p_1234567890`: - -```shell-session -$ boundary policies delete -id p_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary policies delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the policy you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/policies/index.mdx b/website/content/docs/commands/policies/index.mdx deleted file mode 100644 index e597fa218..000000000 --- a/website/content/docs/commands/policies/index.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: docs -page_title: policies - Command -description: >- - The "policies" command performs operations on Boundary policy resources. Policies codify how long Boundary retains session recordings. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# policies - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary policies` - -The `policies` command lets you perform operations on Boundary policies. - -Storage policies codify how long session recordings must be kept and when they should be deleted. -For more information, refer to the [storage policies](/boundary/docs/domain-model/storage-policy) documentation. - -## Example - -The following command reads a policy with the id `pst_1234567890`: - -```shell-session -$ boundary policies read -id chr_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary policies [options] [args] - # ... -Subcommands: - create Create a policy - delete Delete a policy - list List a policy - read Read a policy - update Update a policy -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/policies/create) -- [delete](/boundary/docs/commands/policies/delete) -- [list](/boundary/docs/commands/policies/list) -- [read](/boundary/docs/commands/policies/read) -- [update](/boundary/docs/commands/policies/update) \ No newline at end of file diff --git a/website/content/docs/commands/policies/list.mdx b/website/content/docs/commands/policies/list.mdx deleted file mode 100644 index 3d164b8ed..000000000 --- a/website/content/docs/commands/policies/list.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: docs -page_title: policies list - Command -description: >- - The "policies list" command lists the available policy resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# policies list - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `policies list` - -The `policies list` command lets you list the policies within a given scope or resource. - -## Example - -This example lists all policies within the scope `s_1234567890`. -The `recursive` option means Boundary runs the operation recursively on any child scopes, if applicable: - -```shell-session -$ boundary policies list -scope-id s_1234567890 -recursive -``` - -## Usage - - - -```shell-session -$ boundary policies list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `scope-id=` - The scope from which to list policies. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/policies/read.mdx b/website/content/docs/commands/policies/read.mdx deleted file mode 100644 index 3bc1c5d4b..000000000 --- a/website/content/docs/commands/policies/read.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: policies read - Command -description: >- - The "policies read" command retrieves the details of an existing policy resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# policies read - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary policies read` - -The `boundary policies read` command lets you read information about Boundary policies. - -## Example - -This example reads the details of a policy with the ID `p_1234567890`: - -```shell-session -$ boundary policies read -id p_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary policies read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the policy you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/policies/update.mdx b/website/content/docs/commands/policies/update.mdx deleted file mode 100644 index d11773690..000000000 --- a/website/content/docs/commands/policies/update.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -layout: docs -page_title: policies update - Command -description: >- - The "policies update" command updates existing policy resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# policies update - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary policies update` - -The `boundary policies update` command lets you update Boundary policies. - -Storage policies codify how long session recordings must be kept and when they should be deleted. -For more information, refer to the [storage policies](/boundary/docs/domain-model/storage-policy) documentation. - -## Example - -This example updates a storage policy with the ID `pst_1234567890` to add the name `dev` and the description `Dev Storage Policy`. -The policy has a retention period of 1 day, and it will be deleted after 2 days: - -```shell-session -$ boundary policies update storage -id pst_1234567890 -name dev -description "Dev Storage Policy" -retain-for-days 1 -delete-after-days 2 -``` - -## Usage - - - -```shell-session -$ boundary policies update storage [options] [args] -``` - - - -### Subcommands - -- `storage` - Updates a storage type policy. - -### Command options - -- `-description=` - The description to set for the policy. -- `-id=` - The ID of the policy you want to update. -- `-name=` -The name to set on the policy. -The name is optional, but if you set it, it must be unique within the scope ID. -If you do not provide a name, Boundary uses the storage policy ID as the default name. -- `-version=` - The version of the policy to update. -If you do not specify a version, the command performs a check-and-set automatically. - -### Storage policy options - -- `-delete-after-days=` - The number of days after which Boundary will delete a session recording. -- `-delete-after-overridable=` - Whether the policy's deletion period can be overridden by downstream policies. -The value can be `true` or `false`. -- `-retain-for-days=` - The number of days a session recording should be retained for. -- `-retain-for-overridable=` - Whether the policy's retention period can be overriden by downstream storage policies. -The value can be `true` or `false`. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/read.mdx b/website/content/docs/commands/read.mdx deleted file mode 100644 index 702838e63..000000000 --- a/website/content/docs/commands/read.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: docs -page_title: read - Command -description: >- - The "read" command retrieves details about existing Boundary resources using the resource's ID. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# read - -Command: `boundary read` - -The `boundary read` command lets you read Boundary resources. -It is a generic command that runs a read operation on a Boundary resource using the resource's ID. - -When you run this command, Boundary interprets it as the type-specific command. -For example, if you enter the `read` command with a storage bucket ID, Boundary runs the `storage-buckets read` command. -Help, error, or cURL output from the command may show the full command syntax. - -## Example - -This example reads a storage bucket with the ID `sb_1234567890`: - -```shell-session -$ boundary read -id sb_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary read [resource ID] [args] -``` - - - -### Command options - -- `-id=` - The ID of the resource you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/add-grant-scopes.mdx b/website/content/docs/commands/roles/add-grant-scopes.mdx deleted file mode 100644 index f05a6ee82..000000000 --- a/website/content/docs/commands/roles/add-grant-scopes.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: docs -page_title: roles add-grant-scopes - Command -description: >- - The "roles add-grant-scopes" command adds grant scopes to an existing role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles add-grant-scopes - -Command: `roles add-grant-scopes` - -The `roles add-grant-scopes` command lets you add grant scopes to a role. -You can specify multiple grant scopes per role. - -## Example - -This example adds a grant to a role with the ID `r_1234567890` in the current scope and any children scopes: - -```shell-session -$ boundary roles add-grant-scopes -id r_1234567890 -grant-scope-id "this" -grant-scope-id "children" -``` - -## Usage - - - -```shell-session -$ boundary roles add-grant-scopes [options] [args] -``` - - - -### Command options - -- `-grant-scope-id=` - The scope IDs that inherit grants set on the role. - You can specify the following values: - - `this` - Applies to the current scope. - - `children` - Applies to all direct children of the scope and can only be used with global and org scopes. - - `descendants` - Applies to all descendants of the scope and can only be used with the global scope. - - Boundary does not allow you to create redudnant grant scopes. - For example, if an org scope inherits a grant from the global scope, you cannot apply the same grant directly to the org scope. - -- `-id=` - The ID of the role you want to add grant scopes to. -- `-version=` The version of the role to add grant scopes to. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/add-grants.mdx b/website/content/docs/commands/roles/add-grants.mdx deleted file mode 100644 index ab5a82c83..000000000 --- a/website/content/docs/commands/roles/add-grants.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: docs -page_title: roles add-grants - Command -description: >- - The "roles add-grants" command adds grants to an existing role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles add-grants - -Command: `roles add-grants` - -The `roles add-grants` command lets you add grants to a role. -You can specify multiple grants per role. - -## Example - -This example adds a grant which permits read permissions to a role with the ID `r_1234567890`: - -```shell-session -$ boundary roles add-grants -id r_1234567890 -grant "ids=*;type=*;actions=read" -``` - -## Usage - - - -```shell-session -$ boundary roles add-grants [options] [args] -``` - - - -### Command options - -- `-grant=` - The grants you want to add. -You can specify grants in compact string format or JSON. -If you use JSON, be sure to escape it properly. -You can optionally specify multiple grants. -- `-ids=` - The IDs of the roles you want to add grants to. -You can specify one or more IDs. -If you specify multiple IDs using text, use commas to separate the IDs. -If you specify multiple IDs using JSON, use an array. -- `-version=` The version of the role to add grants to. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/add-principals.mdx b/website/content/docs/commands/roles/add-principals.mdx deleted file mode 100644 index 2a0a89f21..000000000 --- a/website/content/docs/commands/roles/add-principals.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: docs -page_title: roles add-principals - Command -description: >- - The "roles add-principals" command add principals to an existing role resource. Principals can be users or groups. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles add-principals - -Command: `roles add-principals` - -The `roles add-principals` command lets you add principals to a role. -Principals can be users or groups. -You can specify multiple principals per role. - -## Example - -This example adds the principals `$GROUP_ID` to a role with the ID `r_1234567890`: - -```shell-session -$ boundary roles add-principals -id r_1234567890 -principal=$GROUP_ID -``` - -## Usage - - - -```shell-session -$ boundary roles add-principals [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the role you want to add principals to. -- `-principal=` - The principals you want to add to the role. -Principals can be users or groups. -You can optionally specify multiple principals per role. -- `-version=` The version of the role to add principals to. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/create.mdx b/website/content/docs/commands/roles/create.mdx deleted file mode 100644 index 76de7610a..000000000 --- a/website/content/docs/commands/roles/create.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: roles create - Command -description: >- - The "roles create" command creates a new role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles create - -Command: `roles create` - -The `roles create` command lets you create a new role. - -## Example - -This example creates a role with the name `prodops` and the description `Role for ProdOps`: - -```shell-session -$ boundary roles create -name prodops -description "Role for ProdOps" -``` - -## Usage - - - -```shell-session -$ boundary roles create [options] [args] -``` - - - -### Command options - -- `-description=` - The description to assign to the role. -- `-name=` - The name to assign to the role. -- `-scope-id=` - The scope in which you want to create the role. -The default is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/roles/delete.mdx b/website/content/docs/commands/roles/delete.mdx deleted file mode 100644 index 7f5b615e7..000000000 --- a/website/content/docs/commands/roles/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: roles delete - Command -description: >- - The "roles delete" command deletes an existing role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles delete - -Command: `roles delete` - -The `roles delete` command lets you delete a role. - -## Example - -This example deletes a role with the ID `r_1234567890`: - -```shell-session -$ boundary roles delete -id r_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary roles delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the role you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/index.mdx b/website/content/docs/commands/roles/index.mdx deleted file mode 100644 index f1ba5bd03..000000000 --- a/website/content/docs/commands/roles/index.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -layout: docs -page_title: roles - Command -description: >- - The "roles" command performs operations on Boundary role resources. Roles contain collections of permissions which are granted to principals assigned to the role. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles - -Command: `boundary roles` - -The `roles` command lets you perform operations on Boundary role resources. - -## Example - -The following command creates a role with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary roles create -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -Usage: boundary roles [options] [args] - # ... -Subcommands: - add-grant-scopes Add grant scopes to a role - add-grants Add grants to a role - add-principals Add principals (users, groups) to a role - create Create a role - delete Delete a role - list List a role - read Read a role - remove-grant-scopes Remove grant scopes from a role - remove-grants Remove grants from a role - remove-principals Remove principals (users, groups) from a role - set-grant-scopes Set the full contents of grant scopes on a role - set-grants Set the full contents of the grants on a role - set-principals Set the full contents of the principals (users, groups) on a role - update Update a role -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [add-grant-scopes](/boundary/docs/commands/roles/add-grant-scopes) -- [add-grants](/boundary/docs/commands/roles/add-grants) -- [add-principals](/boundary/docs/commands/roles/add-principals) -- [create](/boundary/docs/commands/roles/create) -- [delete](/boundary/docs/commands/roles/delete) -- [list](/boundary/docs/commands/roles/list) -- [read](/boundary/docs/commands/roles/read) -- [remove-grant-scopes](/boundary/docs/commands/roles/remove-grant-scopes) -- [remove-grants](/boundary/docs/commands/roles/remove-grants) -- [remove-principals](/boundary/docs/commands/roles/remove-principals) -- [set-grant-scopes](/boundary/docs/commands/roles/set-grant-scopes) -- [set-grants](/boundary/docs/commands/roles/set-grants) -- [set-principals](/boundary/docs/commands/roles/set-principals) -- [update](/boundary/docs/commands/roles/update) diff --git a/website/content/docs/commands/roles/list.mdx b/website/content/docs/commands/roles/list.mdx deleted file mode 100644 index 4ee7ba947..000000000 --- a/website/content/docs/commands/roles/list.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: docs -page_title: roles list - Command -description: >- - The "roles list" command lists the available role resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles list - -Command: `boundary roles list` - -The `boundary roles list` command lets you list the Boundary roles within a given scope or resource. - -## Example - -This example lists all roles within the scope `s_1234567890`. -The `recursive` option means Boundary runs the operation recursively on any child scopes, if applicable: - -```shell-session -$ boundary roles list -scope-id s_1234567890 -recursive -``` - -## Usage - - - -```shell-session -$ boundary roles list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `-scope-id=` - The enclosing scope from which you want to list the roles. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/read.mdx b/website/content/docs/commands/roles/read.mdx deleted file mode 100644 index 5e6b21a5b..000000000 --- a/website/content/docs/commands/roles/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: roles read - Command -description: >- - The "roles read" command retrieves the details of a role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles read - -Command: `boundary roles read` - -The `boundary roles read` command lets you read the information about a Boundary role using its given ID. - -## Example - -This example reads the details of a role with the ID `r_1234567890`: - -```shell-session -$ boundary roles read -id r_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary roles read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the role you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/remove-grant-scopes.mdx b/website/content/docs/commands/roles/remove-grant-scopes.mdx deleted file mode 100644 index fce20f601..000000000 --- a/website/content/docs/commands/roles/remove-grant-scopes.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: docs -page_title: roles remove-grant-scopes - Command -description: >- - The "roles remove-grant-scopes" command removes grant scopes from an existing role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles remove-grant-scopes - -Command: `roles remove-grant-scopes` - -The `roles remove-grant-scopes` command lets you remove grant scopes from a role. -You can specify multiple grant scopes per role. - -## Example - -This example removes a grant from a role with the ID `r_1234567890` in the current scope and any children scopes: - -```shell-session -$ boundary roles remove-grant-scopes -id r_1234567890 -grant-scope-id "this" -grant-scope-id "children" -``` - - -## Usage - - - -```shell-session -$ boundary roles remove-grant-scopes [options] [args] -``` - - - -### Command options - -- `-grant-scope-id=` - The scope IDs that inherit grants removed from the role. - You can specify the following values: - - `this` - Applies to the current scope. - - `children` - Applies to all direct children of the scope and can only be used with global and org scopes. - - `descendants` - Applies to all descendants of the scope and can only be used with the global scope. - - Boundary does not allow you to create redudnant grant scopes. - For example, if an org scope inherits a grant from the global scope, you cannot apply the same grant directly to the org scope. - -- `-id=` - The ID of the role you want to remove grant scopes from. -- `-version=` The version of the role to remove grant scopes from. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/remove-grants.mdx b/website/content/docs/commands/roles/remove-grants.mdx deleted file mode 100644 index 069189037..000000000 --- a/website/content/docs/commands/roles/remove-grants.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: docs -page_title: roles remove-grants - Command -description: >- - The "roles remove-grants" command removes grants from an existing role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles remove-grants - -Command: `roles remove-grants` - -The `roles remove-grants` command lets you remove grants from a role. -You can specify multiple grants per role. - -## Example - -This example removes a grant which permits read permissions from a role with the ID `r_1234567890`: - -```shell-session -$ boundary roles remove-grants -id r_1234567890 -grant "ids=*;type=*;actions=read" -``` - -## Usage - - - -```shell-session -$ boundary roles remove-grants [options] [args] -``` - - - -### Command options - -- `-grant=` - The grants you want to remove from the role. -You can specify grants in compact string format or JSON. -If you use JSON, be sure to escape it properly. -You can optionally specify multiple grants. -- `-ids=` - The IDs of the roles you want to remove grants from. -You can specify one or more IDs. -If you specify multiple IDs using text, use commas to separate the IDs. -If you specify multiple IDs using JSON, use an array. -- `-version=` - The version of the role you want to remove grants from. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/remove-principals.mdx b/website/content/docs/commands/roles/remove-principals.mdx deleted file mode 100644 index 0e2c6a4c8..000000000 --- a/website/content/docs/commands/roles/remove-principals.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: docs -page_title: roles remove-principals - Command -description: >- - The "roles remove-principals" command removes principals from an existing role resource. Principals can be users or groups. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles remove-principals - -Command: `roles remove-principals` - -The `roles remove-principals` command lets you remove principals from a role. -Principals can be users or groups. -You can specify multiple principals per role. - -## Example - -This example removes the principals `sg_1234567890` from a role with the ID `r_1234567890`: - -```shell-session -$ boundary roles remove-principals -id r_1234567890 -principal sg_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary roles remove-principals [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the role you want to remove principals from. -- `-principal=` - The principals you want to remove from the role. -Principals can be users or groups. -You can optionally specify multiple principals per role. -- `-version=` The version of the role to remove principals from. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/set-grant-scopes.mdx b/website/content/docs/commands/roles/set-grant-scopes.mdx deleted file mode 100644 index d6eb3ef20..000000000 --- a/website/content/docs/commands/roles/set-grant-scopes.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: docs -page_title: roles set-grant-scopes - Command -description: >- - The "roles set-grant-scopes" command sets the complete set of grant scopes on an existing role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles set-grant-scopes - -Command: `roles set-grant-scopes` - -The `roles set-grant-scopes` command lets you set the complete set of grant scopes on a role. -You can specify multiple grant scopes per role. - -## Example - -This example sets the complete set of grant scopes on a role with the ID `r_1234567890` in the current scope and any children scopes: - -```shell-session -$ boundary roles set-grant-scopes -id r_1234567890 -grant-scope-id "this" -grant-scope-id "children" -``` - -## Usage - - - -```shell-session -$ boundary roles set-grant-scopes [options] [args] -``` - - - -### Command options - -- `-grant-scope-id=` - The scope IDs that inherit grants set on the role. - You can specify the following values: - - `this` - Applies to the current scope. - - `children` - Applies to all direct children of the scope and can only be used with global and org scopes. - - `descendants` - Applies to all descendants of the scope and can only be used with the global scope. - - Boundary does not allow you to create redudnant grant scopes. - For example, if an org scope inherits a grant from the global scope, you cannot apply the same grant directly to the org scope. - -- `-id=` - The ID of the role you want to set grant scopes on. -- `-version=` The version of the role to set grant scopes on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/roles/set-grants.mdx b/website/content/docs/commands/roles/set-grants.mdx deleted file mode 100644 index 2ce24d40e..000000000 --- a/website/content/docs/commands/roles/set-grants.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: docs -page_title: roles set-grants - Command -description: >- - The "roles set-grants" command sets the complete set of grants on an existing role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles set-grants - -Command: `roles set-grants` - -The `roles set-grants` command lets you set the complete set of grants on a role. -You can specify multiple grants per role. - -## Example - -This example sets multiple grants which allow read and list permissions for a role with the ID `r_1234567890`: - -```shell-session -$ boundary roles set-grants -id r_1234567890 -grant "ids=*;type=*;actions=read" -grant - "ids=*;type=*;actions=list" -``` - -## Usage - - - -```shell-session -$ boundary roles set-grants [options] [args] -``` - - - -### Command options - -- `-grant=` - The grants you want to set on the role. -You can specify grants in compact string format or JSON. -If you use JSON, be sure to escape it properly. -You can optionally specify multiple grants. -- `-ids=` - The IDs of the roles you want to set grants on. -You can specify one or more IDs. -If you specify multiple IDs using text, use commas to separate the IDs. -If you specify multiple IDs using JSON, use an array. -- `-version=` The version of the role to set grants on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/set-principals.mdx b/website/content/docs/commands/roles/set-principals.mdx deleted file mode 100644 index 3d251550c..000000000 --- a/website/content/docs/commands/roles/set-principals.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: docs -page_title: roles set-principals - Command -description: >- - The "roles set-principals" command sets the complete set of principals on an existing role resource. Principals can be users or groups. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles set-principals - -Command: `roles set-principals` - -The `roles set-principals` command lets you set the complete set of principals on a role. -Principals can be users or groups. -You can specify multiple principals per role. - -## Example - -This example sets the principals `u_anon` and `sg_1234567890` on a role with the ID `r_1234567890`: - -```shell-session -$ boundary roles set-principals -id r_1234567890 -principal u_anon -principal sg_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary roles set-principals [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the role you want to set principals on. -- `-principal=` - The principals you want to set on the role. -Principals can be users or groups. -You can optionally specify multiple principals per role. -- `-version=` The version of the role to set principals on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/roles/update.mdx b/website/content/docs/commands/roles/update.mdx deleted file mode 100644 index a4022be99..000000000 --- a/website/content/docs/commands/roles/update.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: roles update - Command -description: >- - The "roles update" command updates an existing role resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# roles update - -Command: `roles update` - -The `roles update` command lets you update an existing role. - -## Example - -This example updates a role with the ID `r_1234567890` to add the name `devops` and the description `Role for DevOps`: - -```shell-session -$ boundary roles update -id r_1234567890 -name "devops" -description "Role for DevOps" -``` - -## Usage - - - -```shell-session -$ boundary roles update [options] [args] -``` - - - -### Command options - -- `-description=` - The description to set on the role. -- `-id=` - The ID of the role you want to update. -- `-name=` - The name to set on the role. -- `-version=` - The version of the role you want to update. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/scopes/create.mdx b/website/content/docs/commands/scopes/create.mdx deleted file mode 100644 index 159dbac4e..000000000 --- a/website/content/docs/commands/scopes/create.mdx +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: docs -page_title: scopes create - Command -description: >- - The "scopes create" command creates a new scope resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes create - -Command: `scopes create` - -The `scopes create` command lets you create a new scope. - -## Example - -This example creates a scope with the name `prodops` and the description `Scope for ProdOps`: - -```shell-session -$ boundary scopes create -name prodops -description "Scope for ProdOps" -``` - -## Usage - - - -```shell-session -$ boundary scopes create [options] [args] -``` - - - -### Command options - -- `-description=` - The description to set on the scope. -- `-name=` - The name to set on the scope. -- `-scope-id=` - The scope in which you want to create the scope. -The default is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. -- `-skip-admin-role-creation` - If set, Boundary does not create a role that grants the current user administrative access to the newly created scope. -The default value is `false`. -- `-skip-default-role-creation` - If set, Boundary does not create a role that grants the anonymous user access to log in to auth methods and other actions within the newly created scope. -The default value is `false`. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/scopes/delete.mdx b/website/content/docs/commands/scopes/delete.mdx deleted file mode 100644 index 9136c9b1e..000000000 --- a/website/content/docs/commands/scopes/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: scopes delete - Command -description: >- - The "scopes delete" command deletes an existing scope resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes delete - -Command: `scopes delete` - -The `scopes delete` command lets you delete an existing scope by providing the ID. - -## Example - -This example deletes a scope with the ID `o_1234567890`: - -```shell-session -$ boundary scopes delete -id o_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary scopes delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the scope you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/scopes/destroy-key-version.mdx b/website/content/docs/commands/scopes/destroy-key-version.mdx deleted file mode 100644 index 294eabee9..000000000 --- a/website/content/docs/commands/scopes/destroy-key-version.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: scopes destroy-key-version - Command -description: >- - The "scopes destroy-key-version" destroys a key version in the scope resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes destroy-key-version - -Command: `scopes destroy-key-version` - -The `scopes destroy-key-version` command lets you destroy a key version in the scope. -You cannot destroy the key version that is currently active. -When you run this command, it may start an asynchronous job to re-encrypt any existing data that was encrypted with the key version that you destroy. -You can check the progress of the key destruction job using the [`boundary scopes list-key-version-destruction-jobs`](/boundary/docs/commands/scopes/list-key-version-destruction-jobs) command. - -## Example - -This example destroys a key version with the ID `krkv_123456789` in the scope `global`: - -```shell-session -$ boundary scopes destroy-key-version -scope-id global -key-version-id krkv_123456789 -``` - -## Usage - - - -```shell-session -$ boundary scopes destroy-key-version [args] -``` - - - -### Command options - -- `-key-version-id=` - The ID of the key version you want to destroy. -- `-scope-id=` - The ID of the scope in which the key version you want to destroy exists. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/scopes/index.mdx b/website/content/docs/commands/scopes/index.mdx deleted file mode 100644 index e095ec687..000000000 --- a/website/content/docs/commands/scopes/index.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: docs -page_title: scopes - Command -description: >- - The "scopes" command performs operations on Boundary scope resources. Scopes are permission boundaries modeled as containers. They group resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes - -Command: `boundary scopes` - -The `scopes` command lets you perform operations on Boundary scope resources. - -## Example - -The following command creates a scope with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary scopes create -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -Usage: boundary scopes [options] [args] - # ... -Subcommands: - create Create a scope - delete Delete a scope - destroy-key-version Destroy a key version within a scope - list List a scope - list-key-version-destruction-jobs List all pending key version destruction jobs within a scope - list-keys List keys within a scope - read Read a scope - rotate-keys Rotate the keys within a scope - update Update a scope -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/scopes/create) -- [delete](/boundary/docs/commands/scopes/delete) -- [destroy-key-version](/boundary/docs/commands/scopes/destroy-key-version) -- [list](/boundary/docs/commands/scopes/list) -- [list-key-version-destruction-jobs](/boundary/docs/commands/scopes/list-key-version-destruction-jobs) -- [list-keys](/boundary/docs/commands/scopes/list-keys) -- [read](/boundary/docs/commands/scopes/read) -- [rotate-keys](/boundary/docs/commands/scopes/rotate-keys) -- [update](/boundary/docs/commands//scopes/update) \ No newline at end of file diff --git a/website/content/docs/commands/scopes/list-key-version-destruction-jobs.mdx b/website/content/docs/commands/scopes/list-key-version-destruction-jobs.mdx deleted file mode 100644 index 41495ed27..000000000 --- a/website/content/docs/commands/scopes/list-key-version-destruction-jobs.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: docs -page_title: scopes list-key-version-destruction-jobs - Command -description: >- - The "scopes list-key-version-destruction-jobs" lists all pending key version destruction jobs within a scope resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes list-key-version-destruction-jobs - -Command: `scopes list-key-version-destruction-jobs` - -When the [key version destruction job](/boundary/docs/commands/scopes/destroy-key-version) runs, it asynchronously re-encrypts any existing data within the latest key version before it destroys the key version you selected for destruction. -The `scopes list-key-version-destruction jobs` command lists all pending key version destruction jobs within a scope. - -## Example - -This example lists all pending key version destruction jobs within the scope `global`: - -```shell-session -$ boundary scopes list-key-version-destruction-jobs -scope-id global -``` - -## Usage - - - -```shell-session -$ boundary scopes list-key-version-destruction-jobs [args] -``` - - - -### Command options - -- `-scope-id=` - The ID of the scope from which to list key version destruction jobs. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/scopes/list-keys.mdx b/website/content/docs/commands/scopes/list-keys.mdx deleted file mode 100644 index 431c505e6..000000000 --- a/website/content/docs/commands/scopes/list-keys.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: scopes list-keys - Command -description: >- - The "scopes list-keys" command lists the available keys within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes list-keys - -Command: `boundary scopes list-keys` - -The `boundary scopes list-keys` command lets you list the keys within a given scope or resource. - -## Example - -This example lists all keys within the scope `s_1234567890`: - -```shell-session -$ boundary scopes list-keys -scope-id s_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary scopes list-keys [args] -``` - - - -### Command options - -- `-scope-id=` - The ID of the enclosing scope from which to list the keys. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/scopes/list.mdx b/website/content/docs/commands/scopes/list.mdx deleted file mode 100644 index 93dc5239b..000000000 --- a/website/content/docs/commands/scopes/list.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: docs -page_title: scopes list - Command -description: >- - The "scopes list" command lists the available scope resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes list - -Command: `boundary scopes list` - -The `boundary scopes list` command lets you list the Boundary scopes within a given scope or resource. - -## Example - -This example lists all scopes within the scope `s_1234567890`. -The `recursive` option means Boundary runs the operation recursively on any child scopes, if applicable: - -```shell-session -$ boundary scopes list -scope-id s_1234567890 -recursive -``` - -## Usage - - - -```shell-session -$ boundary scopes list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `-scope-id=` - The enclosing scope from which to list the scopes. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/scopes/read.mdx b/website/content/docs/commands/scopes/read.mdx deleted file mode 100644 index d28f644e8..000000000 --- a/website/content/docs/commands/scopes/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: scopes read - Command -description: >- - The "scopes read" command retrieves the details about a scope resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes read - -Command: `boundary scopes read` - -The `boundary scopes read` command lets you read the details about a Boundary scope using its given ID. - -## Example - -This example reads the details about a scope with the ID `o_1234567890`: - -```shell-session -$ boundary scopes read -id o_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary scopes read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the scope you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/scopes/rotate-keys.mdx b/website/content/docs/commands/scopes/rotate-keys.mdx deleted file mode 100644 index 013a270a0..000000000 --- a/website/content/docs/commands/scopes/rotate-keys.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: scopes rotate-keys - Command -description: >- - The "scopes rotate-keys" command deactivates a scope's current KEK and DEKs, and then activates a new set of keys for the scope resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes rotate-keys - -Command: `boundary scopes rotate-keys` - -The `boundary scopes rotate-keys` command lets you replace a scope's current KEK and DEKs with a new set of keys. - -## Example - -This example rotates all keys within the scope `s_1234567890`: - -```shell-session -$ boundary scopes rotate-keys -scope-id s_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary scopes rotate-keys [args] -``` - - - -### Command options - -- `-rewrap` - If set, re-encrypts DEKs with the new KEK. -The default value is `false`. -- `-scope-id=` - The enclosing scope in which you want to rotate the keys. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/scopes/update.mdx b/website/content/docs/commands/scopes/update.mdx deleted file mode 100644 index 150e9133b..000000000 --- a/website/content/docs/commands/scopes/update.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: docs -page_title: scopes update - Command -description: >- - The "scopes update" command updates an existing scope resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# scopes update - -Command: `scopes update` - -The `scopes update` command lets you update an existing scope. - -## Example - -This example updates a scope with the ID `o_1234567890` to include the name `devops` and the description `Scope for DevOps`: - -```shell-session -$ boundary scopes update -id o_1234567890 -name "devops" -description "Scope for DevOps" -``` - -## Usage - - - -```shell-session -$ boundary scopes update [options] [args] -``` - - - -### Command options - -- `-description=` - The description to set on the scope. -- `-id=` - The ID of the scope to update. -- `-name=` - The name to set on the scope. -- `-primary-auth-method-id=` - The primary auth method ID for the scope. -The primary auth method is allowed to create users on the initial login. -It is also used as a source for the account full name and email used for the scope's users. -- `-version=` - The version of the scope to update. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/search/index.mdx b/website/content/docs/commands/search/index.mdx deleted file mode 100644 index b586c7da4..000000000 --- a/website/content/docs/commands/search/index.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -layout: docs -page_title: search - Command -description: >- - The "search" command searches the local cache for information about session and target resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# search - -Command: `boundary search` - -The `search` command lets you search Boundary's local cache for information about sessions and targets. - -For more information, refer to [Boundary `list` vs `search`](/boundary/docs/api-clients/client-cache/#boundary-list-vs-search). - -## Examples - -The following example searches the local cache for all TCP targets that have the word "Generated" in the name. - -```shell-session -$ boundary search -resource targets -query 'type="tcp" and name%"Generated"' -``` - -**Example output:** - - - -```plaintext -Target information: - ID: ttcp_0987654321 - Scope ID: p_1234567890 - Version: 2 - Type: tcp - Name: Generated target using host sources - Description: Provides a target using host sources in Boundary - Authorized Actions: - no-op - read - update - delete - add-host-sources - set-host-sources - remove-host-sources - add-credential-sources - set-credential-sources - remove-credential-sources - authorize-session - - ID: ttcp_1234567890 - Scope ID: p_1234567890 - Version: 1 - Type: tcp - Name: Generated target with a direct address - Description: Provides an initial target using an address in Boundary - Address: 127.8.0.1 - Authorized Actions: - no-op - read - update - delete - add-host-sources - set-host-sources - remove-host-sources - add-credential-sources - set-credential-sources - remove-credential-sources - authorize-session -``` - - - - - -## Usage - - - -```shell-session -$ boundary search [options] -``` - - - -### Command options - -- `-resource` `(string: "")` - The type of resource you want to search the cache for. -This is a required field. -You can search for the following: - - `sessions` - Searches for any sessions associated with the user. - - `targets` - Searches for any targets associated with the user. - -- `-query` `(optional)` - If set, specifies the [MQL](https://github.com/hashicorp/mql/blob/main/GRAMMAR.md) query you want to use to search for the indexed fields on the resource you specified. -If you do not provide a `-query` value, the search lists all resources of the specified type that have been cached. -The available fields that can be used in the search query for each resource include: - - - targets: id, name, description, type, address, scope_id - - sessions: id, type, endpoint, status, scope_id, target_id, user_id - -- `token` - A URL that points to a file on disk (file://) from which Boundary reads a token or an environment variable (env://) from which the token will be read. -If you set this parameter, it overrides the `token-name` parameter. -- `token-name` - If specified, Boundary uses the value in this parameter as the name when it stores the token in the system credential store. -You can use this value to switch user identities for different commands. -You can also specify a token name using the **BOUNDARY_TOKEN_NAME** environment variable. - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/server.mdx b/website/content/docs/commands/server.mdx deleted file mode 100644 index a27987888..000000000 --- a/website/content/docs/commands/server.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -layout: docs -page_title: server - Command -description: >- - The `server` command starts a server with a configuration file. The command can start a controller, worker, or both. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# server - -Command: `boundary server` - -The `server` command starts a server with a configuration file. -You can use it to start a controller, worker, or both. -Refer to the [configuration](/boundary/docs/configuration) page to learn more about configuring Boundary. - -## Examples - -The following example starts the worker server by providing the full path to the worker config file, `/home/ubuntu/boundary/downstream-worker.hcl`: - -```shell-session -$ boundary server -config="/home/ubuntu/boundary/downstream-worker.hcl" -``` - -**Example output:** - - - -```shell-session -==> Boundary server configuration: - - Cgo: disabled - Listener 1: tcp (addr: "0.0.0.0:9202", max_request_duration: "1m30s", purpose: "proxy") - Log Level: info - Mlock: supported: true, enabled: false - Version: Boundary v0.13.0+ent - Version Sha: d8aaf3500f65fb7d605d27db232457fe3a26bf43 - Worker Auth Current Key Id: harddisk-stunt-serve-shininess-essay-courier-manger-deface - Worker Auth Registration Request: GzusqckarbczHoLGQ4UA25uSRvw33DNChURoR2CF1BXRUm7frqLSncV64LeYWxQDCstE25Vj6QSBQ1aGh8BUo1dnz899rt3LgktzRGU4vWYcHmvPQKpsSUTJqA42nJxBfpxopKyCvzxZNxgbTSw5BNN9BUsnoy58niY5ui38NhKPKdmKjVDoU4TRVd4Bvti4F2H5C8pBB3qhY6qyeaSRoKjDcEzdTa7S3JicVzbtmfWnfyMLTJ21jRypH2S5haK4RBhFP319mw6DYNhVo7opBkBoW2FaaJbeowGj8b5wFX - Worker Auth Storage Path: /home/ubuntu/boundary/worker2 - Worker Public Proxy Addr: 44.204.92.85:9202 - -==> Boundary server started! Log data will stream in below: -... -``` - - - - -## Usage - - - -```shell-session -$ boundary server -config=/etc/boundary.d/controller.hcl -``` - - - - -### Command options - -- `-config` `(string: "")` - The path to the configuration file. -If you use HCL formatting, you can specify multiple configuration files. - -- `-config-kms` `(string: "")` - The path to a configuration file that contains a "kms" - block marked for `config` purpose. - The kms block decrypts the main configuration file. - If you do not set a kms block, Boundary looks for the kms block in the main - configuration file, which has some drawbacks; see the help output for - "boundary config encrypt -h" for details. - -- `-log-format` `(string: "")` - The log format to use, mostly as a fallback for events. - Supported values are `standard` and `json`. - -- `-log-level` `(string: "")` - The log verbosity level to use, mostly as a fallback for - events. The following values are supported, in order of more detail to less. - - - `trace` - - `debug` - - `info` - - `warn` - - `err` - - You can also be specify log verbosity level using the **BOUNDARY_LOG_LEVEL** environment variable. \ No newline at end of file diff --git a/website/content/docs/commands/session-recordings/delete.mdx b/website/content/docs/commands/session-recordings/delete.mdx deleted file mode 100644 index f79f2a2a8..000000000 --- a/website/content/docs/commands/session-recordings/delete.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: session-recordings delete - Command -description: >- - The "session-recordings delete" command deletes an existing session recording resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# session-recordings delete - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `session-recordings delete` - -The `session-recordings delete` command lets you delete a session recording. - -## Example - -This example deletes a session recording with the ID `sr_1234567890`: - -```shell-session -$ boundary session-recordings delete -id sr_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary session-recordings delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the session recording you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/session-recordings/download.mdx b/website/content/docs/commands/session-recordings/download.mdx deleted file mode 100644 index 7c8a48c64..000000000 --- a/website/content/docs/commands/session-recordings/download.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: docs -page_title: session-recordings download - Command -description: >- - The "session-recordings download" command downloads session recording resources so that you can view them. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# session-recordings download - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary session-recordings download` - -The `boundary session-recordings download` command lets you download a Boundary session recording. - -## Example - -The following command downloads a session recording with the id `chr_1234567890`: - -```shell-session -$ boundary session-recordings download -id chr_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary session-recordings download [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the session recording resource you want to download. -- `-no-clobber` - If set, prevents downloads from overwriting existing files. -This option is aliased as `-nc`. -The default value is `false`. -- `-output=` - If set, indicates an optional output file for the download. -If you do not provide a value, the recording ID is given a ".cast" extension. -Use `-` for stdout. -This option is aliased as `-o`. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/session-recordings/index.mdx b/website/content/docs/commands/session-recordings/index.mdx deleted file mode 100644 index 4852c0009..000000000 --- a/website/content/docs/commands/session-recordings/index.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: docs -page_title: session-recordings - Command -description: >- - The "session-recordings" command performs operations on Boundary session recording resources. Session recordings capture sessions between users and targets. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# session-recordings - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary session-recordings` - -The `session-recordings` command lets you perform operations on Boundary session recording resources. - -## Example - -The following command downloads a session recording with the id `chr_1234567890`: - -```shell-session -$ boundary session-recordings download -id chr_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary session-recordings [options] [args] - # ... -Subcommands: - delete Delete a session recording - download Download a session recording - list List a session recording - read Read a session recording - reapply-storage-policy Reapply storage policy to a session recording -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [delete](/boundary/docs/commands/session-recordings/delete) -- [download](/boundary/docs/commands/session-recordings/download) -- [list](/boundary/docs/commands/session-recordings/list) -- [read](/boundary/docs/commands/session-recordings/read) -- [reapply-storage-policy](/boundary/docs/commands/session-recordings/reapply-storage-policy) \ No newline at end of file diff --git a/website/content/docs/commands/session-recordings/list.mdx b/website/content/docs/commands/session-recordings/list.mdx deleted file mode 100644 index c07a85b39..000000000 --- a/website/content/docs/commands/session-recordings/list.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: docs -page_title: session-recordings list - Command -description: >- - The "session-recordings list" command lists the available session recording resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# session-recordings list - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary session-recordings list` - -The `boundary session-recordings list` command lets you list the Boundary session recordings within a given scope or resource. - -## Example - -This example lists all session recordings within the scope `s_1234567890`. -The `recursive` option means Boundary runs the operation recursively on any child scopes, if applicable: - -```shell-session -$ boundary session-recordings list -scope-id s_1234567890 -recursive -``` - -## Usage - - - -```shell-session -$ boundary session-recordings list [options] [args] -``` - - - -### Command options - -- `recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `scope-id=` - The scope from which you want to list the session recordings. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/session-recordings/read.mdx b/website/content/docs/commands/session-recordings/read.mdx deleted file mode 100644 index 0c47e0603..000000000 --- a/website/content/docs/commands/session-recordings/read.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: session-recordings read - Command -description: >- - The "session-recordings read" command retrieves the details of a session recording resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# session-recordings read - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary session-recordings read` - -The `boundary session-recordings read` command lets you read information about a Boundary session recording by providing the ID. - -## Example - -This example reads the details of a session recording with the ID `sr_1234567890`: - -```shell-session -$ boundary session-recordings read -id sr_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary session-recordings read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the session recording you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/session-recordings/reapply-storage-policy.mdx b/website/content/docs/commands/session-recordings/reapply-storage-policy.mdx deleted file mode 100644 index 93e85bdf2..000000000 --- a/website/content/docs/commands/session-recordings/reapply-storage-policy.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: session-recordings reapply-storage-policy - Command -description: >- - The "session-recordings reapply-storage-policy" command reapplies a storage policy to a session recording resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# session-recordings reapply-storage-policy - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `session-recordings reapplly-storage-policy` - -The `session-recordings reapply-storage-policy` command lets you reapply a storage policy to a session recording. - -## Example - -This example reapplies a storage policy to a session recording with the ID `sr_1234567890`: - -```shell-session -$ boundary session-recordings reapply-storage-policy -id sr_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary session-recordings delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the session recording you want to reapply the storage policy to. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/sessions/cancel.mdx b/website/content/docs/commands/sessions/cancel.mdx deleted file mode 100644 index f488f173a..000000000 --- a/website/content/docs/commands/sessions/cancel.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: docs -page_title: sessions cancel - Command -description: >- - The "sessions cancel" command cancels a session resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# sessions cancel - -Command: `boundary sessions cancel` - -The `boundary sessions cancel` command lets you cancel a Boundary session by providing the ID. -If the session is already canceled, the command succeeds with no effect. - -## Example - -This example cancels a session with the ID `s_1234567890`: - -```shell-session -$ boundary sessions cancel -id s_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary sessions cancel [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the session you want to cancel. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/sessions/index.mdx b/website/content/docs/commands/sessions/index.mdx deleted file mode 100644 index e97792e3d..000000000 --- a/website/content/docs/commands/sessions/index.mdx +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: docs -page_title: sessions - Command -description: >- - The "sessions" command performs operations on Boundary session resources. A session is a set of related connections between a user and host. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# sessions - -Command: `boundary sessions` - -The `sessions` command lets you perform operations on Boundary session resources. - -## Example - -The following command reads the details of a session with the id `s_1234567890`: - -```shell-session -$ boundary sessions read -id s_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary sessions [options] [args] - # ... -Subcommands: - cancel Cancel a session - list List a session - read Read a session -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [cancel](/boundary/docs/commands/sessions/cancel) -- [list](/boundary/docs/commands/sessions/list) -- [read](/boundary/docs/commands/sessions/read) \ No newline at end of file diff --git a/website/content/docs/commands/sessions/list.mdx b/website/content/docs/commands/sessions/list.mdx deleted file mode 100644 index 474dd7f7c..000000000 --- a/website/content/docs/commands/sessions/list.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -layout: docs -page_title: sessions list - Command -description: >- - The "sessions list" command lists the available session resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# sessions list - -Command: `boundary sessions list` - -The `boundary sessions list` command lets you list the Boundary sessions within a given scope or resource. - -## Example - -This example lists all sessions within the scope `s_1234567890`. -The `recursive` option means Boundary runs the operation recursively on any child scopes, if applicable: - -```shell-session -$ boundary sessions list -scope-id s_1234567890 -recursive -``` - -## Usage - - - -```shell-session -$ boundary sessions list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-include-terminated` - If set, Boundary includes terminated sessions in the `list` results. -The default value is `false`. -This field has been deprecated and will be removed from a future release. -Boundary will include terminated sessions in all list results, unless you filter them out. -- `recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `scope-id=` - The scope from which to list sessions. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/sessions/read.mdx b/website/content/docs/commands/sessions/read.mdx deleted file mode 100644 index 42a0d7b77..000000000 --- a/website/content/docs/commands/sessions/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: sessions read - Command -description: >- - The "sessions read" command retrieves the details of a session resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# sessions read - -Command: `boundary sessions read` - -The `boundary sessions read` command lets you read information a Boundary session by providing the ID. - -## Example - -This example reads the details of a session with the ID `s_1234567890`: - -```shell-session -$ boundary sessions read -id s_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary sessions read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the session you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/storage-buckets/create.mdx b/website/content/docs/commands/storage-buckets/create.mdx deleted file mode 100644 index a5f4b93aa..000000000 --- a/website/content/docs/commands/storage-buckets/create.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: docs -page_title: storage-buckets create - Command -description: >- - The "storage-buckets create" command creates new storage bucket resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# storage-buckets create - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary storage-buckets create` - -The `boundary storage-buckets create` command lets you create Boundary storage buckets. -Storage buckets are Boundary resources that represent storage resources in an external store. - -## Example - -This example creates a storage bucket with the name `prodops` and the description `storage bucket for ProdOps`: - -```shell-session -$ boundary storage-buckets create -name prodops -description "storage bucket for ProdOps" -``` - -## Usage - - - -```shell-session -$ boundary storage-buckets create [options] [args] -``` - - - -### Command options - -- `-bucket-name=` - The name of the storage bucket in the external store. -- `-bucket-prefix==` - An optional prefix to set on the storage bucket. -- `-worker-filter=` - A Boolean expression to filter which workers can process communication to this storage bucket. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/storage-buckets/delete.mdx b/website/content/docs/commands/storage-buckets/delete.mdx deleted file mode 100644 index 14f7fe240..000000000 --- a/website/content/docs/commands/storage-buckets/delete.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: storage-buckets delete - Command -description: >- - The "storage-buckets delete" deletes existing storage bucket resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# storage-buckets delete - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary storage-buckets delete` - -The `boundary storage-buckets delete` command lets you delete Boundary storage buckets. - -## Example - -This example deletes a storage bucket with the ID `_1234567890`: - -```shell-session -$ boundary storage-buckets delete -id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary storage-buckets delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the storage bucket you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/storage-buckets/index.mdx b/website/content/docs/commands/storage-buckets/index.mdx deleted file mode 100644 index 3c020f0fe..000000000 --- a/website/content/docs/commands/storage-buckets/index.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: docs -page_title: storage-buckets - Command -description: >- - The "storage-buckets" command performs operations on Boundary storage bucket resources. Storage buckets store session recordings. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# storage-buckets - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary storage-buckets` - -The `storage-buckets` command lets you perform operations on Boundary storage bucket resources. - -## Example - -The following command reads the details of a storage bucket with the id `sb_1234567890`: - -```shell-session -$ boundary storage-buckets read -id sb_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary storage-buckets [options] [args] - # ... -Subcommands: - create Create a storage bucket - delete Delete a storage bucket - list List a storage bucket - read Read a storage bucket - update Update a storage bucket -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [create](/boundary/docs/commands/storage-buckets/create) -- [delete](/boundary/docs/commands/storage-buckets/delete) -- [list](/boundary/docs/commands/storage-buckets/list) -- [read](/boundary/docs/commands/storage-buckets/read) -- [update](/boundary/docs/commands/storage-buckets/update) \ No newline at end of file diff --git a/website/content/docs/commands/storage-buckets/list.mdx b/website/content/docs/commands/storage-buckets/list.mdx deleted file mode 100644 index 9850fcac6..000000000 --- a/website/content/docs/commands/storage-buckets/list.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: docs -page_title: storage-buckets list - Command -description: >- - The "storage-buckets list" command lists the available storage bucket resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# storage-buckets list - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `storage-buckets list` - -The `storage-buckets list` command lets you list the storage buckets within a given scope or resource. - -## Example - -This example lists all storage buckets within the scope `s_1234567890`. -The `recursive` option means Boundary runs the operation recursively on any child scopes, if applicable: - -```shell-session -$ boundary storage-buckets list -scope-id s_1234567890 -recursive -``` - -## Usage - - - -```shell-session -$ boundary storage-buckets list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `scope-id=` - The scope from which to list storage buckets. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/storage-buckets/read.mdx b/website/content/docs/commands/storage-buckets/read.mdx deleted file mode 100644 index a6639fcc2..000000000 --- a/website/content/docs/commands/storage-buckets/read.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: storage-buckets read - Command -description: >- - The "storage-buckets read" command retrieves the details of an existing storage bucket resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# storage-buckets read - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary storage-buckets read` - -The `boundary storage-buckets read` command lets you read information about Boundary storage buckets. - -## Example - -This example reads the details of a storage bucket with the ID `_1234567890`: - -```shell-session -$ boundary storage-buckets read -id _1234567890 -``` - -## Usage - - - -```shell-session -$ boundary storage-buckets read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the storage bucket you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/storage-buckets/update.mdx b/website/content/docs/commands/storage-buckets/update.mdx deleted file mode 100644 index 18e6dca58..000000000 --- a/website/content/docs/commands/storage-buckets/update.mdx +++ /dev/null @@ -1,93 +0,0 @@ ---- -layout: docs -page_title: storage-buckets update - Command -description: >- - The "storage-buckets update" command updates existing storage bucket resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# storage-buckets update - -This feature requires HCP Boundary or Boundary Enterprise - -Command: `boundary storage-buckets update` - -The `boundary storage-buckets update` command lets you update Boundary storage buckets by ID. - -## Example - -This example updates a storage bucket with the ID `_1234567890` to add the name `devops` and the description `storage bucket for DevOps`: - -```shell-session -$ boundary storage-buckets update -id _1234567890 -name devops -description "storage bucket for DevOps" -``` - -## Usage - - - -```shell-session -$ boundary storage-buckets update [options] [args] -``` - - - -### Command options - -- `-description=` - The description to set for the storage bucket. -- `-id=` - The ID of the storage bucket you want to update. -- `-name=` - The name to set for the storage bucket. -- `-version=` - The version of the storage bucket against which to perform the update operation. -If you do not specify a version, the command performs a check-and-set operation automatically. - -### Attribute options - -- `-attr` - A key=value pair to add to the request's attribute map. -This option can also be a key value only, which sets a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can override the type using `-string-attr`, `-bool-attr`, or `-num-attr`. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-attributes=` - A JSON map value that you can use as the entirety of the request's attributes map. -Usually this value is sourced from a file using the `file://` syntax. -This option is exclusive with other `attr` flags. -- `-bool-attr` - A key=value Boolean value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-num-attr` - A key=value numeric value that you can add to the request's attributes map. -You can specify this value multiple times. -This attribute supports referencing values from files using `file://` and environment variables using `env://`. -- `-string-attr` - A key=value string value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. - -### Secrets options - -- `-bool-secret` - A key=value Boolean value that you can add to the request's secrets map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-num-secret` - A key=value numeric value that you can add to the request's secrets map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-secret` - A key=value pair that you can add to the request's secrets map. -This option can also be a key value only, which sets a JSON null as the value. -If you provide a value, Boundary automatically infers the type. -You can override the type using `-string-secret`, `-bool-secret`, or `-num-secret`. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. -- `-secrets=` - A JSON map value that you can use as the entirety of the request's secrets map. -Usually this value is sourced from file using `file://` syntax. -This option is exclusive with other secret flags. -- `-string-secret` - A key=value string value that you can add to the request's attributes map. -You can specify this value multiple times. -This option supports referencing values from files using `file://` and environment variables using `env://`. - -### Storage bucket options - -- `-worker-filter=` - A Boolean expression that you can use to filter which workers can process communication to the storage bucket. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/add-credential-sources.mdx b/website/content/docs/commands/targets/add-credential-sources.mdx deleted file mode 100644 index 15325e964..000000000 --- a/website/content/docs/commands/targets/add-credential-sources.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: docs -page_title: targets add-credential-sources - Command -description: >- - The "targets add-credential-sources" command adds credential sources to target resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets add-credential-sources - -Command: `targets add-credential-sources` - -The `targets add-credential-sources` command lets you add credential sources to target resources. - -## Example - -This example adds the brokered credential sources `clvlt_1234567890` and `clvlt_0987654321` to a TCP target with the ID `ttcp_1234567890`: - -```shell-session -$ boundary targets add-credential-sources -id ttcp_1234567890 -brokered-credential-source clvlt_1234567890 -brokered-credential-source clvlt_0987654321 -``` - -## Usage - - - -```shell-session -$ boundary targets add-credential-sources [options] [args] -``` - - - -### Command options - -- `-application-credential-source=` - This option is deprecated. -Use `-brokered-credential-source` instead. -- `-brokered-credential-source=` - The credential source you want to add. -Boundary returns the credential source to the user when it creates a connection. -You can specify multiple credential sources. -- `-id=` - The ID of the target you want to add the credential source to. -- `-injected-application-credential-source=` - The credential source you want to add. -Boundary injects the credential source when it creates a connection. -You can specify multiple credential sources. -- `-version=` - The version of the target to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/add-host-sources.mdx b/website/content/docs/commands/targets/add-host-sources.mdx deleted file mode 100644 index e030a0bdc..000000000 --- a/website/content/docs/commands/targets/add-host-sources.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: targets add-host-sources - Command -description: >- - The "targets add-host-sources" command adds host sources to target resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets add-host-sources - -Command: `targets add-host-sources` - -The `targets add-host-sources` command lets you add host sources to target resources. - -## Example - -This example adds the host sources `hsst_1234567890` and `hsst_0987654321` to a TCP target with the ID `ttcp_1234567890`: - -```shell-session -$ boundary targets add-host-sources -id ttcp_1234567890 -host-source hsst_1234567890 -host-source hsst_0987654321 -``` - -## Usage - - - -```shell-session -$ boundary targets add-host-sources [options] [args] -``` - - - -### Command options - -- `-host-source=` - The host source you want to add. -You may specify multiple host sources. -- `-id=` - The ID of the target you want to add a host source to. -- `-version=` - The version of the target to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/authorize-session.mdx b/website/content/docs/commands/targets/authorize-session.mdx deleted file mode 100644 index 89b250a8b..000000000 --- a/website/content/docs/commands/targets/authorize-session.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: docs -page_title: targets authorize-session - Command -description: >- - The "targets authorize-session" command fetches session authorization credentials for a target resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets authorize-session - -Command: `targets authorize-session` - -The `targets authorize-session` command lets you fetch session authorization credentials for a target so that you can start a session later. - -## Examples - -This example fetches authorization credentials for a target with the ID `ttcp_wtXnow8Krb` and a specific host with the ID `hst_DHei2VpkBH`: - -```shell-session -$ boundary targets authorize-session -id=ttcp_wtXnow8Krb -host-id=hst_DHei2VpkBH -``` - -You can also request an authorized session using the scope ID and target name. -This example requests authorization credentials using the scope ID `o_1234567890` and the target name `prod-ssh`: - -```shell-session -$ boundary targets authorize-session -scope-id o_1234567890 -name prod-ssh -``` - -## Usage - - - -```shell-session -$ boundary targets authorize-session [options] [args] -``` - - - -### Command options - -- `-host-id=` - The ID of a host from the target's host sets. -If you specify a host, Boundary uses that specific host for the connection. -If you do not specify a host, Boundary chooses one at random. -- `-id=` - The ID of the target you want to authorize a session for. -- `-name=` - The name of the target you want to fetch credentials for, if you want to authorize the session using scope parameters and target name. -- `-scope-id=` - The scope ID of the target you want to fetch credentials for, if you want to authorize the session using scope parameters and target name. -Alternatively, you can specify a scope ID using the **BOUNDARY_SCOPE_ID** environment variable. -You cannot specify a scope ID if you specify a `-scope-name`. -- `-scope-name=` - The scope name of the target you want to fetch credentials for, if you want to authorize the session using scope parameters and target name. -Alternatively, you can specify a scope name using the **BOUNDARY_SCOPE_NAME** environment variable. -You cannot specify a scope name if you specify a `-scope-id`. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/create.mdx b/website/content/docs/commands/targets/create.mdx deleted file mode 100644 index 6b6044b06..000000000 --- a/website/content/docs/commands/targets/create.mdx +++ /dev/null @@ -1,192 +0,0 @@ ---- -layout: docs -page_title: targets create - Command -description: >- - The "targets create" command creates a new target resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets create - -Command: `targets create` - -The `targets create` command lets you create a new target. - -## Example - -This example creates a TCP target with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary targets create tcp -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -$ boundary targets create [type] [sub command] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - rdp Create an rdp-type target (HCP & Boundary Enterprise only) - ssh Create a ssh-type target (HCP & Boundary Enterprise only) - tcp Create a tcp-type target -``` - - - -### Usages by type - -You can create RDP, SSH, or TCP targets. - - - - -The `targets create rdp` command lets you create RDP targets. - -#### Example - -This example creates an RDP target with the name `admindc` and the description `RDP target for Admin Domain Controller`: - -```shell-session -$ boundary targets create rdp -name admindc -description "RDP target for Admin Domain Controller" -``` - -#### Usage - - - -```shell-session -$ boundary targets create rdp [options] [args] -``` - - - -#### RDP target options - -- `-address=` - An optional valid network address for the target to connect to. -You cannot use an address alongside host sources. - - If you set a target address for RDP targets that use Kerberos authentication, use the target's hostname and append the domain to it, for example `target-hostname.mydomain.com`. For RDP targets that use NTLM authentication, set the target address to the target's IP address. -- `-default-client-port=` - The default client port on the target. -- `-default-port=` - The default port on the target. -Due to a port conflict on modern Windows operating systems (Windows 11+, Windows Server 2025), transparent sessions cannot use the default RDP port `3389`. -You must configure a custom port to use transparent sessions with RDP targets. - - Refer to [Using transparent sessions with RDP on Windows](/boundary/docs/credentials/rdp-testing-and-compatibility-matrix#using-transparent-sessions-with-rdp-on-windows) for more information about configuring a custom port for transparent sessions. -- `-egress-worker-filter=` - A Boolean expression that filters which egress workers can process sessions for the target. -- `-ingress-worker-filter=` - A Boolean expression that filters which ingress workers can process sessions for the target. -- `-session-connection-limit=` - The maximum number of connections allowed for a session. -A value of `-1` means the connections are unlimited. -- `-session-max-seconds=` - The maximum lifetime of the session, including all connections. -You can specify an integer number of seconds or a duration string. -If you do not specfiy a maximum duration, Boundary uses the default value of 8 hours (28800 seconds). -- `-with-alias-authorize-session-host-id=` - The host ID that an alias uses to authorize sessions for the target. -- `-with-alias-scope-id=` - The scope ID that you want to create the target and alias in. -The default is `global`. -At this time, aliases are only supported for the global scope. -- `-with-alias-value=` - The value of the alias that you want to use to represent the target. -Use this parameter to create the alias and target, and associate them with each other, at the same time. - - - - - -The `targets create ssh` command lets you create SSH targets. - -#### Example - -This example creates an SSH target with the name `prodops` and the description `SSH target for ProdOps`: - -```shell-session -$ boundary targets create ssh -name prodops -description "SSH target for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary targets create ssh [options] [args] -``` - - - -#### SSH target options - -- `-address=` - An optional valid network address for the target to connect to. -You cannot use an address alongside host sources. -- `-default-client-port=` - The default client port on the target. -- `-default-port=` - The default port on the target. -If you do not specify a default port, Boundary uses port 22. -- `-egress-worker-filter=` - A Boolean expression that filters which egress workers can process sessions for the target. -- `-enable-session-recording=` - A Boolean expression you can use to enable session recording for the target. -- `-ingress-worker-filter=` - A Boolean expression that filters which ingress workers can process sessions for the target. -- `-session-connection-limit=` - The maximum number of connections allowed for a session. -A value of `-1` means the connections are unlimited. -- `-session-max-seconds=` - The maximum lifetime of the session, including all connections. -You can specify an integer number of seconds or a duration string. -If you do not specfiy a maximum duration, Boundary uses the default value of 8 hours (28800 seconds). -- `-storage-bucket-id=` - The public ID of the storage bucket to associate with the target. -- `-with-alias-authorize-session-host-id=` - The host ID that an alias uses to authorize sessions for the target. -- `-with-alias-scope-id=` - The scope ID that you want to create the target and alias in. -The default is `global`. -At this time, aliases are only supported for the global scope. -- `-with-alias-value=` - The value of the alias that you want to use to represent the target. -Use this parameter to create the alias and target, and associate them with each other, at the same time. - - - - - -The `targets create tcp` command lets you create TCP targets. - -#### Example - -This example creates a TCP target with the name `prodops` and the description `TCP target for ProdOps`: - -```shell-session -$ boundary targets create tcp -name prodops -description "TCP target for ProdOps" -``` - -#### Usage - - - -```shell-session -$ boundary targets create tcp [options] [args] -``` - - - -#### TCP target options - -- `-address=` - An optional valid network address for the target to connect to. -You cannot use an address alongside host sources. -- `-default-client-port=` - The default client port on the target. -- `-default-port=` - The default port on the target. -If you do not specify a default port, Boundary uses port 22. -- `-egress-worker-filter=` - A Boolean expression that filters which egress workers can process sessions for the target. -- `-ingress-worker-filter=` - A Boolean expression that filters which ingress workers can process sessions for the target. -- `-session-connection-limit=` - The maximum number of connections allowed for a session. -A value of `-1` means the connections are unlimited. -- `-session-max-seconds=` - The maximum lifetime of the session, including all connections. -You can specify an integer number of seconds or a duration string. -If you do not specfiy a maximum duration, Boundary uses the default value of 8 hours (28800 seconds). -- `-with-alias-authorize-session-host-id=` - The host ID that an alias uses to authorize sessions for the target. -- `-with-alias-scope-id=` - The scope ID that you want to create the alias in at target creation time. -The default is `global`. -At this time, aliases are only supported for the global scope. -- `-with-alias-value=` - The value of the alias that you want to use to represent the target. -Use this parameter to create the alias and target, and associate them with each other, at the same time. - - - - -@include 'cmd-option-note.mdx' diff --git a/website/content/docs/commands/targets/delete.mdx b/website/content/docs/commands/targets/delete.mdx deleted file mode 100644 index aedfa8527..000000000 --- a/website/content/docs/commands/targets/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: targets delete - Command -description: >- - The "targets delete" command deletes an existing target resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets delete - -Command: `targets delete` - -The `targets delete` command lets you delete a target. - -## Example - -This example deletes a target with the ID `t_1234567890`: - -```shell-session -$ boundary targets delete -id t_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary targets delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the target you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/index.mdx b/website/content/docs/commands/targets/index.mdx deleted file mode 100644 index 39ebe80e4..000000000 --- a/website/content/docs/commands/targets/index.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -layout: docs -page_title: targets - Command -description: >- - The "targets" command performs operations on Boundary target resources. Targets represent networked services that users can connect to during sessions. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets - -Command: `boundary targets` - -The `targets` command lets you perform operations on Boundary target resources. - -## Example - -The following command updates the description for a target with the ID `ttcp_1234567890`: - -```shell-session - $ boundary targets update -id ttcp_1234567890 -description "updated postgres target" -``` - -## Usage - - - -```shell-session -boundary targets [sub command] [options] [args] - - # ... - -Subcommands: - add-credential-sources Add credential sources to a target - add-host-sources Add host sources to a target - authorize-session Request session authorization against the target - create Create a target - delete Delete a target - list List a target - read Read a target - remove-credential-sources Remove credential sources from a target - remove-host-sources Remove host sources from a target - set-credential-sources Set the full contents of the credential sources on a target - set-host-sources Set the full contents of the host sources on a target - update Update a target -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [add-credential-sources](/boundary/docs/commands/targets/add-credential-sources) -- [add-host-sources](/boundary/docs/commands/targets/add-host-sources) -- [authorize-session](/boundary/docs/commands/targets/authorize-session) -- [create](/boundary/docs/commands/targets/create) -- [delete](/boundary/docs/commands/targets/delete) -- [list](/boundary/docs/commands/targets/list) -- [read](/boundary/docs/commands/targets/read) -- [remove-credential-sources](/boundary/docs/commands/targets/remove-credential-sources) -- [remove-host-sources](/boundary/docs/commands/targets/remove-host-sources) -- [set-credential-sources](/boundary/docs/commands/targets/set-credential-sources) -- [set-host-sources](/boundary/docs/commands/targets/set-host-sources) -- [update](/boundary/docs/commands/targets/update) \ No newline at end of file diff --git a/website/content/docs/commands/targets/list.mdx b/website/content/docs/commands/targets/list.mdx deleted file mode 100644 index df72bd3a0..000000000 --- a/website/content/docs/commands/targets/list.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: docs -page_title: targets list - Command -description: >- - The "targets list" command lists the available target resources within a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets list - -Command: `targets list` - -The `targets list` command lets you list the targets within a given scope or resource. - -## Example - -This example lists all targets within the scope `s_1234567890`. -The `recursive` option means Boundary runs the operation recursively on any child scopes, if applicable: - -```shell-session -$ boundary targets list -scope-id s_1234567890 -recursive -``` - -## Usage - - - -```shell-session -$ boundary targets list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `scope-id=` - The scope from which to list the targets. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/read.mdx b/website/content/docs/commands/targets/read.mdx deleted file mode 100644 index 80775038d..000000000 --- a/website/content/docs/commands/targets/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: targets read - Command -description: >- - The "targets read" command retrieves the details of a target resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets read - -Command: `targets read` - -The `targets read` command lets you read the details of a target with a given ID. - -## Example - -This example reads the details of a target with the ID `t_1234567890`: - -```shell-session -$ boundary targets read -id t_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary targets read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the target you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/remove-credential-sources.mdx b/website/content/docs/commands/targets/remove-credential-sources.mdx deleted file mode 100644 index 359d42af9..000000000 --- a/website/content/docs/commands/targets/remove-credential-sources.mdx +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: docs -page_title: targets remove-credential-sources - Command -description: >- - The "targets remove-credential-sources" removes credential sources from target resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets remove-credential-sources - -Command: `targets remove-credential-sources` - -The `targets remove-credential-sources` command lets you remove credential sources from target resources. - -## Example - -This example removes the brokered credential sources `clvlt_1234567890` and `clvlt_0987654321` from a TCP target with the ID `ttcp_1234567890`: - -```shell-session -$ boundary targets remove-credential-sources -id ttcp_1234567890 -brokered-credential-source clvlt_1234567890 -brokered-credential-source clvlt_0987654321 -``` - -## Usage - - - -```shell-session -$ boundary targets remove-credential-sources [options] [args] -``` - - - -### Command options - -- `-application-credential-source=` - This option is deprecated. -Use `-brokered-credential-source` instead. -- `-brokered-credential-source=` - The credential source you want to remove. -You may specify multiple credential sources. -- `-id=` - The ID of the target you want to remove the credential source from. -- `-injected-application-credential-source=` - The credential source you want to remove. -You may specify multiple credential sources. -- `-version=` - The version of the target to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/remove-host-sources.mdx b/website/content/docs/commands/targets/remove-host-sources.mdx deleted file mode 100644 index a0f24486c..000000000 --- a/website/content/docs/commands/targets/remove-host-sources.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: targets remove-host-sources - Command -description: >- - The "targets remove-host-sources" command removes host sources from target resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets remove-host-sources - -Command: `targets remove-host-sources` - -The `targets remove-host-sources` command lets you remove host sources from target resources. - -## Example - -This example removes the host sources `hsst_1234567890` and `hsst_0987654321` from a target with the ID `ttcp_1234567890`: - -```shell-session -$ boundary targets remove-host-sources -id ttcp_1234567890 -host-source hsst_1234567890 -host-source hsst_0987654321 -``` - -## Usage - - - -```shell-session -$ boundary target remove-host-sources [options] [args] -``` - - - -### Command options - -- `-host-source=` - The host source you want to remove. -You may specify multiple host sources. -- `-id=` - The ID of the target you want to remove a host source from. -- `-version=` - The version of the target to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/set-credential-sources.mdx b/website/content/docs/commands/targets/set-credential-sources.mdx deleted file mode 100644 index 1d1f33388..000000000 --- a/website/content/docs/commands/targets/set-credential-sources.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -layout: docs -page_title: targets set-credential-sources - Command -description: >- - The "targets set-credential-sources" command sets credential sources on target resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets set-credential-sources - -Command: `targets set-credential-sources` - -The `targets set-credential-sources` command lets you set credential sources on target resources. - -## Example - -This example sets a brokered credential source `clvlt_1234567890` on a target with the ID `ttcp_1234567890`: - -```shell-session -$ boundary targets set-credential-sources -id ttcp_1234567890 -brokered-credential-source clvlt_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary targets set-credential-sources [options] [args] -``` - - - -### Command options - -- `-application-credential-source=` - This option is deprecated. -Use `-brokered-credential-source` instead. - -- `-brokered-credential-source=` - The brokered credential source you want to set on the target. -Boundary returns the credential source to the user when it creates a connection. -You may specify multiple credential sources. -- `-id=` - The ID of the target you want to set the credential source on. -- `-injected-application-credential-source=` - The injected credential source you want to set on the target. -Boundary injects the credential source when it creates a connection. -You may specify multiple credential sources. -- `-version=` - The version of the target to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/set-host-sources.mdx b/website/content/docs/commands/targets/set-host-sources.mdx deleted file mode 100644 index 853b9ec06..000000000 --- a/website/content/docs/commands/targets/set-host-sources.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: targets set-host-sources - Command -description: >- - The "targets set-host-sources" command sets host sources on target resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets set-host-sources - -Command: `targets set-host-sources` - -The `targets set-host-sources` command lets you set host sources on target resources. - -## Example - -This example sets the host source `hsst_1234567890` on a target with the ID `ttcp_1234567890`: - -```shell-session -$ boundary targets set-host-sources -id ttcp_1234567890 -host-source hsst_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary targets set-host-sources [options] [args] -``` - - - -### Command options - -- `-host-source=` - The host source you want to set on the target. -You may specify multiple host sources. -- `-id=` - The ID of the target you want to set a host source on. -- `-version=` - The version of the target to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/targets/update.mdx b/website/content/docs/commands/targets/update.mdx deleted file mode 100644 index ae4b90f92..000000000 --- a/website/content/docs/commands/targets/update.mdx +++ /dev/null @@ -1,175 +0,0 @@ ---- -layout: docs -page_title: targets update - Command -description: >- - The "targets update" command updates an existing target resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# targets update - -Command: `targets update` - -The `targets update` command lets you update a target. - -## Example - -This example updates a TCP target with the ID `ttcp_1234567890` to add the name `devops` and the description `For DevOps usage`: - -```shell-session -$ boundary targets update tcp -id ttcp_1234567890 -name devops -description "For DevOps usage" -``` - -## Usage - - - -```shell-session -$ boundary targets update [type] [sub command] [options] [args] - -Please see the typed subcommand help for detailed usage information. - -Subcommands: - rdp Update an rdp-type target (HCP & Boundary Enterprise only) - ssh Update a ssh-type target (HCP & Boundary Enterprise only) - tcp Update a tcp-type target -``` - - - -### Usages by type - -You can update RDP, SSH, or TCP targets. - - - - -The `targets update rdp` command lets you update existing RDP targets. - -#### Example - -This example updates an RDP target with the id `rdp_1234567890` to add the name `devops` and the description `RDP target for DevOps`: - -```shell-session -$ boundary targets update rdp -id trdp_1234567890 -name "devops" -description "RDP target for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary targets update rdp [options] [args] -``` - - - -#### RDP target options - -- `-address=` - An optional valid network address for the target to connect to. -You cannot use an address alongside host sources. - - If you set a target address for RDP targets that use Kerberos authentication, use the target's hostname and append the domain to it, for example `target-hostname.mydomain.com`. For RDP targets that use NTLM authentication, set the target address to the target's IP address. -- `-default-client-port=` - The default client port on the target. -- `-default-port=` - The default port on the target. -Due to a port conflict on modern Windows operating systems (Windows 11+, Windows Server 2025), transparent sessions cannot use the default RDP port `3389`. -You must configure a custom port to use transparent sessions with RDP targets. - - Refer to [Using transparent sessions with RDP on Windows](/boundary/docs/credentials/rdp-testing-and-compatibility-matrix#using-transparent-sessions-with-rdp-on-windows) for more information about configuring a custom port for transparent sessions. -- `-egress-worker-filter=` - A Boolean expression that filters which egress workers can process sessions for the target. -- `-ingress-worker-filter=` - A Boolean expression that filters which ingress workers can process sessions for the target. -- `-session-connection-limit=` - The maximum number of connections allowed for a session. -A value of `-1` means the connections are unlimited. -- `-session-max-seconds=` - The maximum lifetime of the session, including all connections. -You can specify an integer number of seconds or a duration string. -If you do not specfiy a maximum duration, Boundary uses the default value of 8 hours (28800 seconds). - - - - -The `targets update ssh` command lets you update SSH targets. - -#### Example - -This example updates an SSH target with the ID `tssh_1234567890` to add the name `devops` and the description `SSH target for DevOps`: - -```shell-session -$ boundary targets update ssh -id tssh_1234567890 -name "devops" -description "SSH target for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary targets update ssh [options] [args] -``` - - - -#### SSH target options - -- `-address=` - An optional valid network address for the target to connect to. -You cannot use an address alongside host sources. -- `-default-client-port=` - The default client port on the target, if set. -- `-default-port=` - The default port on the target, if set. -If you do not specify a default port, Boundary uses port 22. -- `-egress-worker-filter=` - A Boolean expression that filters which egress workers can process sessions for the target. -- `-enable-session-recording=` - A Boolean expression you can use to enable session recording for the target. -- `-ingress-worker-filter=` - A Boolean expression that filters which ingress workers can process sessions for the target. -- `-session-connection-limit=` - The maximum number of connections allowed for a session. -A value of `-1` means the connections are unlimited. -- `-session-max-seconds=` - The maximum lifetime of the session, including all connections. -You can specify an integer number of seconds or a duration string. -If you do not specfiy a maximum duration, Boundary uses the default value of 8 hours (28800 seconds). -- `-storage-bucket-id=` - The public ID of the storage bucket you want to associate with the target. - - - - - -The `targets update tcp` command lets you update TCP targets. - -#### Example - -This example updates a TCP target with the ID `ttcp_1234567890` to add the name `devops` and the description `TCP target for DevOps`: - -```shell-session -$ boundary targets update tcp -id ttcp_1234567890 -name "devops" -description "TCP target for DevOps" -``` - -#### Usage - - - -```shell-session -$ boundary targets update tcp [options] [args] -``` - - - -#### TCP target options - -- `-address=` - An optional valid network address for the target to connect to. -You cannot use an address alongside host sources. -- `-default-client-port=` - The default client port on the target, if set. -- `-default-port=` - The default port on the target, if set. -If you do not specify a default port, Boundary uses port 22. -- `-egress-worker-filter=` - A Boolean expression that filters which egress workers can process sessions for the target. -- `-ingress-worker-filter=` - A Boolean expression that filters which ingress workers can process sessions for the target. -- `-session-connection-limit=` - The maximum number of connections allowed for a session. -A value of `-1` means the connections are unlimited. -- `-session-max-seconds=` - The maximum lifetime of the session, including all connections. -You can specify an integer number of seconds or a duration string. -If you do not specfiy a maximum duration, Boundary uses the default value of 8 hours (28800 seconds). -- `-worker-filter=` - This option is deprecated. -Use the egress or ingress filters instead. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/update.mdx b/website/content/docs/commands/update.mdx deleted file mode 100644 index b40fc8f51..000000000 --- a/website/content/docs/commands/update.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: docs -page_title: update - Command -description: >- - The "update" command updates existing Boundary resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# update - -Command: `boundary update` - -The `boundary update` command lets you update Boundary resources. -It is a generic command that runs an update operation on a Boundary resource using the resource's ID. - -When you run this command, Boundary interprets it as the type-specific command. -For example, if you enter the `update` command with a storage bucket ID, Boundary runs the `storage-buckets update` command. -Help, error, or cURL output from the command may show the full command syntax. - -## Example - -This example updates a storage bucket with the ID `sb_1234567890` to add the name `devops` and the description `storage bucket for DevOps`: - -```shell-session -$ boundary update -id sb_1234567890 -name devops -description "storage bucket for DevOps" -``` - -## Usage - - - -```shell-session -$ boundary update [resource ID] [args] -``` - - - -### Command options - -- `-id=` - The ID of the resource you want to update. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/users/add-accounts.mdx b/website/content/docs/commands/users/add-accounts.mdx deleted file mode 100644 index 91f997ac1..000000000 --- a/website/content/docs/commands/users/add-accounts.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: users add-accounts - Command -description: >- - The "users add-accounts" command associates accounts with a user resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users add-accounts - -Command: `users add-accounts` - -The `users add-accounts` command lets you associate accounts with a user. - -## Example - -This example associates a user `u_1234567890` with an account `a_1234567890`: - -```shell-session -$ boundary users add-accounts -id u_1234567890 -account a_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary users add-accounts [options] [args] -``` - - - -### Command options - -- `-account=` - The account you want to associate with the user. -You can add multiple accounts. -- `-id=` - The ID of the user you want to associate an account with. -- `-version=` - The version of the user to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/users/create.mdx b/website/content/docs/commands/users/create.mdx deleted file mode 100644 index 6b2dc96cf..000000000 --- a/website/content/docs/commands/users/create.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: users create - Command -description: >- - The "users create" command create a new user resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users create - -Command: `users create` - -The `users create` command lets you create a new user. - -## Example - -This example creates a user `prodops` with the description `User for ProdOps`: - -```shell-session -$ boundary users create -name prodops -description "User for ProdOps" -``` - -## Usage - - - -```shell-session -$ boundary users create [options] [args] -``` - - - -### Command options - -- `-description=` - The description to assign the user. -- `-name=` - The name to assign to the user. -- `-scope-id=` - The scope you want to create the user in. -The default is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/users/delete.mdx b/website/content/docs/commands/users/delete.mdx deleted file mode 100644 index 0fa5f6c93..000000000 --- a/website/content/docs/commands/users/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: users delete - Command -description: >- - The "users delete" command deletes an existing user resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users delete - -Command: `users delete` - -The `users delete` command lets you delete a user. - -## Example - -This example deletes a user with the id `u_1234567890`: - -```shell-session -$ boundary users delete -id u_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary users delete [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the user you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/users/index.mdx b/website/content/docs/commands/users/index.mdx deleted file mode 100644 index 61d7d4028..000000000 --- a/website/content/docs/commands/users/index.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: docs -page_title: users - Command -description: >- - The "users" command performs operations on Boundary user resources. Users represent an individual or entity for the purposes of access control. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users - -Command: `boundary users` - -The `users` command lets you perform operations on Boundary user resources. - -## Example - -The following command creates a user with the name `prodops` and the description `For ProdOps usage`: - -```shell-session -$ boundary users create -name prodops -description "For ProdOps usage" -``` - -## Usage - - - -```shell-session -Usage: boundary users [options] [args] - - # ... - -Subcommands: - add-accounts Add accounts to a user within Boundary - create Create a user - delete Delete a user - list List a user - read Read a user - remove-accounts Remove accounts from a user within Boundary - set-accounts Set the full contents of the accounts on a user within Boundary - update Update a user -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [add-accounts](/boundary/docs/commands/users/add-accounts) -- [create](/boundary/docs/commands/users/create) -- [delete](/boundary/docs/commands/users/delete) -- [list](/boundary/docs/commands/users/list) -- [read](/boundary/docs/commands/users/read) -- [remove-accounts](/boundary/docs/commands/users/remove-accounts) -- [set-accounts](/boundary/docs/commands/users/set-accounts) -- [update](/boundary/docs/commands/users/update) diff --git a/website/content/docs/commands/users/list.mdx b/website/content/docs/commands/users/list.mdx deleted file mode 100644 index 10dbbc503..000000000 --- a/website/content/docs/commands/users/list.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -layout: docs -page_title: users list - Command -description: >- - The "users list" command lists the available user resources from the specified scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users list - -Command: `users list` - -The `users list` command lets you list the users who belong to a given scope or resource. - -## Example - -This example lists all users in the scope `s_1234567890`: - -```shell-session -$ boundary users list -scope-id s_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary users list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before it is returned. -The filter operates against each item in the list. -We recommend that you use single quotes, as filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `-recursive` - If set, runs the list operation recursively into child scopes, if the type supports it. -The default value is `false`. -- `-scope-id=` - The scope that contains the users you want to list. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. -- `list_token` (optional) - An opaque token that is returned from the previous `list` response. -If you do not supply a value, pagination starts from the beginning. -- `page_size` (optional) - An unsigned integer that indicates the number of items that should be included on the page of search results. -If you do not provide a value, or if you provide a value of `0`, Boundary uses the default page size of 1000 items. -If you configure it, the `page_size` value overrides the default page size. -Controller administrators can also configure a `max_page_size` option that constrains the maximum page size a user can request. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/users/read.mdx b/website/content/docs/commands/users/read.mdx deleted file mode 100644 index ac87258f3..000000000 --- a/website/content/docs/commands/users/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: users read - Command -description: >- - The "users read" command retrieves the details about a user resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users read - -Command: `users read` - -The `users read` command lets you read information about users by their user ID. - -## Example - -This example reads user details for a user with the ID `u_1234567890`: - -```shell-session -$ boundary users read -id u_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary users read [options] [args] -``` - - - -### Command options - -- `-id=` - The ID of the user you want to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/users/remove-accounts.mdx b/website/content/docs/commands/users/remove-accounts.mdx deleted file mode 100644 index c9939317d..000000000 --- a/website/content/docs/commands/users/remove-accounts.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: users remove-accounts - Command -description: >- - The "users remove-accounts" command disassociates accounts from a user resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users remove-accounts - -Command: `users remove-accounts` - -The `users remove-accounts` command lets you disassociate accounts from a user. - -## Example - -This example disassociates a user `u_1234567890` from an account `a_1234567890`: - -```shell-session -$ boundary users remove-accounts -id u_1234567890 -account a_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary users remove-accounts [options] [args] -``` - - - -### Command options - -- `-account=` - The account you want to disassociate from the user. -You can specify multiple accounts. -- `-id=` - The ID of the user you want to disassociate from an account. -- `-version=` - The version of the user to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/users/set-accounts.mdx b/website/content/docs/commands/users/set-accounts.mdx deleted file mode 100644 index 9771b3b52..000000000 --- a/website/content/docs/commands/users/set-accounts.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: users set-accounts - Command -description: >- - The "users set-accounts" command configures a complete set of associated acounts on a user resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users set-accounts - -Command: `users set-accounts` - -The `users set-accounts` command lets you configure a complete set of associated accounts on a user. - -## Example - -This example sets the accounts `a_0987654321` and `a_1234567890` on a user `u_1234567890`: - -```shell-session -$ boundary users set-accounts -id u_1234567890 -account a_0987654321 -account a_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary users set-accounts [options] [args] -``` - - - -### Command options - -- `-account=` - The account you want to set on the user. -You can specify multiple accounts. -- `-id=` - The ID of the user you want to set accounts for. -- `-version=` - The version of the user to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/users/update.mdx b/website/content/docs/commands/users/update.mdx deleted file mode 100644 index bcf478cbf..000000000 --- a/website/content/docs/commands/users/update.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: users update - Command -description: >- - The "users update" command updates an existing user's information. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# users update - -Command: `users update` - -The `users update` command lets you update a user's information. - -## Example - -This example updates a user with the ID `u_1234567890` to add the name `devops` and the description `User for DevOps`: - -```shell-session -$ boundary users update -id u_1234567890 -name "devops" -description "User for DevOps" -``` - -## Usage - - - -```shell-session -$ boundary users update [options] [args] -``` - - - -### Command options - -- `-description=` - The description to assign the user. -- `-id=` - The ID of the user you want to update. -- `-name=` - The name to assign the user. -- `-version=` - The version of the user to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/add-worker-tags.mdx b/website/content/docs/commands/workers/add-worker-tags.mdx deleted file mode 100644 index 84c81d6bd..000000000 --- a/website/content/docs/commands/workers/add-worker-tags.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: workers add-worker-tags - Command -description: >- - The "workers add-worker-tags" command adds API tags to worker resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers add-worker-tags - -Command: `boundary workers add-worker-tags` - -The `boundary workers add-worker-tags` command lets you add API tags to worker resources. - -## Example - -This example adds the API tags `key1=val-a` and `key2=val-b,val-c` to a worker with the ID `w_1234567890`: - -```shell-session -$ boundary workers add-worker-tags -id w_1234567890 -tag "key1=val-a" -tag "key2=val-b,val-c" -``` - -## Usage - - - -```shell-session -$ boundary workers add-worker-tags [sub command] [args] -``` - - - - -### Command options - -- `-id=` - The ID of the worker you want to add API tags to. -- `tag=` - The API tag resources you want to add to workers. -- `version=` - The version of the worker to add the API tag to. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/certificate-authority.mdx b/website/content/docs/commands/workers/certificate-authority.mdx deleted file mode 100644 index 8ac23f350..000000000 --- a/website/content/docs/commands/workers/certificate-authority.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -layout: docs -page_title: workers certificate-authority - Command -description: >- - The "workers certificate-authority" command manages the certificate authority used to authorize worker resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers certificate-authority - -Command: `boundary workers certificate-authority` - -The `boundary workers certificate-authority` command lets you manage the certificate authority used to authorize Boundary workers. - -## Example - -This example lets you read information about the current certificate authority: - -```shell-session -$ boundary workers certificate-authority read -``` - -## Usage - - - -```shell-session -$ boundary workers certificate-authority [options] - - # ... - -Subcommands: - read Read the certificate authority used to authorize Boundary workers. - reinitialize Reinitialize the certificate authority used to authorize Boundary workers. -``` - - - -### Usages by type - -You can read or reinitialize certificate authorities. - - - - -The `workers certificate-authority read` command lets you read the details of the certificate authority that is used to authorize Boundary workers. - -#### Usage - -```shell-session -$ boundary workers certificate-authority read [options] [args] -``` - -#### Worker certificate authority options - -- `-scope-id=` - The scope in which to read the certificate authority. -The default scope is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. - - - - -The `workers certificate-authority reinitialize` command lets you reinitialize the certificate authority that is used to authorize Boundary workers. - -#### Usage - -```shell-session -$ workers certificate-authority reinitialize [options] [args] -``` - -#### Worker certificate authority options - -- `-scope-id=` - The scope in which to reinitialize the certificate authority. -The default scope is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/create.mdx b/website/content/docs/commands/workers/create.mdx deleted file mode 100644 index dc4224d04..000000000 --- a/website/content/docs/commands/workers/create.mdx +++ /dev/null @@ -1,116 +0,0 @@ ---- -layout: docs -page_title: workers create - Command -description: >- - The "workers create" command creates new worker resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers create - -Command: `boundary workers create` - -The `boundary workers create` command lets you create Boundary workers. - -## Example - -This example creates a worker with the name `prodops` and the description `Worker for ProdOps`: - -```shell-session -$ boundary workers create -name prodops -description "Worker for ProdOps" -``` - -## Usage - - - -```shell-session -$ boundary workers create [options] [args] - - # ... - -Subcommands: - controller-led Create a controller-led type worker. - worker-led Create a worker-led type worker. -``` - - - -### Usages by type - -You can create controller-led or worker-led types of workers. - - - - -The `workers create controller-led` command lets you create a worker by receiving an activation token from a controller. - -#### Example - -This example creates a controller-led worker named `us-east-1-1`: - - - -```shell-session -$ boundary workers create controller-led -name us-east-1-1 -``` - - - -#### Usage - -```shell-session -$ boundary workers create controller-led [options] [args] -``` - -#### Command options - -- `-description=` - A description to set on the controller-led type worker. -- `name=` - A name to set on the controller-led type worker. -- `scope-id=` - The scope in which to make the request. -The default is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. - - - - -The `workers create worker-led` command lets you create a worker by providing an auth method from the worker. - -#### Example - -This example specifies a worker-generated auth token and creates a worker named `us-east-1-1`: - - - -```shell-session -$ boundary workers create worker-led -name us-east-1-1 -worker-generated-auth-token -``` - - - -#### Usage - -```shell-session -$ boundary workers create worker-led [options] [args] -``` - -#### Command options - -- `-description=` - A description to set on the worker-led type worker. -- `name=` - A name to set on the worker-led type worker. -- `scope-id=` - The scope in which to make the request. -The default is `global`. -You can also specify the scope using the **BOUNDARY_SCOPE_ID** environment variable. - -#### Worker creation options - -- `worker-generated-auth-token=` - The auth token that is provided by the worker and used to register the worker with Boundary. - - - - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/delete.mdx b/website/content/docs/commands/workers/delete.mdx deleted file mode 100644 index e9868b0f4..000000000 --- a/website/content/docs/commands/workers/delete.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: workers delete - Command -description: >- - The "workers delete" command deletes existing worker resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers delete - -Command: `boundary workers delete` - -The `boundary workers delete` command lets you delete a Boundary worker by its given ID. - -## Example - -This example deletes a worker with the ID `w_1234567890`: - -```shell-session -$ boundary workers delete -id w_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary workers delete [options] [args] -``` - - - -### Command options - -- `id=` - The ID of the worker you want to delete. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/index.mdx b/website/content/docs/commands/workers/index.mdx deleted file mode 100644 index a06f27766..000000000 --- a/website/content/docs/commands/workers/index.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -layout: docs -page_title: workers - Command -description: >- - The "workers" command performs operations on Boundary worker resources. Workers are primarily used as network proxies. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers - -Command: `boundary workers` - -The `workers` command lets you perform operations on Boundary worker resources. - -## Example - -This example reads information about a worker with the ID `w_1234567890`: - -```shell-session -$ boundary workers read -id w_1234567890 -``` - -## Usage - - - -```shell-session -Usage: boundary workers [options] [args] - - # ... - -Subcommands: - add-worker-tags Add api tags to the specified worker. - certificate-authority Manage the certificate authority used to authorize Boundary workers - create Create a worker - delete Delete a worker - list List a worker - read Read a worker - remove-worker-tags Remove api tags from the specified worker - set-worker-tags Set api tags for the specified worker - update Update a worker -``` - - - -For more information, examples, and usage, click on the name -of the subcommand in the sidebar or one of the links below: - -- [add-worker-tags](/boundary/docs/commands/workers/add-worker-tags) -- [certificate-authority](/boundary/docs/commands/workers/certificate-authority) -- [create](/boundary/docs/commands/workers/create) -- [delete](/boundary/docs/commands/workers/delete) -- [list](/boundary/docs/commands/workers/list) -- [read](/boundary/docs/commands/workers/read) -- [remove-worker-tags](/boundary/docs/commands/workers/remove-worker-tags) -- [set-worker-tags](/boundary/docs/commands/workers/set-worker-tags) -- [update](/boundary/docs/commands/workers/update) \ No newline at end of file diff --git a/website/content/docs/commands/workers/list.mdx b/website/content/docs/commands/workers/list.mdx deleted file mode 100644 index 471ca05ab..000000000 --- a/website/content/docs/commands/workers/list.mdx +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: docs -page_title: workers list - Command -description: >- - The "workers list" command lists available worker resources in a scope or resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers list - -Command: `boundary workers list` - -The `boundary workers list` command lets you list the Boundary workers in a scope or resource. - -## Example - -This example lists all workers in the `global` scope: - -```shell-session -$ boundary workers list -``` - -## Usage - - - -```shell-session -$ boundary workers list [options] [args] -``` - - - -### Command options - -- `-filter=` - If set, Boundary filters the list operation before the results are returned. -The filter operates against each item in the list. -We recommend that you use single quotes, because the filters contain double quotes. -Refer to the [Filtering and listing resources documentation](/boundary/docs/filtering) for more details. -- `recursive` - If set, runs the list operation recursively on any child scopes, if the type supports it. -The default value is `false`. -- `scope-id=` - The scope from which to list the workers. -The default value is `global`. -You can also specify this value using the **BOUNDARY_SCOPE_ID** environment variable. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/read.mdx b/website/content/docs/commands/workers/read.mdx deleted file mode 100644 index 9aa1edd1c..000000000 --- a/website/content/docs/commands/workers/read.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: workers read - Command -description: >- - The "workers read" command retrieves the details of a worker resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers read - -Command: `boundary workers read` - -The `boundary workers read` command lets you read a Boundary worker information for a given ID. - -## Example - -This example reads a worker with the ID `w_1234567890`: - -```shell-session -$ boundary workers read -id w_1234567890 -``` - -## Usage - - - -```shell-session -$ boundary workers read [options] [args] -``` - - - -### Command options - -- `id=` - The ID of the worker to read. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/remove-worker-tags.mdx b/website/content/docs/commands/workers/remove-worker-tags.mdx deleted file mode 100644 index 84e092a18..000000000 --- a/website/content/docs/commands/workers/remove-worker-tags.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: workers remove-worker-tags - Command -description: >- - The "workers remove-worker-tags" command removes API tags from worker resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers remove-worker-tags - -Command: `boundary workers remove-worker-tags` - -The `boundary workers remove-worker-tags` command lets you remove API tags from worker resources. - -## Example - -This example removes the API tags `key1=val-a` and `key2=val-b,val-c` from a worker with the ID `w_1234567890`: - -```shell-session -$ boundary workers remove-worker-tags -id w_1234567890 -tag "key1=val-a" -tag "key2=val-b,val-c" -``` - -## Usage - - - -```shell-session -$ boundary workers remove-worker-tags [sub command] [args] -``` - - - - -### Command options - -- `-id=` - The ID of the worker you want to remove the tag from. -- `tag=` - The API tag resources you want to remove from the worker. -- `version=` - The version of the worker to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/set-worker-tags.mdx b/website/content/docs/commands/workers/set-worker-tags.mdx deleted file mode 100644 index 0f3d1e94d..000000000 --- a/website/content/docs/commands/workers/set-worker-tags.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: workers set-worker-tags - Command -description: >- - The "workers set-worker-tags" command sets API tags for worker resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers set-worker-tags - -Command: `boundary workers set-worker-tags` - -The `boundary workers set-worker-tags` command lets you set API tags for worker resources. - -## Example - -This example sets the API tags `key1=val-a` and `key2=val-b,val-c` for a worker with the ID `w_1234567890`: - -```shell-session -$ boundary workers set-worker-tags -id w_1234567890 -tag "key1=val-a" -tag "key2=val-b,val-c" -``` - -## Usage - - - -```shell-session -$ boundary workers set-worker-tags [sub command] [args] -``` - - - - -### Command options - -- `-id=` - The ID of the worker you want to set tags for. -- `tag=` - The API tag resources you want to set on the worker. -- `version=` - The version of the worker to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/commands/workers/update.mdx b/website/content/docs/commands/workers/update.mdx deleted file mode 100644 index 1348df728..000000000 --- a/website/content/docs/commands/workers/update.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: docs -page_title: workers update - Command -description: >- - The "workers update" command updates an existing worker resource. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# workers update - -Command: `boundary workers update` - -The `boundary workers update` command lets you update a Boundary worker with a given ID. - -## Example - -This example updates the name and description of a worker with the ID `w_1234567890`: - -```shell-session -$ boundary workers update -id w_1234567890 -name "devops" -description "Worker for DevOps" -``` - -## Usage - - - -```shell-session -$ boundary workers update [options] [args] -``` - - - -### Command options - -- `description=` - A description to set on the worker. -- `id=` - The ID of the worker you want to update. -- `name=` - The name to set on the worker. -- `version=` - The version of the worker to perform the operation on. -If you do not specify a version, the command performs a check-and-set automatically. - -@include 'cmd-option-note.mdx' \ No newline at end of file diff --git a/website/content/docs/common-workflows/index.mdx b/website/content/docs/common-workflows/index.mdx deleted file mode 100644 index fec55efb7..000000000 --- a/website/content/docs/common-workflows/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: docs -page_title: Common Workflows -description: Common workflows for Boundary ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Common Workflows - -This section covers common workflows for managing targets, identities, and sessions within Boundary. This section assumes you've already covered the [Getting Started](/boundary/docs/getting-started) section and are familiar with basic Boundary knowledge. This section extends Getting Started by showing how to accomplish common workflows in the admin console, the command line, and with our [Terraform provider](https://github.com/hashicorp/terraform-provider-boundary). - -For more detailed guides on using Boundary please consult our [Learn site](/boundary/tutorials). diff --git a/website/content/docs/common-workflows/manage-scopes.mdx b/website/content/docs/common-workflows/manage-scopes.mdx deleted file mode 100644 index ab201e781..000000000 --- a/website/content/docs/common-workflows/manage-scopes.mdx +++ /dev/null @@ -1,154 +0,0 @@ ---- -layout: docs -page_title: Manage Scopes -description: How to manage Boundary scopes ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Manage Scopes - -[Scopes](/boundary/docs/domain-model/scopes) are a foundational part of Boundary. They allow users to partition resources and assign ownership of resources to principals. There are three types of scopes within Boundary: - -1. Global (`global`) -2. Org -3. Project - -These are in a hierarchy: - -- There is only one single `global` scope. It is meant as the entry point for initial administration/setup and to manage org scopes. -- Under the `global` scope there can be many org scopes. These are used to hold IAM-related resources and project scopes. -- Under each org scope can be many project scopes. These are used to hold infrastructure-related resources. - -Some resources can only be associated with a specific level of scope. As an example, [Targets](/boundary/docs/domain-model/targets) can only be contained within a project scope. Other resources can be contained by multiple scopes. For example, users can be created within the `global` scope or an org-level scope. See the [domain model](/boundary/docs/domain-model) for detailed resource specific information. - -In this example, we're going to create two scopes, an org and a project. - -~> All resource IDs in this example are illustration only - IDs are uniquely generated for every resource upon creation with the exception being -generated resources in `dev` mode. Please make sure to use the resource IDs that are generated when running this example. For example, if you run -`boundary users create`, use the resource ID of the user seen in stdout, not the ID in the example command. - -## Create an Org - -In this example, we're going to create an org, which lives in the `global` scope. - -~> The CLI and UI will default to having certain administrative roles be created -automatically when a scope is created, so that the user that created the scope -can immediately manage it. The Terraform provider defaults skipping creation of -those roles so that resources are not created outside of Terraform's purview. To -simplify this example, we are telling Terraform to allow these roles to be -created in both this section and in the next section where we create a project -scope. - - - - -```bash -$ boundary scopes create -scope-id global -name my_org -description 'My first org' - -Scope information: - Created Time: Tue, 29 Sep 2020 05:48:22 PDT - Description: My first org - ID: o_y0fEd8iY2J - Name: my_org - Updated Time: Tue, 29 Sep 2020 05:48:22 PDT - Version: 1 - - Scope (parent): - ID: global - Name: global - Type: global -``` - - - - -1. Navigate to the Boundary landing page. -1. Choose the **New** button. -1. Fill org details. -1. Choose **Save** and view the org on the Boundary landing page. - - - - - - -```hcl -resource "boundary_scope" "org" { - scope_id = "global" - name = "my_org" - description = "My first org" - auto_create_default_role = true - auto_create_admin_role = true -} -``` - - - - -## Create a Project - -Next, we're going to add a project scope to our org. - - - - -```bash -$ boundary scopes create -scope-id o_0MkQUfE9jA -name my_project -description 'My first project' - -Scope information: - Created Time: Tue, 29 Sep 2020 05:57:45 PDT - Description: My first project - ID: p_jqCwqjSTQ4 - Name: my_project - Updated Time: Tue, 29 Sep 2020 05:57:45 PDT - Version: 1 - - Scope (parent): - ID: o_0MkQUfE9jA - Name: my_org - Parent Scope ID: global - Type: org -``` - - - - -1. Navigate to an org, which leads to an overview of projects within that org. -1. Choose the **New** button. -1. Fill project details. -1. Choose **Save** and view the project edit form page. -1. _Note_: by default, edit forms are disabled to help prevent unintended edits. To edit your new project choose **Edit Form**. - - - - - - -```hcl -resource "boundary_scope" "project" { - name = "my_project" - description = "My first project" - - # scope_id is taken from the org resource defined above - scope_id = boundary_scope.org.id - auto_create_admin_role = true - auto_create_default_role = true -} -``` - - - diff --git a/website/content/docs/common-workflows/manage-sessions.mdx b/website/content/docs/common-workflows/manage-sessions.mdx deleted file mode 100644 index 985d5c347..000000000 --- a/website/content/docs/common-workflows/manage-sessions.mdx +++ /dev/null @@ -1,206 +0,0 @@ ---- -layout: docs -page_title: Manage Sessions -description: How to manage Boundary sessions ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Manage Sessions - -[Sessions](/boundary/docs/domain-model/sessions) are Boundary resources created when connecting to a [Target](/boundary/docs/domain-model/targets). A target allows Boundary users to define an endpoint with a protocol and default port to establish a session. Unless specified with a `-host-id` flag when establishing a session, Boundary will choose one [Host](/boundary/docs/domain-model/hosts) from the target's [Host Sets](/boundary/docs/domain-model/host-sets) to connect to at random. - -In this section, we'll show you the basics of how to start a session, view the session details, and cancel a session in Boundary using the CLI. - -We assume you're running Boundary in `dev` mode using the default target resource of `ttcp_1234567890`. We also assume you've authenticated using the CLI. See the output of `boundary dev` for these login values. - -## Start a Session - -Connecting to a target creates a session in Boundary (via a call to the target to authorize a session for the user). To demonstrate what a session looks like we are going to connect to a `tcp` target with a default port of 22 for SSH access. - -```bash -$ boundary connect ssh -target-id ttcp_1234567890 -- - -Proxy listening information: - Address: 127.0.0.1 - Connection Limit: 1 - Expiration: Wed, 30 Sep 2020 23:18:14 MST - Port: 61991 - Protocol: tcp - Session ID: s_h7vBIhH5SZ -``` - -For more information regarding different ways to connect to a target behind Boundary see [Connect to Target](/boundary/docs/getting-started/connect-to-target) under Getting Started and [Advanced Session Establishment](#advanced-session-establishment) below. - -## View Sessions - - - - -View all sessions which Boundary has for the project `p_1234567890` by listing them. - -```bash -$ boundary sessions list -scope-id p_1234567890 - -Session information: - ID: s_h7vBIhH5SZ - Status: active - Created Time: 2020-09-30T15:18:14-07:00 - Expiration Time: 2020-09-30T23:18:14-07:00 - Updated Time: 2020-09-30T15:18:35-07:00 - User ID: u_1234567890 - Target ID: ttcp_1234567890 -``` - -We can get a more detailed view of a specific session by reading it. - -```bash -$ boundary sessions read -id s_h7vBIhH5SZ - -Session information: - Auth Token ID: at_51XQGx0bzk - Created Time: Wed, 30 Sep 2020 15:18:14 MST - Endpoint: tcp://localhost:22 - Expiration Time: 2020-09-30T23:18:14-07:00 - Host ID: hst_1234567890 - Host Set ID: hsst_1234567890 - ID: s_h7vBIhH5SZ - Status: active - Target ID: ttcp_1234567890 - Type: tcp - Updated Time: 2020-09-30T15:18:35-07:00 - User ID: u_1234567890 - Version: 2 - - Scope: - ID: p_1234567890 - Name: Generated project scope - Parent Scope ID: o_1234567890 - Type: project - - States: - Start Time: Wed, 30 Sep 2020 15:18:35 MST - Status: active - - End Time: Wed, 30 Sep 2020 15:18:35 MST - Start Time: Wed, 30 Sep 2020 15:18:14 MST - Status: pending -``` - - - - -1. Navigate to a project, then to sessions. -1. View the session information provided there. - - - - - -## Cancel a Session - - - -To send a request to Boundary to cancel a session: - -```bash -$ boundary sessions cancel -id s_h7vBIhH5SZ - -Session information: - Auth Token ID: at_51XQGx0bzk - Created Time: Wed, 30 Sep 2020 15:18:14 MST - Endpoint: tcp://localhost:22 - Expiration Time: 2020-09-30T23:18:14-07:00 - Host ID: hst_1234567890 - Host Set ID: hsst_1234567890 - ID: s_h7vBIhH5SZ - Status: canceling - Target ID: ttcp_1234567890 - Type: tcp - Updated Time: 2020-09-30T15:19:17-07:00 - User ID: u_1234567890 - Version: 3 - - Scope: - ID: p_1234567890 - Name: Generated project scope - Parent Scope ID: o_1234567890 - Type: project - - States: - Start Time: Wed, 30 Sep 2020 15:19:17 MST - Status: canceling - - End Time: Wed, 30 Sep 2020 15:19:17 MST - Start Time: Wed, 30 Sep 2020 15:18:35 MST - Status: active - - End Time: Wed, 30 Sep 2020 15:18:35 MST - Start Time: Wed, 30 Sep 2020 15:18:14 MST - Status: pending -``` - -Boundary then cancels the session and move it into a "Terminated" state. - - - - -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_. - - - - - -## 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. - -```bash -$ boundary targets authorize-session -id ttcp_1234567890 - -Target information: - Authorization Token: $LONG_STRING_OF_TEXT - Created Time: 2020-09-30T15:18:14-07:00 - Host ID: hst_1234567890 - Scope ID: p_1234567890 - Session ID: s_h7vBIhH5SZ - Target ID: ttcp_1234567890 - Type: tcp - User ID: u_1234567890 -``` - -Note: You can also provide a `-host-id` flag in the request above which ensures connecting using the provided Authorization Token will connect you to this specific host. - -```bash -$ boundary connect -authz-token $LONG_STRING_OF_TEXT - -Proxy listening information: - Address: 127.0.0.1 - Connection Limit: 1 - Expiration: Wed, 30 Sep 2020 23:18:14 MST - Port: 61991 - Protocol: tcp - Session ID: s_h7vBIhH5SZ -``` - -With the above address and port information we can now connect to our local proxy and have our tcp traffic sent through the Boundary system. - -```bash -$ ssh 127.0.0.1 -p 61991 -... -``` diff --git a/website/content/docs/common-workflows/manage-targets.mdx b/website/content/docs/common-workflows/manage-targets.mdx deleted file mode 100644 index 5dc6a1653..000000000 --- a/website/content/docs/common-workflows/manage-targets.mdx +++ /dev/null @@ -1,245 +0,0 @@ ---- -layout: docs -page_title: Manage Targets -description: How to manage Boundary targets ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Manage Targets - -[Targets](/boundary/docs/domain-model/targets) are Boundary resources which contain one or more [Host Sets](/boundary/docs/domain-model/host-sets). A target allows Boundary users to define an endpoint with a default port and a protocol to establish a session. Unless specified with a `-host-id` flag, Boundary will choose one [Host](/boundary/docs/domain-model/hosts) in the host set to connect to at random. - -In this section, we'll show you the basics of how to define a host, host set, and a target in Boundary on the CLI, the admin console, and using our [Terraform provider](https://github.com/hashicorp/terraform-provider-boundary). - -We assume you're running Boundary in `dev` mode and have a default static host-catalog of `hcst_1234567890`. We also assume you've logged in on the command line and the admin console. See the output of `boundary dev` for these login values. - -~> Note that all resource IDs in this example are illustration only - IDs are uniquely generated for every resource upon creation with the exception being -generated resources in `dev` mode. Please make sure to use the resource IDs that are generated when running this example. For example, if you run -`boundary users create`, use the resource ID of the user seen in stdout, not the ID in the example command. - -## Define a Host - -For this example, we're going to create a target to access postgres on `localhost`. This assumes a couple of things: - -1. The host address is `127.0.0.1` -2. The target port is `:5432` - - - - -```bash -boundary hosts create static -name postgres -description "Postgres host" -address "127.0.0.1" -host-catalog-id "hcst_1234567890" - -Host information: - Created Time: Mon, 28 Sep 2020 18:12:39 PDT - Description: Postgres host - Host Catalog ID: hcst_1234567890 - ID: hst_N5l67hLYrQ - Name: postgres - Type: static - Updated Time: Mon, 28 Sep 2020 18:12:39 PDT - Version: 1 - - Scope: - ID: p_1234567890 - Name: Generated project scope - Parent Scope ID: o_1234567890 - Type: project - - Attributes: - address: 127.0.0.1 -``` - - - - -1. Navigate to a host catalog (Projects > Project > Host Catalogs > Host Catalog). -1. Choose **New Host** from the **Manage** dropdown. -1. Fill host details. -1. Choose **Save** and view the host edit form page. - - - - - - -To define this same host using our Terraform provider: - -```hcl -resource "boundary_host" "postgres" { - type = "static" - name = "postgres" - description = "Postgres host" - address = "127.0.0.1" - host_catalog_id = "hcst_1234567890" -} -``` - - - - -## Define a Host Set - -Host sets allow us to group hosts providing equivalent 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. - - - - -```bash -boundary host-sets create static -name "postgres" -description "Postgres host set" -host-catalog-id hcst_1234567890 - -Host Set information: - Created Time: Mon, 28 Sep 2020 18:27:10 PDT - Description: Postgres host set - Host Catalog ID: hcst_1234567890 - ID: hsst_z7gDCPSig5 - Name: postgres - Type: static - Updated Time: Mon, 28 Sep 2020 18:27:10 PDT - Version: 1 - - Scope: - ID: p_1234567890 - Name: Generated project scope - Parent Scope ID: o_1234567890 - Type: project -``` - - - - -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. -1. Choose **Save** and view the host set edit form page. - - - -Then associate the host set with a host: - -1. From the host set edit form, navigate to the **Hosts** tab. -1. Choose **Add Existing Host** from the **Manage** dropdown. -1. Select one or more hosts to associate with the host set. -1. Choose the **Add Hosts** button and view the hosts list. - - - - - - -To define this host set in Terraform: - -```hcl -resource "boundary_host_set" "postgres" { - type = "static" - name = "postgres" - description = "Host set for postgres" - host_catalog_id = "hcst_1234567890" - - // taken from the Terraform example above - host_ids = [ boundary_host.postgres.id ] -} -``` - - - - -## Define a Target - - - - -```bash -boundary targets create tcp -name 'postgres' -description 'Postgres target' -default-port 5432 -scope-id p_1234567890 -session-connection-limit '-1' - -Target information: - Created Time: Mon, 28 Sep 2020 18:43:12 PDT - Description: Postgres target - ID: ttcp_CzVQA3adBf - Name: postgres - Session Connection Limit: -1 - Session Max Seconds: 28800 - Type: tcp - Updated Time: Mon, 28 Sep 2020 18:43:12 PDT - Version: 1 - - Scope: - ID: p_1234567890 - Name: Generated project scope - Parent Scope ID: o_1234567890 - Type: project - Attributes: - Default Port: 5432 -``` - - - - -1. Navigate to a project, then to targets. -1. Choose the **New** button. -1. Fill the target details. -1. Choose **Save** and view the host set edit form page. - - - -Then associate the host set with a host: - -1. From the target edit form, navigate to the **Host Sets** tab. -1. Choose **Add Host Sets** from the **Manage** dropdown. -1. Select one or more host sets to associate with the target. -1. Choose the **Add Host Sets** button and view the host sets list. - - - - - - -To define this target in Terraform: - -```hcl -resource "boundary_target" "postgres" { - type = "tcp" - name = "postgres" - description = "Postgres target" - scope_id = "p_1234567890" - session_connection_limit = -1 - default_port = 5432 - - // taken from the example above - host_set_ids = [ - boundary_host_set.postgres.id - ] -} -``` - - - diff --git a/website/content/docs/community/index.mdx b/website/content/docs/community/index.mdx deleted file mode 100644 index 3cc96d9b8..000000000 --- a/website/content/docs/community/index.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: docs -page_title: Boundary Community Edition -description: An introduction to Boundary Community Edition ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary Community Edition - -Boundary provides secure remote access to critical systems with fine-grained -authorizations based on trusted identities. While HCP Boundary provides a -managed solution, Boundary Community Edition is a self-managed distribution that organizations -can deploy on-premise to manage access to infrastructure endpoints. The source -code for Boundary Community Edition is freely available on GitHub. The following sections -contain information on the use case for Boundary and how to install and -configure self-managed Boundary environments. - -Traditional approaches like SSH bastion hosts or VPNs require distributing and -managing credentials, configuring network controls like firewalls, and exposing -the private network. Boundary Community Edition provides secure access to hosts and critical -systems without having to manage credentials or expose your network, and is -free. - -Boundary Community Edition is designed to be straightforward to understand, highly scalable, -and resilient. It can run in clouds, on-premise, or within secure enclaves. -Boundary does not require an agent to be installed on the end host. - -![How Boundary Works](/img/how-boundary-works_light.png#light-theme-only) -![How Boundary Works](/img/how-boundary-works_dark.png#dark-theme-only) - -## Tutorial - -Refer to the [Get Started with self-hosted Boundary](/boundary/tutorials/oss-getting-started) tutorial series to learn how to install and configure Boundary. diff --git a/website/content/docs/concepts/aliases.mdx b/website/content/docs/concepts/aliases.mdx deleted file mode 100644 index 158adeee9..000000000 --- a/website/content/docs/concepts/aliases.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: docs -page_title: Aliases -description: >- - Aliases let you associate a string with a resource. Learn how to use an alias instead of an ID when you connect to a target. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Aliases - -An alias is a globally unique, DNS-like string that is associated with a destination resource. You can establish a session to a target by referencing its alias, instead of having to provide a target ID or target name and scope ID. - -For example, if you have an alias `boundary.dev`, you can use it to connect to a target with the following command: `boundary connect ssh boundary.dev`. - -## Background - -When you create a resource in Boundary, it assigns the resource a randomly generated identifier. You must use those IDs to perform actions in Boundary. When you connect to a target using the terminal, you must reference the target ID or target name and scope name. - -As an example, to SSH to a target, you can execute the command `boundary connect ssh -target-id ttcp_123456789`. - -Since it can be difficult to remember the unique IDs, users frequently have to look up the identifiers for any resources they want to operate on. - -Aliases simplify this process. When you create an alias and associate it with a target, you can later use the alias `value` instead of the target ID in commands. Boundary automatically resolves to the target that the alias references. - -## Permissions - -The existence of an alias for a Boundary resource does not change how permissions function. Anyone can attempt to use an alias to access a target, but if you do not have permission to access the target, the attempt fails. You can create an alias for a target, even if you do not have permission to access the target. - -Separating the permissions from aliases and destination resources means a different set of people can manage the aliases than the people who have permission to operate on targets. For example, you may have a project with a sensitive set of targets. You can configure Boundary to allow a select few users to manage those targets, while a different group of users manage the aliases. - -## More information - -Refer to [Overview of aliases](/boundary/docs/targets/configuration) to learn about configuring aliases. \ No newline at end of file diff --git a/website/content/docs/concepts/auditing.mdx b/website/content/docs/concepts/auditing.mdx deleted file mode 100644 index 6accda489..000000000 --- a/website/content/docs/concepts/auditing.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: docs -page_title: Auditing -description: >- - Learn how Boundary can help improve compliance and threat management by using session recording to audit user access and actions. Understand the BSR format. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Auditing - -A fundamental challenge of securing access to sensitive computing resources is creating a system of record around users' access and actions over remote sessions. -Organizations are typically motivated to invest in recording capabilities to address at least one of the following: - -1. **Compliance management**: Organizations need to prove compliance of their infrastructure's security posture to internal or external auditors. -Records of remote access are often required. - - Various laws and regulations have record keeping requirements. - These laws and regulations specify what activities need to be recorded and how long the records must be kept. - One of the reasons an organization records access to a system is to comply with the record keeping requirements of a law or regulation. - -2. **Threat management**: Organizations must monitor, investigate, and react to security incidents and malicious activity. -Further, security teams seek to prevent incidents and proactively identify potential threats in real time. - - In the course of their investigations, security teams may need to identify suspicious activity conducted by a specific principal or against a specific target. - Administrators may require a breakdown of session information by user or a time-based view of past activities, for example. - -## Session recording - -Boundary provides auditing capabilities via session recording. -In Boundary, a session represents a set of connections between a user and a host from a target. -The session begins when an authorized user requests access to a target, and it ends when that access is terminated. -All sessions have a fixed time limit, and all connections are proxied through a worker. - -Sessions are recorded by workers. -Workers are the proxy between an end user and a target. -No session data is routed through a controller during the recording stage. -The worker stores the session recording on local disk during the recording phase, and then moves the recording to the external object store when the session is terminated. Session recordings are stored in the BSR (Boundary Session Recording) format. - -## More information - -Refer to the following topics for more information: - -- [Session recording](/boundary/docs/session-recording) -- [BSR file data structure](/boundary/docs/session-recording/data/bsr-file-structure) \ No newline at end of file diff --git a/website/content/docs/concepts/credential-management.mdx b/website/content/docs/concepts/credential-management.mdx deleted file mode 100644 index 801cbf3e8..000000000 --- a/website/content/docs/concepts/credential-management.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -layout: docs -page_title: Credential management -description: >- - Learn about using credential brokering or credential injection to authenticate users. Understand the benefits and security considerations of each method. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Credential management - -When users connect to a remote machine, they typically need a set of credentials for authentication. -After they connect to the machine, they may also require another set of credentials to access services or other machines within the network. - -There are two credential management paradigms in Boundary, credential brokering and credential injection. - -## Credential brokering - -Credential brokering is the process by which credentials are fetched from a credential store, and then returned back to the user. - -The user must already be authorized to connect to a specific target to have credentials for that target brokered back to them. - -Credentials are brokered when the session is established. - -The credential brokering process works as follows: - -1. The user authenticates to Boundary using either the CLI or desktop app. -1. The user requests a connection to the target. - - The controller fetches credentials from the credential store and passes the credentials to the user. -1. The user establishes a connection to the session. - - The controller assigns the job to a worker, and the worker establishes a session to the target. -1. The user enters the credentials. - - The user is authenticated to the target. - -You can attach brokered credentials to SSH, TCP, or RDP targets. -Brokered credentials can take the form of a token, username password, username password domain, JSON blob, or an unstructured secret stored in Vault, for example. - -### Security considerations - -Consider a scenario where a user wants to access a target using SSH. - -![Credential brokering diagram](/img/credential-brokering.png) - -In this scenario, the user must be authorized to access the target. -If they are authorized, they can authenticate themselves to the machine using credentials that were brokered, or returned, back to them. - -If the user is not authorized to access the target, they will not be able to retrieve brokered credentials for that target. - - Boundary credential brokering animated - -If a user wants to abstract the authentication process using brokered credentials, they can use the `boundary connect` ssh-style command, and pass credentials to sshpass, PuTTY, or another such tool. -In this scenario, while the brokered credential may not be visible to the user, they still interact with the brokered credentials to perform authentication. - - Pass credentials using the boundary connect command - -Additionally, with Vault's dynamic secrets engine, an administrator could configure their environment such that secrets are essentially one-time passwords, as the credentials are revoked after the session is terminated. - -## Credential injection - -This feature requires HCP Boundary or Boundary Enterprise - -Credential injection is the process by which a credential is fetched from a credential store and then passed on to a worker for authentication to a remote machine. - -With credential injection, the user never sees the credential required to authenticate to the target. - -This provides a passwordless experience for the user, as the worker does both session establishment and authentication to the target on behalf of the user. -This process differs from credential brokering, where credentials are returned to the user rather than injected into the session on worker nodes. - -The credential injection process works as follows: - -1. The user authenticates to Boundary. -1. The user requests a connection to a target. - - The controller fetches credentials from the credential store. -1. The user establishes a connection to the session. - - The controller assigns the job to a worker, and the worker establishes a session to the target. - Then the controller passes credentials to the worker. - The worker authenticates to the target, and the user is then authenticated to the target. - -### Target types - -Credential injection is required for the RDP and SSH target types. - - - -RDP credential injection is currently in beta. -For more information about known issues, configuration requirements, and compatibility with Windows, refer to [RDP credential injection compatibility](/boundary/docs/credentials/rdp-testing-and-compatibility-matrix). - - - -You can inject the following credential types when you access SSH targets: - -- SSH certificates -- Usernames and passwords -- Usernames and public keys - -Keyboard-interactive authentication is not supported for credential injection. -When you use Username password credentials, ensure that your SSH server is configured to allow password authentication. - -You can inject username password domain credentials when you access RDP targets in Windows environments that use Active Directory or NTLMv2 for authentication. - -You can broker additional credentials to RDP or SSH targets after the session is established using injected credentials. - -### Security considerations - -Consider a scenario where a user wants to access a target using SSH. - -![Credential injection diagram](/img/credential-injection.png) - -In this scenario, the user must be authorized to access the target. -If they are authorized, they have the ability to connect to the worker. -Upon connecting to the worker, the worker attempts to establish a remote session to the target, and attempts authentication on behalf of the user. - - Boundary credential injection animated - -If the user is not authorized to access the target, the credentials are not injected on their behalf, nor are the credentials brokered back to them. - -## Tutorial - -Refer to the [Broker static credentials to your first target](/boundary/tutorials/get-started-hcp/hcp-getting-started-credentials) tutorial to practice configuring credential brokering. - -Refer to the [Manage SSH keys with HCP Boundary and Vault](/boundary/tutorials/hcp-administration/hcp-ssh-cred-injection) tutorial to practice configuring credential injection. - -## More information - -Refer to [Credentials in Boundary](/boundary/docs/credentials) to learn more about how Boundary centralizes credential management to enhance security. - -To configure credential brokering or credential injection with static credentials, refer to the following topics: - -- [Create a static credential store](/boundary/docs/credentials/static-cred-boundary) -- [Create a Vault credential store](/boundary/docs/credentials/static-cred-vault). - -Refer to [Secrets engines](/vault/docs/secrets) to learn more about the Vault dynamic secrets engine. \ No newline at end of file diff --git a/website/content/docs/concepts/iam.mdx b/website/content/docs/concepts/iam.mdx deleted file mode 100644 index 8ba3d7b0b..000000000 --- a/website/content/docs/concepts/iam.mdx +++ /dev/null @@ -1,120 +0,0 @@ ---- -layout: docs -page_title: Identity and access management (IAM) -description: >- - Learn how scopes, auth methods, accounts, users, groups, and roles make up the identity and access management (IAM) system. View examples of grant strings. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Identity and access management (IAM) - -There are 6 key components to Boundary's identity and access management system: **Scopes**, **Auth Methods**, **Accounts**, **Users**, **Groups**, and **Roles**. - -## Scopes -[Scopes](/boundary/docs/domain-model/scopes) can be considered as containers for resources and permissions. Each scope also has a permissions boundary that is isolated from other scopes on the same level. There are three types of scopes: -- **Global** - The highest-level scope of Boundary where administrators configure and manage Boundary for the entire company. -- **Org (Organization)** - Org scopes are contained in the global scope and are typically used to represent business units, organizations, or departments. -Org scopes can also be used to contain multiple production-level auth methods in separate scopes. -- **Project** - Project scopes are contained in Org scopes and be used to separate different business workflows. For example, projects can be used to represent different teams, products, or environments (test, dev, prod). - -## Auth methods -[Auth methods](/boundary/docs/domain-model/auth-methods) are resources that authenticate users to -Boundary. Auth methods can only be contained by the global or Org scopes. The available auth methods are: -- Username/Password -- [OIDC](/boundary/tutorials/identity-management/oidc-auth) -- LDAP - -## Accounts -[Accounts](/boundary/docs/domain-model/accounts) are resources that represent an authenticated user from a trusted identity provider through a Boundary auth method. Accounts must belong to an auth method, and can be associated with a single Boundary user. Boundary accounts can belong to the global or Org Scopes. - -## Users -[Users](/boundary/docs/domain-model/users) are resources that represent an individual person or entity for the purposes of -access control. A user can contain multiple accounts from multiple auth methods, and can belong to the global or Org Scopes. - -## Groups -[Groups](/boundary/docs/domain-model/groups) are resources that represent a collection of users, and can be contained by any -scope. [Managed groups](/boundary/docs/domain-model/managed-groups) are a special kind of group that syncs with the auth -method's identity provider to provide up-to-date information. - -## Roles -[Roles](/boundary/docs/domain-model/roles) are resources that contain a collection of -[permissions](/boundary/docs/rbac/assignable-permissions) which are granted to any principal (user or group) from any scope. Roles -can be contained by any scope, and the permissions can be applied to the same scope or any child scope. - -## Access management - -You can add users to Boundary using the password auth method or OIDC/LDAP. - -### Configure users - username/password -There are 3 steps to adding new users to Boundary using the password auth method: -1. Choose the **scope** and the **auth method** that the user will use to authenticate to Boundary. If the desired auth method does not exist, you must create a new one. -2. After the auth method is selected, you can create an **account** under the auth method. -3. In the same scope, create a new **user**, and then attach the new account to the new user. The user is now able to authenticate to Boundary. - -### Configure users - OIDC/LDAP -With the [OIDC](/boundary/tutorials/identity-management/oidc-auth) and LDAP auth methods, Boundary uses data from the identity provider to automatically generate accounts and users in the same scope -as the auth method. The accounts and users are only created once the user authenticates to Boundary for the first time. -The same applies to OIDC/LDAP [managed groups](/boundary/tutorials/identity-management/oidc-idp-groups). - -You can configure the `max_age` in the [OIDC attributes](/boundary/docs/domain-model/auth-methods#oidc-auth-method-attributes) to indicate to the OIDC provider how much time is allowed to pass until a user is challenged to authenticate again. -However, the user will not be prompted to authenticate until the controller's `auth_token_time_to_live` [parameter](/boundary/docs/configuration/controller#auth_token_time_to_live) has expired. -The default value is 7 days. - -To configure time to live in HCP Boundary, refer to [Configure authentication time to live](/hcp/docs/boundary/configure-ttl). - -## Grant permissions -When setting up access controls for a user, it is important to first consider which scope(s) the user needs access to. Roles give users permission to perform actions through grants strings. -It is recommended to add the user to a group, and then add the group to the role(s), instead of adding the user directly to the role(s). This way, you can manage multiple users at the same time, and it is easier to -change the permissions of the user by adding/removing them from groups. You can manage OIDC/LDAP users and managed groups the same way, directly in the provider. - -## Examples -Here are a few examples of access management for personas, using this sample scope structure. In this structure, there are 7 scopes overall: 1 global, 2 Orgs, and 4 -Projects. - -![IAM Example Structure](/img/iam-example-structure.png) - -### Boundary admin -1. **Each** of the 7 scopes requires a role (ex. “admin”) -2. Each role needs to have the user/group added as a principal -3. Each role needs to have the grants of - - - `ids=*;type=*;actions=*` - -### Boundary viewer -1. **Each** of the 7 scopes requires a role (ex. “viewer”) -2. Each role needs to have the user/group added as a principal -3. Each role needs to have the grants of - - - `ids=*;type=*;actions=read,list` - -### Org_A admin -1. The following scopes **each** require a role (ex. “admin”) - - Org_A - - Project_1 - - Project_2 -2. Each role needs to have the user/group added as a principal -3. Each role needs to have the grants of - - - `ids=*;type=*;actions=*` - -### Project_1 admin -1. Project_1 requires a role (ex. “admin”) -2. The role needs to have the user/group added as a principal -3. The role needs to have the grants of - - - `ids=*;type=*;actions=*` - -### Project_1 target access -1. Project_1 requires a role (ex. “target_access”) -2. The role needs to have the user/group added as a principal -3. The role needs to have the grants of - - - `ids=*;type=target;actions=list,read,authorize-session` - - `ids=*;type=session;actions=read:self,cancel:self,list` - -You can use the same roles across “Boundary Admin”, “Org_A Admin”, and “Project_1 Admin” since the scopes and grants are the same. The only difference is -the users/groups that are added to each role. diff --git a/website/content/docs/concepts/transparent-sessions.mdx b/website/content/docs/concepts/transparent-sessions.mdx deleted file mode 100644 index 8885e5cad..000000000 --- a/website/content/docs/concepts/transparent-sessions.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: docs -page_title: Transparent sessions -description: >- - Learn how transparent sessions enable you to connect to target resources without entering resource IDs or port numbers. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Transparent sessions - -@include 'alerts/enterprise-only.mdx' - -Transparent sessions shift Boundary from an active connection model to a passive connection model. Boundary operates in the background instead of requiring you to remember specific resource IDs or ephemeral ports to connect to targets. - -As long as Boundary authenticates a user and the user is authorized to access the target, Boundary intercepts the DNS call and routes traffic through a session automatically. - -Transparent sessions require aliases and the Boundary Client Agent. - -An alias is a globally unique, DNS-like string that is associated with a destination resource. You can establish a session to a target by referencing its alias, instead of having to provide a target ID or target name and scope ID. - -The Boundary Client Agent is Boundary's DNS daemon. -When the Boundary Client Agent runs alongside an authenticated Boundary client, the agent establishes itself as the primary resolver on the system and intercepts DNS requests. - -The Boundary Desktop client facilitates quick target discovery and session establishment using your preferred client. If you configure aliases for your targets, install the Boundary Client Agent, and ensure you are authenticated to the cluster, connections are transparent to the user. Boundary provides OS notifications to make it clear when you connect to a target using a transparent session. - -Boundary supports Windows and MacOS for transparent sessions. - -## More information - -Refer to the following topics for more information: - -- [Aliases](/boundary/docs/concepts/aliases) -- [Boundary Client Agent](/boundary/docs/client-agent) -- [Configure transparent sessions](/boundary/docs/targets/configuration/configure-transparent-sessions) diff --git a/website/content/docs/concepts/workers.mdx b/website/content/docs/concepts/workers.mdx deleted file mode 100644 index b15753f53..000000000 --- a/website/content/docs/concepts/workers.mdx +++ /dev/null @@ -1,88 +0,0 @@ ---- -layout: docs -page_title: Workers -description: >- - Workers let you proxy traffic to private targets. Learn about worker capabilities, using tags to filter tasks, worker health, and best practices for deployment. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Workers -Boundary's architecture consists of three main components: -1. **Control plane** - made up of controllers -1. **Data plane** - made up of workers -1. **Client** - installed on the user's device - -**Controllers** are what users authenticate to using the client, they contain Boundary's resources and permissions. In addition, controllers also communicate with external components -such as the database, KMS, Vault, identity providers, and plugins. - -**Workers** are primarily used as network proxies for Boundary sessions, they allow you to access -private targets. Instead of exposing a private network to the public, or allowing users to have access to entire private networks, workers create a direct network -tunnel between users and targets. - -![How Boundary Works](/img/how-boundary-works_light.png#light-theme-only) -![How Boundary Works](/img/how-boundary-works_dark.png#dark-theme-only) - -## Capabilities -You can use workers in various ways depending on your needs, as follows: - -### Session proxying - -You can use workers to proxy sessions between clients and targets located in public or private networks. In addition, you can configure workers in multi-hop sessions and form a chain of proxies to reach deeper into protected networks. - -### Worker authentication - -Workers can authenticate directly to the control plane or through an upstream worker to the control plane. Authenticating through an upstream worker is also referred to as "multi-hop worker authentication." - -### Controller proxy - -In situations where controllers need access to a private service but don't have network access to it, workers can act as a proxy for communication. This is currently supported for controllers connecting to a private Vault environment. - -### Protocol decryption - -Workers can perform SSH protocol decryption for credential injection and session recording. For session recording, workers also write the recorded session contents directly to the storage -bucket. - -## Multi-hop sessions - -This feature requires HCP Boundary or Boundary Enterprise - -Most organizations want to provide access to infrastructure without exposing private networks. Many organizations also have complex network topologies requiring -inbound traffic to route through multiple network enclaves in order to reach the target system. -Multi-hop sessions allow you to chain together two or more workers across multiple networks to form reverse proxy connections between the user and the target, even in complex networks with strict outbound-only policies. - -## Tags - -In multi-datacenter and multi-cloud operating models, patterns of dividing up controllers, workers, and targets into appropriate regions or networks is often -desired to reduce latency or comply with security standards. You can assign workers tags that Boundary -can filter through, to find the appropriate worker to use for a session. For example, Boundary could filter to workers with tag “A,” to connect to targets in “Network A.” - -![Boundary architecture example showing workers with tags](/img/worker-tags.png) - -## Status and health - -Boundary workers report their status to controllers on a regular basis. You can view the last time a worker reported its status in the admin UI as **Last Seen** and in the CLI as the **Last Status Time**. If a worker hasn't reported status recently, it can be an indication of an unhealthy worker. - -You can query the worker health endpoint to determine the health of a worker. The endpoint returns the worker state, active session count, and connection state of the worker. - -## Tutorial - -Refer to the [HCP credential injection with private Vault](/boundary/tutorials/credential-management/hcp-private-vault-cred-injection) tutorial to practice configuring credential injection. - -Refer to the [Worker-aware targets](/boundary/tutorials/worker-management/target-aware-workers) tutorial to practice configuring worker-aware targets and applying worker filters. - - -## More information - -Refer to the following topics for more information: - -- [TLS in Boundary](/boundary/docs/secure/encryption/connections-tls) -- [Credential injection](/boundary/docs/concepts/credential-management#credential-injection) -- [Session recording](/boundary/docs/session-recording) -- [Route traffic through a worker](/boundary/docs/workers/worker-tags) -- [Boundary health endpoints](/boundary/docs/monitor/health) -- [Multi-hop sessions](/boundary/docs/workers/multi-hop) -- [Filtering and listing resources](/boundary/docs/filtering) diff --git a/website/content/docs/configuration/controller.mdx b/website/content/docs/configuration/controller.mdx deleted file mode 100644 index 2ddcab3c1..000000000 --- a/website/content/docs/configuration/controller.mdx +++ /dev/null @@ -1,348 +0,0 @@ ---- -layout: docs -page_title: Controller configuration -description: >- - Learn about configuring controller-specific parameters. Understand how to configure the required KMS stanzas, and view a complete configuration example. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `controller` stanza - -The `controller` stanza configures Boundary controller-specific parameters. - -```hcl -controller { - name = "example-controller" - description = "An example controller" - database { - url = "postgresql://:@10.0.0.1:5432/" - max_open_connections = 5 - } -} -``` - -- `name` - Specifies a unique name of this controller within the Boundary - cluster. This value can be a direct name string, can refer to a file on disk - (file://) from which an name will be read; or an env var (env://) from which - the name will be read. - -- `description` - Specifies a friendly description of this controller. This value can be a direct description string, -can refer to a file on disk (file://) from which a description will be read; or an env var (env://) from which the -description will be read. - -- `database` - Configuration block with two valid parameters for connecting to Postgres: - - - `url` - Configures the URL for connecting to Postgres. If your Postgres server has TLS disabled, - Boundary will not be able to connect by default. To run Boundary without a TLS connection - to Postgres (not recommended for production usage), add the `sslmode=disable` parameter to - your connection string, such as `url = "postgresql://postgres:boundary@192.168.1.1:5432/boundary?sslmode=disable"` - This value can refer to a file on disk (file://) from which a URL will be read; an env - var (env://) from which the URL will be read; or a direct database URL (postgres://). - Since 0.10.5, this value is re-read on `SIGHUP` to support rotation of the database - credential. - - `migration_url` - Can be used to specify a different URL for migrations, as that - usually requires higher privileges. - This value can refer to a file on disk (file://) from which a URL will be read; an env - var (env://) from which the URL will be read; or a direct database URL (postgres://). - - `max_open_connections` - Can be used to control the maximum number of - connections that can be opened by the controller. - The minimum number of connections required is 5. - Setting this value to 0 will allow the controller to open as many connections as needed. - This value can be a string or an integer representing the max number of connections, - or a string that can refer to a file - on disk (file://) from which the number of connections will be read, - or an env var (env://) from which the number of connections will be read. - - `max_idle_connections` - Can be used to control the maximum number of - idle connections in the idle connection pool. - If `max_open_connections` is greater than 0 but less than - `max_idle_connections`, then `max_idle_connections` will be reduced to match the `max_open_connections` limit. - Setting this value to 0 will mean that no idle connections are retained. - If not set or set to less than 0, the default - [sql.DB](https://pkg.go.dev/database/sql#DB.SetMaxIdleConns) setting will be used. - This value can be a string or an integer representing the max number of connections, - or a string that can refer to a file on disk (file://) from which the number of connections will be read, - or an env var (env://) from which the number of connections will be read. - - `max_idle_time` - Can be used to control the maximum amount of time - a connection may be idle. - Setting this value to 0 will mean that connections are not closed due to a - connections idle time. - If not set or set to less than 0, the default - [sql.DB](https://pkg.go.dev/database/sql#DB.SetConnMaxIdleTime) setting will be used. - This value can be a string representing the duration, - or a string that can refer to a file on disk (file://) from which the duration will be read, - or an env var (env://) from which the duration will be read. - Valid time units are anything specified by Golang's - [ParseDuration()](https://golang.org/pkg/time/#ParseDuration) method. - -- `public_cluster_addr` - Specifies the public host or IP address (and - optionally port) at which the controller can be reached _by workers_. This will - be used by workers after initial connection to controllers via the worker's - `initial_upstreams` block. This defaults to the address of the listener marked for - `cluster` purpose. It is used if there is a load balancer in front of multiple Boundary controllers. This is also especially useful for cloud environments that do not - bind a publicly accessible IP to a NIC on the host directly, such as an Amazon - EIP. This value can be a direct address string, can refer to a file on disk (file://) - from which an address will be read; an env var (env://) from which the - address will be read; or a [go-sockaddr template](https://godoc.org/github.com/hashicorp/go-sockaddr/template). - Note that the address should not include the protocol prefixes like `http://` or `https://`. - -- `auth_token_time_to_live` - Maximum time to live (TTL) for all auth tokens globally (pertains - to all tokens from all auth methods). Valid time units are anything specified by Golang's - [ParseDuration()](https://golang.org/pkg/time/#ParseDuration) method. Default is 7 days. - -- `auth_token_time_to_stale` - Maximum time of inactivity for all auth tokens globally (pertains - to all tokens from all auth methods). Valid time units are anything specified by Golang's - [ParseDuration()](https://golang.org/pkg/time/#ParseDuration) method. Default is 1 day. - -- `scheduler` - The configuration block that specifies the job scheduler behavior on the controller. - - - `job_run_interval` - The interval at which the scheduler will call the database to check if - there are any jobs that need to run. Default is 1 minute. - - - `monitor_interval` - The interval at which the scheduler will check and interrupt any defuncted - jobs that were running on another scheduler. A job is considered defuncted if it has not reported - a status to the database for 5 minutes. Once a job is interrupted it will be run immediate on the - first controller available. Default is 30 seconds. - -- `graceful_shutdown_wait_duration` - Amount of time Boundary will wait before initiating the shutdown procedure, - after receiving a shutdown signal. In this state, Boundary still processes requests as normal but replies - with `503 Service Unavailable` to any health requests. This is designed to allow an operator to configure - load-balancers to preemptively stop new traffic to a Boundary instance that is going away. Valid time units - are anything specified by Go's [ParseDuration()](https://golang.org/pkg/time/#ParseDuration) method. Only - used when an `ops` listener is set and the Controller is present. Default is 0 seconds. - -- `api_rate_limit` - Sets limits on the rate of requests for controller API endpoints. -This setting can help prevent resources from being overwhelmed with too many requests at a time. -The `api_rate_limit` configuration stanza contains the following fields: - - - `resources` - Specifies the Boundary resource you want to limit rates for. - The resource can be `target` or `credential-library`, for example. - You can include all resources by using the wildcard `"*"`. - - `actions` - Specifies the actions you want to limit on the resource. - The actions could be `create`, `list`, or `authorize-session`, for example. - You can include all actions by using the wildcard `"*"`. - - `per` - Specifies how the limit is allocated. - You can choose from the following values: - - `total` - Counts all requests, regardless of auth token or IP address. - - `ip-address` - Counts requests per IP address. - This value lets you limit requests per IP address. - - `auth-token` - Counts requests per the user's auth token. - This value lets you limit requests per auth token. - - You can also use the wildcard `"*"` to include all values, but only when `unlimited` is also configured. - - `limit` - Specifies the number of requests that are allowed within the `period`. - - `period` - Specifies the time window for the `limit`. - The limit resets after this period of time has passed. - - `unlimited` - Indicates that the corresponding resources and actions should not be rate limited. - If you set this value to `true`, you should not specify values for the `limit` and `period` or you will receive an error. - - For more information about how API rate limiting works, refer to the [API rate limiting](/boundary/docs/api/rate-limiting) documentation. - -- `api_rate_limit_disable` - Disables API rate limiting, if set to `true`. -If `api_rate_limit_disable` is set to `true`, and you have provided any `api_rate_limit` stanzas, you will receive an error. -- `api_rate_limit_max_quotas` - Specifies the maximum number of API rate limiting quotas that Boundary allows. - -- `max_page_size` - The max allowed page size when paginating. If a user specifies a page size greater than - this number, it will be truncated to this number. This is also used as the default page size for any requests - that don't explicitly specify a page size. Default is 1000. - -## Signals - -The `SIGHUP` signal causes a controller to reload its configuration file to pick up any updates to the `database url` value. Any other updated values are ignored. - -The `SIGTERM` and `SIGINT` signals initiate a graceful shutdown on a controller. A graceful shutdown closes listeners and servers before shutting down the controller. - -## KMS configuration - -The controller requires two KMS stanzas for `root` and `worker-auth` purposes: - -```hcl -# Root KMS configuration block: this is the root key for Boundary -# Use a production KMS such as AWS KMS in production installs -kms "aead" { - purpose = "root" - aead_type = "aes-gcm" - key = "sP1fnF5Xz85RrXyELHFeZg9Ad2qt4Z4bgNHVGtD6ung=" - key_id = "global_root" -} - -# Worker authorization KMS -# Use a production KMS such as AWS KMS for production installs -# This key is the same key used in the worker configuration -kms "aead" { - purpose = "worker-auth" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "global_worker-auth" -} -``` - -And optionally, a KMS stanza for recovery purpose: - -```hcl -# Recovery KMS block: configures the recovery key for Boundary -# Use a production KMS such as AWS KMS for production installs -kms "aead" { - purpose = "recovery" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "global_recovery" -} -``` - -And optionally, a KMS stanza for configuration encryption purpose: - -```hcl -# Configuration encryption block: decrypts sensitive values in the -# configuration file. See `boundary config [encrypt|decrypt] -h`. -kms "aead" { - purpose = "config" - aead_type = "aes-gcm" - key = "7xtkEoS5EXPbgynwd+dDLHopaCqK8cq0Rpep4eooaTs=" -} -``` - -And optionally, a KMS stanza to enable the session recording feature: - -```hcl -# BSR encryption block: encrypts data and checks the integrity -# of session recordings. If you do not add a BSR key to your -# controller configuration, you cannot enable session recording. -kms "aead" { - purpose = "bsr" - aead_type = "aes-gcm" - key = "8Vg!XCbS.fzNKB@Uu.ccB588H#4iyHAd:TpgjuwC/;J;" - key_id = "session_recording" -} -``` - -Boundary supports many kinds of KMS integrations. For a complete guide to all available -KMS types, see our [KMS documentation](/boundary/docs/configuration/kms). - -## Complete configuration example - -```hcl -# Disable memory lock: https://www.man7.org/linux/man-pages/man2/mlock.2.html -disable_mlock = true - -# Controller configuration block -controller { - # This name attr must be unique across all controller instances if running in HA mode - name = "demo-controller-1" - description = "A controller for a demo!" - - # After receiving a shutdown signal, Boundary will wait 10s before initiating the shutdown process. - graceful_shutdown_wait_duration = "10s" - - # Database URL for postgres. This can be a direct "postgres://" - # URL, or it can be "file://" to read the contents of a file to - # supply the url, or "env://" to name an environment variable - # that contains the URL. - database { - url = "postgresql://boundary:boundarydemo@postgres.yourdomain.com:5432/boundary" - } - - # Rate limiting examples to conserve controller resources - # total limit for all resources and actions - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "total" - limit = 500 - period = "1s" - } - - # Limit for ip addresses to all resources+actions to prevent a malicious - # host that is fabricating tokens, or spamming unauthed endpoints - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "ip-address" - limit = 100 - period = "1s" - } - - # Limit of all authed requests, to prevent one user consuming all of the total limit - api_rate_limit { - resources = ["*"] - actions = ["*"] - per = "auth-token" - limit = 100 - period = "1s" - } -} - -# API listener configuration block -listener "tcp" { - # Should be the address of the NIC that the controller server will be reached on - address = "10.0.0.1" - # The purpose of this listener block - purpose = "api" - - tls_disable = false - - # Uncomment to enable CORS for the Admin UI. Be sure to set the allowed origin(s) - # to appropriate values. - #cors_enabled = true - #cors_allowed_origins = ["https://yourcorp.yourdomain.com", "serve://boundary"] -} - -# Data-plane listener configuration block (used for worker coordination) -listener "tcp" { - # Should be the IP of the NIC that the worker will connect on - address = "10.0.0.1" - # The purpose of this listener - purpose = "cluster" -} - -listener "tcp" { - # Should be the address of the NIC where your external systems' - # (eg: Load-Balancer) will connect on. - address = "10.0.0.1" - # The purpose of this listener block - purpose = "ops" - - tls_disable = false -} - -# Root KMS configuration block: this is the root key for Boundary -# Use a production KMS such as AWS KMS in production installs -kms "aead" { - purpose = "root" - aead_type = "aes-gcm" - key = "sP1fnF5Xz85RrXyELHFeZg9Ad2qt4Z4bgNHVGtD6ung=" - key_id = "global_root" -} - -# Worker authorization KMS -# Use a production KMS such as AWS KMS for production installs -# This key is the same key used in the worker configuration -kms "aead" { - purpose = "worker-auth" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "global_worker-auth" -} - -# Recovery KMS block: configures the recovery key for Boundary -# Use a production KMS such as AWS KMS for production installs -kms "aead" { - purpose = "recovery" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "global_recovery" -} - -# BSR encryption block: encrypts data and checks the integrity -# of session recordings. If you do not add a BSR key to your -# controller configuration, you cannot enable session recording. -kms "aead" { - purpose = "bsr" - aead_type = "aes-gcm" - key = "8Vg!XCbS.fzNKB@Uu.ccB588H#4iyHAd:TpgjuwC/;J;" - key_id = "session_recording" -} -``` diff --git a/website/content/docs/configuration/events/common-sink-parameters.mdx b/website/content/docs/configuration/events/common-sink-parameters.mdx deleted file mode 100644 index 6e4e87bb4..000000000 --- a/website/content/docs/configuration/events/common-sink-parameters.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: docs -page_title: Common sink parameters -description: |- - The common sink parameters for all sink types. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Common sink parameters - -@include '/configuration-reference/events/common-sink-intro.mdx' - -## `audit_config` parameters - -@include '/configuration-reference/events/common-audit_config-parameters.mdx' - -### `audit_filter_overrides` parameters - -@include '/configuration-reference/events/common-audit_filter_overrides-parameters.mdx' - -## `audit_config` examples - -@include '/configuration-reference/events/common-audit_config-examples.mdx' diff --git a/website/content/docs/configuration/events/file-sink.mdx b/website/content/docs/configuration/events/file-sink.mdx deleted file mode 100644 index f11174060..000000000 --- a/website/content/docs/configuration/events/file-sink.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: docs -page_title: File sink - configuration reference -description: |- - The file sink configures Boundary to send events to a file. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `file` sink - -@include '/configuration-reference/events/file-sink-intro.mdx' - -## Common parameters - -These parameters are shared across all sink types: [common sink parameters](/boundary/docs/monitor/events/common) - -## `file` parameters - -@include '/configuration-reference/events/file-parameters.mdx' \ No newline at end of file diff --git a/website/content/docs/configuration/events/index.mdx b/website/content/docs/configuration/events/index.mdx deleted file mode 100644 index 06078e747..000000000 --- a/website/content/docs/configuration/events/index.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: docs -page_title: Events configuration reference -description: |- - Reference document for configuring event parameters ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `events` stanza - -@include '/configuration-reference/events/events-stanza-intro.mdx' - -## Default events stanza - -@include '/configuration-reference/events/default-events-stanza.mdx' \ No newline at end of file diff --git a/website/content/docs/configuration/events/stderr-sink.mdx b/website/content/docs/configuration/events/stderr-sink.mdx deleted file mode 100644 index d22bb292c..000000000 --- a/website/content/docs/configuration/events/stderr-sink.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: docs -page_title: stderr sink - configuration reference -description: |- - The stderr sink configures Boundary to send events to a stderr. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `stderr` sink - -@include '/configuration-reference/events/stderr-intro.mdx' - -## Common parameters - -These parameters are shared across all sink types: [common sink parameters](/boundary/docs/monitor/events/common) - -## `stderr` parameters - -@include '/configuration-reference/events/stderr-parameters.mdx' \ No newline at end of file diff --git a/website/content/docs/configuration/index.mdx b/website/content/docs/configuration/index.mdx deleted file mode 100644 index 6445881a1..000000000 --- a/website/content/docs/configuration/index.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -layout: docs -page_title: Top-level configuration parameters -description: >- - Learn about the parameters that make up the Boundary HCL configuration file. View parameters for HCP and self-managed installations. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Top-level configuration parameters - -[listener]: /boundary/docs/configuration/listener -[controller]: /boundary/docs/configuration/controller -[worker]: /boundary/docs/configuration/workers -[kms]: /boundary/docs/configuration/kms -[plugins]: /boundary/docs/configuration/plugins -[events]: /boundary/docs/configuration/events - -Outside of development mode, Boundary controllers and workers are configured -using a file. The format of this file is -[HCL](https://github.com/hashicorp/hcl). In this section you'll find -configuration block examples for Boundary controllers and workers. - -After the configuration is written, use the `-config` flag to specify a local -path to the file. - -## HCP Boundary-only parameters - -- `hcp_boundary_cluster_id` `(string)` - The ID of an HCP Boundary cluster. - Setting this allows discovery of upstream addresses for self-managed workers - to connect to the cluster. - -## Shared self-managed and HCP Boundary parameters - -- [`worker`](/boundary/docs/configuration/workers): Worker specific configuration. If - present, `boundary server` will start a Worker subprocess. - -- [`listener`](/boundary/docs/configuration/listener): Configures the listeners on which - Boundary serves traffic (API, cluster, and proxy). - - Controllers must have at least two listener blocks defined: one marked for - `api` purpose and the other marked for `cluster` purpose. - - Workers will have only one listener, marked for `proxy` purpose. - - Optionally, the `ops` purpose listener block serves as a higher-level listener - where Boundary's operational endpoints live (eg: /health). - -- [`kms`](/boundary/docs/configuration/kms): Configures KMS blocks [for various - purposes](/boundary/docs/secure/encryption/data-encryption). - -- [`events`](/boundary/docs/configuration/events): Configures event (observability, - audit, error) handling. - -- `disable_mlock` `(bool: false)` – Disables the server from executing the - `mlock` syscall, which prevents memory from being swapped to disk. This is - fine for local development and testing; in production, it is not recommended - unless the systems running Boundary only use encrypted swap or do not use swap - at all. Boundary only supports memory locking on UNIX-like systems that - support the mlock() syscall (Linux, FreeBSD, etc). - - On Linux, to give the Boundary executable the ability to use the `mlock` - syscall without running the process as root, run: - - ```shell - sudo setcap cap_ipc_lock=+ep $(readlink -f $(which boundary)) - ``` - - If you use a Linux distribution with a modern version of systemd, you can add - the following directive to the "[Service]" configuration section: - - ```ini - LimitMEMLOCK=infinity - ``` - -- `log_level` `(string: "info")` – (Deprecated: this is being phased out in - favor of observability and is currently only used as a backup if eventing - fails.) Specifies the log level to use; overridden by CLI and env var - parameters. Supported log levels: Trace, Debug, Error, Warn, Info. - -- `log_format` `(string: "")` – (Deprecated: this is being phased out in favor - of observability and is currently only used as a backup if eventing fails.) - Specifies the log format to use; overridden by CLI and env var parameters. - Supported log formats: `"standard"`, `"json"`. - -## Self-managed Boundary-only parameters - -- [`controller`](/boundary/docs/configuration/controller): Controller specific - configuration. If present, `boundary server` will start a Controller subprocess. - -- [`plugins`](/boundary/docs/configuration/plugins): Configures options for plugins. - -## Signals - -The `SIGHUP` signal causes worker and controller processes to reload their configuration files to pick up updated values. - -~> **Note:** You cannot reload all configuration values using the `SIGHUP` signal. Refer to the configuration pages for -[workers](/boundary/docs/configuration/workers) and [controllers](/boundary/docs/configuration/controller) for details -on which values can be reloaded on `SIGHUP`. - -The `SIGTERM` and `SIGINT` signals cause worker and controller processes to enter graceful shutdown. A graceful shutdown for a controller closes listeners and servers before shutting down the controller. A graceful shutdown for a worker waits for any sessions to drain -before shutting down the worker. Workers in a graceful shutdown state do not receive any new work, including session proxying, from the control plane. - -## Example configurations - -For complete example configurations see the sections for -[controller](/boundary/docs/configuration/controller) and -[worker](/boundary/docs/configuration/workers). diff --git a/website/content/docs/configuration/kms/aead.mdx b/website/content/docs/configuration/kms/aead.mdx deleted file mode 100644 index bd0a63802..000000000 --- a/website/content/docs/configuration/kms/aead.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: docs -page_title: AEAD KMS configuration -description: >- - Learn about using the Authenticated Encryption with Associated Data (AEAD) KMS for key management. AEAD is typically used for development workflows or testing. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `aead` KMS - -~> **Note:** This is mostly used for `dev` workflows or testing. The key will be exposed -to anyone that can view the configuration file. If using this KMS, consider -using `boundary config encrypt` to encrypt all but the `config` KMS and using an -external KMS for `config` purposes. - -```hcl -kms "aead" { - purpose = "worker-auth" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "global_worker-auth" -} -``` - -- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `worker-auth-storage`, - `root`, `previous-root`, `recovery`, `bsr`, or `config`. - -- `aead_type` - The type of encryption this KMS uses. Currently only `aes-gcm` is implemented. - -- `key` - The base64-encoded 256-bit encryption key. - -- `key_id` - The unique name of this key. -It is used to identify the key when you perform a root key migration. -You can use the `key_id` field with all KMS stanzas. diff --git a/website/content/docs/configuration/kms/alicloudkms.mdx b/website/content/docs/configuration/kms/alicloudkms.mdx deleted file mode 100644 index 6c46c9fa2..000000000 --- a/website/content/docs/configuration/kms/alicloudkms.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -layout: docs -page_title: AliCloud KMS configuration -description: >- - Learn about using the AliCloud KMS for key management and configuring parameters and authentication. View an example alicloudkms configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `alicloudkms` KMS - -The AliCloud KMS configures Boundary to use AliCloud KMS for key management. -The AliCloud KMS is activated by one of the following: - -- The presence of a `kms "alicloudkms"` block in Boundary's configuration file. - -## `alicloudkms` example - -This example shows configuring AliCloud KMS through the Boundary configuration file -by providing all the required values: - -```hcl -kms "alicloudkms" { - purpose = "root" - region = "us-east-1" - access_key = "0wNEpMMlzy7szvai" - secret_key = "PupkTg8jdmau1cXxYacgE736PJj4cA" - kms_key_id = "08c33a6f-4e0a-4a1b-a3fa-7ddfa1d4fb73" - key_id = "global_worker-auth" -} -``` - -## `alicloudkms` parameters - -These parameters apply to the `kms` stanza in the Boundary configuration file: - -- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `worker-auth-storage`, - `root`, `previous-root`, `recovery`, `bsr`, or `config`. - -- `region` `(string: "us-east-1")`: The AliCloud region where the encryption key - lives. May also be specified by the `ALICLOUD_REGION` - environment variable. - -- `domain` `(string: "kms.us-east-1.aliyuncs.com")`: If set, overrides the endpoint - AliCloud would normally use for KMS for a particular region. May also be specified - by the `ALICLOUD_DOMAIN` environment variable. - -- `access_key` `(string: )`: The AliCloud access key ID to use. May also be - specified by the `ALICLOUD_ACCESS_KEY` environment variable or as part of the - AliCloud profile from the AliCloud CLI or instance profile. - -- `secret_key` `(string: )`: The AliCloud secret access key to use. May - also be specified by the `ALICLOUD_SECRET_KEY` environment variable or as - part of the AliCloud profile from the AliCloud CLI or instance profile. - -- `kms_key_id` `(string: )`: The AliCloud KMS key ID to use for encryption - and decryption. May also be specified by the `ALICLOUDKMS_WRAPPER_KEY_ID` - environment variable. - -- `key_id` - The unique name of this key. -It is used to identify the key when you perform a root key migration. -You can use the `key_id` field with all KMS stanzas. - -## Authentication - -Authentication-related values must be provided, either as environment -variables or as configuration parameters. - -~> **Note:** Although the configuration file allows you to pass in -`ALICLOUD_ACCESS_KEY` and `ALICLOUD_SECRET_KEY` as part of the 's parameters, it -is _strongly_ recommended to set these values via environment variables. - -```text -AliCloud authentication values: - -* `ALICLOUD_REGION` -* `ALICLOUD_ACCESS_KEY` -* `ALICLOUD_SECRET_KEY` -``` - -The client uses the official AliCloud SDK and will use environment credentials, -the specified credentials, or RAM role credentials in that order. diff --git a/website/content/docs/configuration/kms/awskms.mdx b/website/content/docs/configuration/kms/awskms.mdx deleted file mode 100644 index cec4889b0..000000000 --- a/website/content/docs/configuration/kms/awskms.mdx +++ /dev/null @@ -1,127 +0,0 @@ ---- -layout: docs -page_title: AWS KMS Configuration -description: >- - Learn about using the AWS KMS for key management, configuring parameters and authentication, and best practices for key rotation. View an example configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `awskms` - -The AWS KMS configures Boundary to use AWS KMS for key management. - -## `awskms` example - -This example shows configuring AWS KMS through the Boundary configuration file -by providing all the required values: - -```hcl -kms "awskms" { - purpose = "root" - region = "us-east-1" - access_key = "AKIAIOSFODNN7EXAMPLE" - secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" - key_id = "global_worker-auth" -} -``` - -## `awskms` parameters - -These parameters apply to the `kms` stanza in the Boundary configuration file: - -- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `worker-auth-storage`, - `root`, `previous-root`, `recovery`, `bsr`, or `config`. - - To [enable session recording](/boundary/docs/session-recording/configuration/enable-session-recording), you must configure the `bsr` value for the `purpose`. - -- `region` `(string: "us-east-1")`: The AWS region where the encryption key - lives. If not provided, may be populated from the `AWS_REGION` or - `AWS_DEFAULT_REGION` environment variables, from your `~/.aws/config` file, - or from instance metadata. - -- `kms_key_id` `(string: )`: The AWS KMS key ID to use for encryption - and decryption. May also be specified by the `AWSKMS_WRAPPER_KEY_ID` - environment variable. - -- `access_key` `(string: "")`: The AWS access key ID to use. May also be - specified by the `AWS_ACCESS_KEY_ID` environment variable or as part of the - AWS profile from the AWS CLI or instance profile. - -- `session_token` `(string: "")`: Specifies the AWS session token. This can - also be provided via the environment variable `AWS_SESSION_TOKEN`. - -- `secret_key` `(string: "")`: The AWS secret access key to use. May - also be specified by the `AWS_SECRET_ACCESS_KEY` environment variable or as - part of the AWS profile from the AWS CLI or instance profile. - -- `shared_creds_filename` `(string: "")`: If set, the file - name to read as a shared credentials file. - -- `shared_creds_profile` `(string: "")`: If set, the - profile to use from the shared credentials file. If not set, will use the - `AWS_PROFILE` env var, or if that is not set, `"default"`. - -- `role_arn` `(string: "")`: If this and - `web_identity_token_file` are set, the role ARN to use when using a web - identity role provider with STS. - -- `web_identity_token_file` `(string: "")`: If this and - `role_arn` are set, the token file to use when using a web identity role - provider with STS. - -- `role_session_name` `(string: "")`: If using the web - identity role provider, the role session to use. - -- `endpoint` `(string: "")`: The KMS API endpoint to be used to make AWS KMS - requests. May also be specified by the `AWS_KMS_ENDPOINT` environment - variable. This is useful, for example, when connecting to KMS over a [VPC - Endpoint](https://docs.aws.amazon.com/kms/latest/developerguide/kms-vpc-endpoint.html). - If not set, Boundary will use the default API endpoint for your region. - -- `key_id` - The unique name of this key. -It is used to identify the key when you perform a root key migration. -You can use the `key_id` field with all KMS stanzas. - -## Authentication - -Authentication-related values must be provided, either as environment -variables or as configuration parameters. - -~> **Note:** Although the configuration file allows you to pass in -`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` as part of the KMS's parameters, it -is _strongly_ recommended to set these values via environment variables. - -AWS authentication values: - -- `AWS_REGION` or `AWS_DEFAULT_REGION` -- `AWS_ACCESS_KEY_ID` -- `AWS_SECRET_ACCESS_KEY` - -Note: The client uses the official AWS SDK and will use the specified -credentials, environment credentials, shared file credentials, or IAM role/ECS -task credentials in that order, if the above AWS specific values are not -provided. - -Boundary needs the following permissions on the KMS key: - -- `kms:Encrypt` -- `kms:Decrypt` -- `kms:DescribeKey` - -These can be granted via IAM permissions on the principal that Boundary uses, on -the KMS key policy for the KMS key, or via KMS Grants on the key. - -## Key rotation - -This KMS supports rotating the master keys defined in AWS KMS -[doc](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). Both automatic -rotation and manual rotation is supported for KMS since the key information is stored with the -encrypted data. Old keys must not be disabled or deleted and are used to decrypt older data. -Any new or updated data will be encrypted with the current key defined in the KMS configuration -or set to current under a key alias. diff --git a/website/content/docs/configuration/kms/azurekeyvault.mdx b/website/content/docs/configuration/kms/azurekeyvault.mdx deleted file mode 100644 index 108e3560e..000000000 --- a/website/content/docs/configuration/kms/azurekeyvault.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: docs -page_title: Azure Key Vault configuration -description: >- - Learn about using the Azure Key Vault KMS for key management and configuring parameters and authentication. View an example azurekeyvault configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `azurekeyvault` KMS - -The Azure Key Vault KMS configures Boundary to use Azure Key Vault for key management. -The Azure Key Vault KMS is activated by one of the following: - -- The presence of a `seal "azurekeyvault"` block in Boundary's configuration file. - -## `azurekeyvault` example - -This example shows configuring Azure Key Vault KMS through the Boundary -configuration file by providing all the required values: - -```hcl -kms "azurekeyvault" { - purpose = "root" - tenant_id = "46646709-b63e-4747-be42-516edeaf1e14" - client_id = "03dc33fc-16d9-4b77-8152-3ec568f8af6e" - client_secret = "DUJDS3..." - vault_name = "hc-vault" - key_name = "vault_key" - key_id = "global_worker-auth" -} -``` - -## `azurekeyvault` parameters - -These parameters apply to the `kms` stanza in the Vault configuration file: - -- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `worker-auth-storage`, - `root`, `previous-root`, `recovery`, `bsr`, or `config`. - -- `tenant_id` `(string: )`: The tenant id for the Azure Active Directory organization. May - also be specified by the `AZURE_TENANT_ID` environment variable. - -- `client_id` `(string: )`: The client id for credentials to query the Azure APIs. - May also be specified by the `AZURE_CLIENT_ID` environment variable. - -- `client_secret` `(string: )`: The client secret for credentials to query the Azure APIs. - May also be specified by the `AZURE_CLIENT_SECRET` environment variable. - -- `environment` `(string: "AZUREPUBLICCLOUD")`: The Azure Cloud environment API endpoints to use. May also - be specified by the `AZURE_ENVIRONMENT` environment variable. - -- `vault_name` `(string: )`: The Key Vault vault to use the encryption keys for encryption and - decryption. May also be specified by the `AZUREKEYVAULT_WRAPPER_VAULT_NAME` environment variable. - -- `key_name` `(string: )`: The Key Vault key to use for encryption and decryption. May also be specified by the - `AZUREKEYVAULT_WRAPPER_KEY_NAME` environment variable. - -- `key_id` - The unique name of this key. -It is used to identify the key when you perform a root key migration. -You can use the `key_id` field with all KMS stanzas. - -## Authentication - -Authentication-related values must be provided, either as environment -variables or as configuration parameters. - -Azure authentication values: - -- `AZURE_TENANT_ID` -- `AZURE_CLIENT_ID` -- `AZURE_CLIENT_SECRET` -- `AZURE_ENVIRONMENT` diff --git a/website/content/docs/configuration/kms/gcpckms.mdx b/website/content/docs/configuration/kms/gcpckms.mdx deleted file mode 100644 index 3b63166ae..000000000 --- a/website/content/docs/configuration/kms/gcpckms.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -layout: docs -page_title: GCP Cloud KMS configuration -description: >- - Learn about using the GCP Cloud KMS for key management and configuring parameters and authentication. View an example gcpkms configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `gcpckms` KMS - -The GCP Cloud KMS configures Boundary to use GCP Cloud KMS for key management. - -The GCP Cloud KMS seal is activated by the presence of a `seal "gcpckms"` block in Boundary's configuration file. - -## `gcpckms` example - -This example shows configuring GCP Cloud KMS through the Boundary -configuration file by providing all the required values: - -```hcl -kms "gcpckms" { - purpose = "root" - credentials = "/usr/boundary/boundary-project-user-creds.json" - project = "boundary-project" - region = "global" - key_ring = "boundary-keyring" - crypto_key = "boundary-key" - key_id = "global_worker-auth" -} -``` - -## `gcpckms` parameters - -These parameters apply to the `kms` stanza in the Boundary configuration file: - -- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `worker-auth-storage`, - `root`, `previous-root`, `recovery`, `bsr`, or `config`. - -- `credentials` `(string: )`: The path to the credentials JSON file - to use. May be also specified by the `GOOGLE_CREDENTIALS` or - `GOOGLE_APPLICATION_CREDENTIALS` environment variable or set automatically if - running under Google App Engine, Google Compute Engine or Google Kubernetes - Engine. - -- `project` `(string: )`: The GCP project ID to use. May also be - specified by the `GOOGLE_PROJECT` environment variable. - -- `region` `(string: "us-east-1")`: The GCP region/location where the key ring - lives. May also be specified by the `GOOGLE_REGION` environment variable. - -- `key_ring` `(string: )`: The GCP CKMS key ring to use. May also be specified - by the `GCPCKMS_WRAPPER_KEY_RING` environment variable. - -- `crypto_key` `(string: )`: The GCP CKMS crypto key to use for - encryption and decryption. May also be specified by the `GCPCKMS_WRAPPER_CRYPTO_KEY` - environment variable. - -- `key_id` - The unique name of this key. -It is used to identify the key when you perform a root key migration. -You can use the `key_id` field with all KMS stanzas. - -## Authentication & permissions - -Authentication-related values must be provided, either as environment -variables or as configuration parameters. - -GCP authentication values: - -- `GOOGLE_CREDENTIALS` or `GOOGLE_APPLICATION_CREDENTIALS` -- `GOOGLE_PROJECT` -- `GOOGLE_REGION` diff --git a/website/content/docs/configuration/kms/index.mdx b/website/content/docs/configuration/kms/index.mdx deleted file mode 100644 index f325171a5..000000000 --- a/website/content/docs/configuration/kms/index.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: docs -page_title: KMS configuration -description: >- - Learn about using the kms stanza to configure key management system parameters. Discover resources for learning about specific KMS technologies. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `kms` stanza - -The `kms` stanza configures Boundary kms-specific parameters. - -## Configuration - -KMS configuration can be done through the Boundary configuration file using the -`kms` stanza: - -```hcl -kms [NAME] { - # ... -} -``` - -For example: - -```hcl -kms "transit" { - # ... -} -``` - -## More information - -For specific KMS examples, refer to the following topics: - -- [aead KMS](/boundary/docs/configuration/kms/aead) -- [AliCloud KMS](/boundary/docs/configuration/kms/alicloudkms) -- [AWS KMS](/boundary/docs/configuration/kms/awskms) -- [Azure Key Vault KMS](/boundary/docs/configuration/kms/azurekeyvault) -- [GCP Cloud KMS](/boundary/docs/configuration/kms/gcpckms) -- [OCI KMS](/boundary/docs/configuration/kms/ocikms) -- [Vault Transit KMS](/boundary/docs/configuration/kms/transit) \ No newline at end of file diff --git a/website/content/docs/configuration/kms/ocikms.mdx b/website/content/docs/configuration/kms/ocikms.mdx deleted file mode 100644 index b097b5c49..000000000 --- a/website/content/docs/configuration/kms/ocikms.mdx +++ /dev/null @@ -1,106 +0,0 @@ ---- -layout: docs -page_title: OCI KMS configuration -description: >- - Learn about using the OCI KMS for key management and configuring parameters and authentication. View an example configuration. Understand OCI KMS key rotation. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `ocikms` KMS - -The OCI KMS configures Boundary to use OCI KMS for key management. - -The OCI KMS is activated by the presence of a `kms "ocikms"` block in Boundary's configuration file. - -## `ocikms` example - -This example shows configuring the OCI KMS through the Boundary configuration file -by providing all the required values: - -```hcl -kms "ocikms" { - purpose = "root" - key_id = "ocid1.key.oc1.iad.afnxza26aag4s.abzwkljsbapzb2nrha5nt3s7s7p42ctcrcj72vn3kq5qx" - crypto_endpoint = "https://afnxza26aag4s-crypto.kms.us-ashburn-1.oraclecloud.com" - management_endpoint = "https://afnxza26aag4s-management.kms.us-ashburn-1.oraclecloud.com" - auth_type_api_key = "true" -} -``` - -## `ocikms` parameters - -These parameters apply to the `kms` stanza in the Boundary configuration file: - -- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `worker-auth-storage`, - `root`, `previous-root`, `recovery`, `bsr`, or `config`. -- `key_id` `(string: )`: The OCI KMS key ID to use. -- `crypto_endpoint` `(string: )`: The OCI KMS cryptographic endpoint (or data plane endpoint) - to be used to make OCI KMS encryption/decryption requests. -- `management_endpoint` `(string: )`: The OCI KMS management endpoint (or control plane endpoint) - to be used to make OCI KMS key management requests. -- `auth_type_api_key` `(boolean: false)`: Specifies if using API key to authenticate to OCI KMS service. - If it is `false`, Boundary authenticates using the instance principal from the compute instance. See Authentication section for details. Default is `false`. - -## Authentication - -Authentication-related values must be provided, either as environment -variables or as configuration parameters. - -If you want to use Instance Principal, add section configuration below and add further configuration settings as detailed in the [configuration docs](/boundary/docs/configuration/). - -```hcl -kms "ocikms" { - purpose = "root" - crypto_endpoint = "" - management_endpoint = "" - key_id = "" -} -``` - -If you want to use User Principal, the plugin will take the API key you defined for OCI SDK, often under `~/.oci/config`. - -```hcl -kms "ocikms" { - purpose = "root" - auth_type_api_key = true - crypto_endpoint = "" - management_endpoint = "" - key_id = "" -} -``` - -To grant permission for a compute instance to use OCI KMS service, write policies for KMS access. - -- Create a [Dynamic Group][oci-dg] in your OCI tenancy. -- Create a policy that allows the Dynamic Group to use or manage keys from OCI KMS. There are multiple ways to write these policies. The [OCI Identity Policy][oci-id] can be used as a reference or starting point. - -The most common policy allows a dynamic group of tenant A to use KMS's keys in tenant B: - -```text -define tenancy tenantB as - -endorse dynamic-group to use keys in tenancy tenantB - -``` - -```text -define tenancy tenantA as - -define dynamic-group as - -admit dynamic-group of tenancy tenantA to use keys in compartment - -``` - -## `ocikms` rotate OCI KMS key - -For the [OCI KMS key rotation feature][oci-kms-rotation], OCI KMS will create a new version of key internally. This process is independent from Boundary, and boundary still uses the same `key_id` without any interruption. - -[oci-sdk]: https://docs.cloud.oracle.com/iaas/Content/API/Concepts/sdkconfig.htm -[oci-dg]: https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingdynamicgroups.htm -[oci-id]: https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/policies.htm -[oci-kms-rotation]: https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Tasks/managingkeys.htm diff --git a/website/content/docs/configuration/kms/transit.mdx b/website/content/docs/configuration/kms/transit.mdx deleted file mode 100644 index 60c29dfc3..000000000 --- a/website/content/docs/configuration/kms/transit.mdx +++ /dev/null @@ -1,121 +0,0 @@ ---- -layout: docs -page_title: Vault Transit configuration -description: >- - Learn about using the Vault transit secrets engine for key management and configuring parameters and authentication. View an example Transit KMS configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `transit` seal - -The Transit configures Boundary to use Vault's Transit Secret Engine for key management. - -The Transit KMS is activated by the presence of a `kms transit` block in Boundary's configuration file - -## `transit` example - -This example shows configuring Transit KMS through the Boundary configuration file -by providing all the required values: - -```hcl -kms "transit" { - purpose = "root" - address = "https://vault:8200" - token = "s.Qf1s5zigZ4OX6akYjQXJC1jY" - disable_renewal = "false" - key_id = "global_worker-auth" - - // Key configuration - key_name = "transit_key_name" - mount_path = "transit/" - namespace = "ns1/" - - // TLS Configuration - tls_ca_cert = "/etc/vault/ca_cert.pem" - tls_client_cert = "/etc/vault/client_cert.pem" - tls_client_key = "/etc/vault/ca_cert.pem" - tls_server_name = "vault" - tls_skip_verify = "false" -} -``` - -## `transit` parameters - -These parameters apply to the `kms` stanza in the Vault configuration file: - -- `purpose` - Purpose of this KMS, acceptable values are: `worker-auth`, `worker-auth-storage`, - `root`, `previous-root`, `recovery`, `bsr`, or `config`. - -- `address` `(string: )`: The full address to the Vault cluster. - This may also be specified by the `VAULT_ADDR` environment variable. - -- `token` `(string: )`: The Vault token to use. This may also be - specified by the `VAULT_TOKEN` environment variable. - -- `key_name` `(string: )`: The transit key to use for encryption and - decryption. This may also be supplied using the `TRANSIT_WRAPPER_KEY_NAME` - environment variable. - -- `mount_path` `(string: )`: The mount path to the transit secret engine. - This may also be supplied using the `TRANSIT_WRAPPER_MOUNT_PATH` environment - variable. - -- `namespace` `(string: "")`: The namespace path to the transit secret engine. - This may also be supplied using the `VAULT_NAMESPACE` environment variable. - -- `disable_renewal` `(string: "false")`: Disables the automatic renewal of the token - in case the lifecycle of the token is managed with some other mechanism outside of - Vault, such as Vault Agent. This may also be specified using the - `TRANSIT_WRAPPER_DISABLE_RENEWAL` environment variable. - -- `tls_ca_cert` `(string: "")`: Specifies the path to the CA certificate file used - for communication with the Vault server. This may also be specified using the - `VAULT_CA_CERT` environment variable. - -- `tls_client_cert` `(string: "")`: Specifies the path to the client certificate - for communication with the Vault server. This may also be specified using the - `VAULT_CLIENT_CERT` environment variable. - -- `tls_client_key` `(string: "")`: Specifies the path to the private key for - communication with the Vault server. This may also be specified using the - `VAULT_CLIENT_KEY` environment variable. - -- `tls_server_name` `(string: "")`: Name to use as the SNI host when connecting - to the Vault server via TLS. This may also be specified via the - `VAULT_TLS_SERVER_NAME` environment variable. - -- `tls_skip_verify` `(bool: "false")`: Disable verification of TLS certificates. - Using this option is highly discouraged and decreases the security of data - transmissions to and from the Vault server. This may also be specified using the - `VAULT_SKIP_VERIFY` environment variable. - -- `key_id` - The unique name of this key. -It is used to identify the key when you perform a root key migration. -You can use the `key_id` field with all KMS stanzas. - -## Authentication - -Authentication-related values must be provided, either as environment -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 -token used to authenticate to Vault via the `VAULT_TOKEN` environment variable. - -The Vault token used to authenticate needs the following permissions on the -transit key: - -```hcl -path "/encrypt/" { - capabilities = ["update"] -} - -path "/decrypt/" { - capabilities = ["update"] -} -``` diff --git a/website/content/docs/configuration/listeners/index.mdx b/website/content/docs/configuration/listeners/index.mdx deleted file mode 100644 index 08e05ebc9..000000000 --- a/website/content/docs/configuration/listeners/index.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: docs -page_title: Listeners - configuration reference -description: >- - The listener stanza configures the addresses and ports on which Boundary will respond to requests. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `listener` stanza - -The `listener` stanza configures the addresses and ports on which Boundary will -respond to requests. At this time, there are two listener types: -[TCP](/boundary/docs/configuration/listeners/tcp-listeners) and [Unix](/boundary/docs/configuration/listeners/unix-listeners). - - -## `listener` purpose - -@include '/configuration-reference/listeners/listener-purpose.mdx' \ No newline at end of file diff --git a/website/content/docs/configuration/listeners/tcp-listeners.mdx b/website/content/docs/configuration/listeners/tcp-listeners.mdx deleted file mode 100644 index 421dc2d57..000000000 --- a/website/content/docs/configuration/listeners/tcp-listeners.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -layout: docs -page_title: TCP listeners - configuration reference -description: >- - Learn about using the TCP listener on a TCP address and port, and view configurable parameters. Understand custom response headers. View example configurations. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `tcp` listener - -@include '/configuration-reference/listeners/tcp-intro.mdx' - -## Listener's custom response headers - -@include '/configuration-reference/listeners/tcp-custom-response-headers.mdx' - -## `tcp` listener parameters - -Refer to the following sections for `tcp` listener parameters. - -### General - -@include '/configuration-reference/listeners/tcp-general-parameters.mdx' - -### `custom_api_response_headers` parameters - -@include '/configuration-reference/listeners/tcp-custom-api-response-headers.mdx' - -### `custom_ui_response_headers` parameters - -@include '/configuration-reference/listeners/tcp-custom-ui-response-headers.mdx' - -### TLS - -@include '/configuration-reference/listeners/tcp-tls.mdx' - - - -## `tcp` listener examples - -Refer to the following sections for examples of `tcp` listeners. - -### Configure TLS - -@include '/configuration-reference/listeners/tcp-configure-tls.mdx' - -### Configure custom http response headers - -@include '/configuration-reference/listeners/tcp-configure-custom-http-response-headers.mdx' - -### Listen on mulitple interfaces - -@include '/configuration-reference/listeners/tcp-listen-on-mulitple-interfaces.mdx' \ No newline at end of file diff --git a/website/content/docs/configuration/listeners/unix-listeners.mdx b/website/content/docs/configuration/listeners/unix-listeners.mdx deleted file mode 100644 index 07471dbe0..000000000 --- a/website/content/docs/configuration/listeners/unix-listeners.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: docs -page_title: Unix domain socket - listeners - configuration reference -description: >- - Learn about using the Unix listener on a specified Unix domain socket, and view configurable parameters. View example Unix listener configurations. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `unix` listener - -@include '/configuration-reference/listeners/unix-intro.mdx' - -## `unix` listener parameters - -Refer to the following sections for the supported `unix` listener parameters. - -### General - -@include '/configuration-reference/listeners/unix-general-parameters.mdx' - -### TLS - -@include '/configuration-reference/listeners/unix-tls-parameters.mdx' - - - -## `unix` listener examples - -Refer to the following sections for examples of `unix` listeners. - -### Configure TLS - -@include '/configuration-reference/listeners/unix-configure-tls.mdx' - -### Listen on multiple interfaces - -@include '/configuration-reference/listeners/unix-listen-on-multiple-interfaces.mdx' - -[golang-tls]: https://golang.org/src/crypto/tls/cipher_suites.go -[api-addr]: /boundary/docs/configuration#api_addr -[cluster-addr]: /boundary/docs/configuration#cluster_addr diff --git a/website/content/docs/configuration/plugins.mdx b/website/content/docs/configuration/plugins.mdx deleted file mode 100644 index 6fcd14b17..000000000 --- a/website/content/docs/configuration/plugins.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: docs -page_title: Plugin configuration -description: >- - Learn about the plugin-specific parameter that configures a directory for Boundary to use for writing and executing its built-in plugins. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `plugin` stanza - -The `plugin` stanza configures plugin-specific parameters. The plugin system is currently internal; over time, the intent is to provide a mechanism for third-party plugins to be able to be used. -Available plugins are currently bundled with Boundary and executed automatically. - -There is currently one configuration parameter available: - -```hcl -plugins { - execution_dir = "/var/run/boundary/plugin-exec" -} -``` - -- `execution_dir` - Specifies a directory that Boundary can use to write and - execute its built-in plugins. This value can be a direct directory string, - can refer to a file on disk (file://) from which a directory location will be - read; or an env var (env://) from which the directory location will be read. - This directory must be writeable by the Boundary user. If not set, Boundary will - attempt to create a suitable directory in the system temporary folder. diff --git a/website/content/docs/configuration/workers.mdx b/website/content/docs/configuration/workers.mdx deleted file mode 100644 index b891be85c..000000000 --- a/website/content/docs/configuration/workers.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: docs -page_title: Worker stanza -description: >- - Learn about how to configure workers for proxies, storage, and tags. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# worker stanza - -The `worker` stanza configures Boundary worker-specific parameters. - -@include '/configuration-reference/workers/common-worker-parameters.mdx' - -## Complete configuration example - -@include '/configuration-reference/workers/complete-configuration-example.mdx' \ No newline at end of file diff --git a/website/content/docs/credentials/configure-credential-brokering.mdx b/website/content/docs/credentials/configure-credential-brokering.mdx deleted file mode 100644 index 318072d5c..000000000 --- a/website/content/docs/credentials/configure-credential-brokering.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -layout: docs -page_title: Configure targets with credential brokering -description: >- - Configure credential brokering workflows so that Boundary centrally manages credentials and returns them to users when they successfully connect to a target. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure targets with credential brokering - -The following section provides steps to configure your targets with credential brokering. -When you use credential brokering, Boundary returns credentials to the user when they successfully connect to a target. - -## Requirements - -- You must have an existing target available. To use brokered credentials to connect to a target that runs SSH, you must use a TCP target type. - -- You must have configured either a static credential store or a Vault credential store: - - - To configure a static credential store, refer to [Create static credential stores](/boundary/docs/credentials/static-cred-boundary). - - To configure a Vault credential store and credential library, refer to [Create Vault credential stores](/boundary/docs/credentials/static-cred-vault). - -- You must have a static credential saved in your static credential store or Vault credential store. The credential must correspond to the target you want to authenticate to. - -## Configuration - -Complete the following steps to configure credential brokering for a target: - - - - -1. Log in to Boundary. -1. Select **Orgs** on the navigation pane. -1. Select your desired org. -1. Select the project where your target resides. -1. Click **Targets** on the navigation pane. -1. Click on the target you want to configure for credential brokering. -1. Click on the **Brokered Credential** tab. -1. Click **Managed** and select **Add Brokered Credential** in the pull down menu. -1. Do one of the following: - - **If you are using a static credential store**: Select the credential that corresponds to your target and click **Add Brokered Credentials**. - - **If you are using a Vault credential store**: Select the credential library that corresponds to your target and click **Add Brokered Credentials**. - - - - -1. Log into Boundary. - - ```shell-session - $ boundary authenticate - Please enter the login name (it will be hidden): - Please enter the password (it will be hidden): - ``` -1. Add brokered credentials to target. - - ```shell-session - $ boundary targets add-credential-sources \ - -id ttcp_vO60a7TwpI \ - -application-credential-source csvlt_Xqa6V6QwfM - ``` - - - - If you are using a static credential store, `brokered-credential-source` refers to the ID of a **credential** in the static credential store. - - If you are using a Vault credential store, `brokered-credential-source` refers to the ID of a **credential library** in the Vault credential store. - - - - - - -## More information - -Refer to the following topics for more information: - -- [Create static credential stores](/boundary/docs/credentials/static-cred-boundary) -- [Create Vault credential stores](/boundary/docs/credentials/static-cred-vault) -- [Target types](/boundary/docs/domain-model/targets#target-types) \ No newline at end of file diff --git a/website/content/docs/credentials/configure-credential-injection.mdx b/website/content/docs/credentials/configure-credential-injection.mdx deleted file mode 100644 index d8c130c25..000000000 --- a/website/content/docs/credentials/configure-credential-injection.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: docs -page_title: Configure targets with credential injection -description: >- - Configure credential injection so Boundary provides users with a passwordless experience when connecting to targets. Availabile exclusively for Enterprise users. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure targets with credential injection - -This feature requires HCP Boundary or Boundary Enterprise - -The following section provides steps to configure your targets with credential injection. -Credential injection provides end users with a passwordless experience when they connect to targets by automatically injecting credentials without exposing them to the user. - -Credential injection is supported for: -- **SSH targets**: Protocol-aware SSH connections -- **RDP targets**: Protocol-aware RDP connections (BETA) - - @include 'alerts/beta.mdx' - -## Requirements - -- This feature requires either HCP Boundary or Boundary Enterprise -- You must have an existing target available that supports credential injection: - - **RDP targets**: Must be configured with at least one injected application credential - - **SSH targets**: Must be configured with at least one injected application credential - - **TCP targets**: Do not support credential injection -- You must have configured either a static credential store or a Vault credential store: - - - To configure a static credential store, refer to [Create static credential stores](/boundary/docs/credentials/static-cred-boundary). - - To configure a Vault credential store and credential library, refer to [Create Vault credential stores](/boundary/docs/credentials/static-cred-vault). - -- You must have a static credential saved in your static credential store or Vault credential store. The credential must correspond to the target to which you want to authenticate. - -- **For RDP targets**: Network Level Authentication (NLA) is supported. Kerberos and NTLMv2 authentication methods are supported for domain-joined workers. NTLMv2 is supported for non-domain-joined workers. -- **For SSH targets**: Keyboard-interactive authentication is not supported. When you use username-password credentials, ensure that your SSH server is configured to allow password authentication. - -## Configuration - -Complete the following steps to configure targets with credential injection: - - - - -1. Log in to Boundary. -2. Select **Orgs** on the navigation pane. -3. Select your desired org. -4. Select the project where your target resides. -5. Click **Targets** on the navigation pane. -6. Click on your target you want to configure for credential injection. -7. Click on the **Injected Application Credential** tab. -8. Click **Managed** and select **Add Injected Application Credential** in the pull down menu. -9. Do one of the following: - - **If you are using a static credential store**: Select the credential that corresponds to your target and click **Add Injected Application Credential**. - - **If you are using a Vault credential store**: Select the credential library that corresponds to your target and click **Add Injected Application Credential**. - - - - -1. Log into Boundary. - - ```shell-session - $ boundary authenticate - Please enter the login name (it will be hidden): - Please enter the password (it will be hidden): - ``` - -2. Add credential injection to target. - - ```shell-session - $ boundary targets add-credential-sources \ - -id trdp_vO60a7TwpI \ - -injected-application-credential-source csvlt_Xqa6V6QwfM - ``` - - - - If you are using a static credential store, `brokered-credential-source` refers to the ID of a **credential** in the static credential store. - - If you are using a Vault credential store, `brokered-credential-source` refers to the ID of a **credential library** in the Vault credential store. - - - - - - -## More information - -Refer to the following topics for more information: - -- [Create static credential stores](/boundary/docs/credentials/static-cred-boundary) -- [Create Vault credential stores](/boundary/docs/credentials/static-cred-vault) -- [Target types](/boundary/docs/domain-model/targets#target-types) -- [Credentials](/boundary/docs/domain-model/credentials) diff --git a/website/content/docs/credentials/index.mdx b/website/content/docs/credentials/index.mdx deleted file mode 100644 index 6072cec08..000000000 --- a/website/content/docs/credentials/index.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -layout: docs -page_title: Credential management with Boundary -description: >- - Credential stores let you store and manage credentials in Boundary. Learn about configuring user workflows with credential management or credential injection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Credentials in Boundary - -When users connect to a target machine, they typically need a set of credentials for authentication. Rather than requiring users to securely store and manage credentials for every target resource, Boundary centralizes credential management to enhance security. - -## Credential stores - -Boundary supports credential management using [credential stores](/boundary/docs/domain-model/credential-stores), which are resources that store credentials for various targets. - -There are two types of credential stores: - -1. Static credential store -2. Vault credential store - -Static credential stores are built into Boundary and store static credentials like username password, username password domain, or keypairs. Vault credential stores point to a HashiCorp Vault instance, which provides additional capabilities like generating short-lived dynamic credentials and integrating with external systems like Active Directory through the LDAP secrets engine. - -Boundary can retrieve credentials from the credential stores and present them back to the user when they connect to targets. This workflow is referred to as **credential brokering**. Boundary can also inject credentials directly into the session on behalf of the user. This workflow is referred to as **credential injection**. - - -## End user workflows - -End users can experience three workflows when they connect to a target. In the first workflow, when an end user connects to a target, Boundary initiates the session, but the end user must know the credentials to authenticate into the session. This workflow is available for testing purposes, but it is not recommended because it places the burden on the users to securely store and manage credentials. - -The second workflow uses a feature called credential brokering, where credentials are retrieved from a credentials store and returned back to the end user. The end user then enters the credentials into the session when prompted by the target. This workflow is more secure than the first workflow since credentials are centrally managed through Boundary. For more information, refer to the the [Credential brokering](/boundary/docs/concepts/credential-management#credential-brokering) concepts page. - -The third workflow uses a featured called credential injection, where credentials are retrieved from a credential store and injected directly into the session on behalf of the end user. This workflow is the most secure because credentials are not exposed to the end user, reducing the chances of a leaked credential. This workflow is also more streamlined as the user goes through a passwordless experience. For more information, refer to the [Credential injection](/boundary/docs/concepts/credential-management#credential-injection) concepts page. - -The type of target you connect to also determines which credential workflows you can configure: - -- **TCP targets** cannot have any injected application credentials -- **SSH targets** must have at least one injected application credential to establish the SSH connection -- **RDP targets** must have at least one injected application credential to establish the RDP connection - - - -RDP credential injection is currently in beta and requires HCP Boundary or Boundary Enterprise. - - - -For more information, refer to the [Target types](/boundary/docs/domain-model/targets#target-types) documentation. - -## Credential types - -Boundary supports several credential types to accommodate different authentication methods: - -- **Username password**: Basic username and password authentication -- **Username password domain**: Username, password, and domain for Windows environments that use Active Directory authentication, commonly used for credential injection when connecting to an RDP target -- **SSH private key**: SSH private key authentication -- **SSH certificate**: SSH certificate-based authentication -- **JSON**: Flexible JSON-based credential storage - -## Next steps - -The following pages provide steps to configure static credentials using both a static credential store and a Vault credential store. You can also configure targets for either credential brokering or credential injection workflows. - -- [Create a static credential store](/boundary/docs/credentials/static-cred-boundary) -- [Create a Vault credential store](/boundary/docs/credentials/static-cred-vault) -- [Configure targets with credential brokering](/boundary/docs/credentials/configure-credential-brokering) -- [Configure targets with credential injection](/boundary/docs/credentials/configure-credential-injection) - -To learn more about what is supported for the RDP credential injection beta and to view known issues, refer to [RDP credential injection compatibility](/boundary/docs/credentials/rdp-testing-and-compatibility-matrix). diff --git a/website/content/docs/credentials/rdp-testing-and-compatibility-matrix.mdx b/website/content/docs/credentials/rdp-testing-and-compatibility-matrix.mdx deleted file mode 100644 index 688bd068f..000000000 --- a/website/content/docs/credentials/rdp-testing-and-compatibility-matrix.mdx +++ /dev/null @@ -1,208 +0,0 @@ ---- -layout: docs -page_title: RDP credential injection compatibility -description: >- - Learn about what is supported and understand known limitations for the beta version of the RDP credential injection feature. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# RDP credential injection compatibility - -@include 'alerts/beta.mdx' - -RDP credential injection is currently in **beta**. This feature is under active development and testing. - -**Important considerations:** - -- The [compatibility matrix](#compatibility-status) below reflects currently tested configurations. -- Additional client/target combinations are being validated and will be added regularly. -- Some functionality may change before general availability. -- Please report any issues or untested combinations through [official support channels](https://support.hashicorp.com). -- [Create an issue](https://github.com/hashicorp/boundary/issues/new/choose) to send the Boundary team feedback about the beta. - -This documentation will be updated frequently as new combinations are tested and validated. - -**Key takeaways for the RDP credential injection beta:** - -- **Credential source:** The initial beta only supports static credentials from Boundary's built-in **static credential store** or Vault's Key Value store. -- **Supported authentication:** Only **Kerberos** and **NTLMv2** are supported. -- **Unsupported authentication:** Microsoft Entra ID, passwordless methods (Windows Hello, FIDO2), and Smart Cards are **not** supported. -- **Transparent sessions:** RDP transparent sessions on Windows clients require a custom port configuration due to a conflict with the default port `3389`. Refer to [Using transparent sessions with RDP on Windows](#using-transparent-sessions-with-rdp-on-windows) for two possible workarounds. -- **Initial connection:** Users must manually accept a self-signed certificate on their first connection to a target. Some clients prompt users for a username and password even when credential injection is in use, but Boundary ignores the entries. You can enter anything and Boundary uses the configured injected credential to authenticate to the target. -- **Important configuration note:** If you use the Windows RDP client and set the `connection limit` to `1` for RDP targets it will cause all RDP connections to fail. You can leave the connection limit unset or configure a limit of 2 or higher to account for the multiple connections used by the RDP client. - -## How credential injection works - -When users connect to RDP targets, Boundary can automatically inject credentials, preventing exposure to the end-user. This is the most secure workflow, providing a passwordless experience within the supported authentication frameworks. - -Boundary retrieves credentials from a supported credential store and injects them directly into the RDP session on behalf of the user. **The initial beta release only supports static credentials from Boundary's built-in static credential store or Vault's KV store.** Support for the Vault LDAP Secrets Engine, is planned as a fast-follow release. - -Refer to [Credential injection](/boundary/docs/concepts/credential-management#credential-injection) for more information about how credential injection works in Boundary. - -### Supported authentication methods - -As of Boundary 0.20, we **only** support the following traditional authentication methods for RDP targets: - -1. **Kerberos authentication** - The primary method for domain-joined Windows servers. -1. **NTLMv2 authentication** - Used for standalone servers or as a fallback. - - - -Modern and cloud-based authentication methods are **not supported** at this time. This includes, but is not limited to: - -- Microsoft Entra ID (formerly Azure Active Directory) -- Passwordless methods (Windows Hello, FIDO2 keys) -- Certificate-based authentication (including Smart Cards) - - - -## Known limitations - -The following issues may affect RDP connections, particularly when using transparent sessions: - -- **Concurrent transparent sessions hanging:** Attempting to launch more than one concurrent transparent session for RDP will cause the Boundary desktop client to hang silently. You must fully terminate the first session before starting another. -- **Improper session termination:** Closing the RDP client window does not always properly terminate the underlying Boundary session. This can prevent new connections and contributes to the hanging issue described above. -- **Transparent sessions on Windows:** Transparent sessions for RDP do not work out-of-the-box on modern Windows clients (Windows 11+, Windows Server 2025) due to a port conflict. Refer to [Using transparent sessions with RDP on Windows](/boundary/docs/credentials/rdp-testing-and-compatibility-matrix#using-transparent-sessions-with-rdp-on-windows) for two possible workarounds. -- **Error during basic settings exchange:** When you connect to an RDP target using the built-in Windows Remote Desktop Connection app, it creates the following error: - - `rdp.handleProxy:error during basic settings exchange` - - The error has no impact on the connection, it is a known issue. - -## Configuration requirements - -Refer to the following sections for specific configuration requirements for the RDP credential injection beta. - -### Using transparent sessions with RDP on Windows - -Due to a port conflict with the Windows Remote Desktop Connection app on modern Windows operating systems (Windows 11+, Windows Server 2025), transparent sessions fail when you use the default port (`3389`) to establish an RDP connection. -The port conflict is an issue even if you enable Remote Desktop. -This issue prevents users from establishing transparent sessions by entering a target alias in their RDP client. - -To connect to an RDP target using a transparent session from a Windows client, you **must** use a custom port. Two primary workarounds are available: - -1. **Configure a default client port:** Set a custom port (e.g., `83389`) in the target's configuration within Boundary. The user must then connect by specifying this port in their RDP client (for example, `my-server:83389`). -1. **Use `.rdp` bookmark files:** Create and distribute an `.rdp` file that contains the full connection string, including the custom port for the localhost listener (for example, `full address:s:localhost:51129`). Bookmark files allow users to connect by simply opening the file. - -### Certificate handling - -Boundary generates self-signed certificates for each RDP target. When users first connect to a target, they must manually accept the certificate. This is a one-time action per target for most clients, though behavior varies: - -- **Windows clients** remember certificates across sessions. -- **macOS clients** require accepting certificates per alias or endpoint. -- **Custom listen addresses** generate certificate mismatch warnings. - -Future releases may support enterprise certificate authorities for trusted certificates. - -### Connection limits - -The Windows Remote Desktop Connection application consumes multiple connections when initiating a session. - -If you set the connection limit to `1` for RDP targets it will cause all RDP connections using this client to fail. You can leave the connection limit unset or configure a limit of 2 or higher to account for the multiple connections used by the RDP client. - -### Network configuration - -RDP credential injection has specific network requirements: - -- UDP transport is disabled. -- Server redirection is not supported. -- The maximum TLS version is 1.2. TLS 1.3 is incompatible with Windows Server 2025. - -### Client behavior - -Different RDP clients exhibit unique behaviors: - -**Windows Remote Desktop Connection:** -- Does not prompt for credentials when Boundary injects them. -- Requires manual certificate acceptance per endpoint. - -**macOS Windows App:** -- Prompts for credentials, but Boundary ignores the entries. Boundary uses the configured injected credential to authenticate to the target. -- Requires manual certificate acceptance per endpoint. - -## Compatibility status - -Refer to the following sections for information about which Windows versions the beta RDP credential injection feature is compatible with. - -The tables below use the following to indicate compatiblity: - -- **✅:** Tested and verified to be compatible. -- **Pending:** Validation is planned but not yet complete. - -### Windows Server 2025 - -| Client OS | Kerberos only | Kerberos + NTLMv2 (domain-joined worker) | Kerberos + NTLMv2 (non-domain worker) | -|-----------|:-------------:|:----------------------------------------:|:--------------------------------------:| -| Windows 11 | Pending | ✅ | Pending | -| Windows 10 | ✅ | Pending | Pending | -| macOS 15 | Pending | Pending | Pending | -| macOS 14 | Pending | Pending | Pending | -| macOS 13 | Pending | Pending | Pending | - -### Windows Server 2022 - -| Client OS | Kerberos only | Kerberos + NTLMv2 (domain-joined worker) | Kerberos + NTLMv2 (non-domain worker) | -|-----------|:-------------:|:----------------------------------------:|:--------------------------------------:| -| Windows 11 | ✅ | ✅ | ✅ | -| Windows 10 | ✅ | ✅ | ✅ | -| macOS 15 | Pending | ✅ | ✅ | -| macOS 14 | Pending | Pending | Pending | -| macOS 13 | Pending | Pending | Pending | - -### Windows Server 2019 - -| Client OS | Kerberos only | Kerberos + NTLMv2 (domain-joined worker) | Kerberos + NTLMv2 (non-domain worker) | -|-----------|:-------------:|:----------------------------------------:|:--------------------------------------:| -| Windows 11 | ✅ | ✅ | ✅ | -| Windows 10 | ✅ | ✅ | ✅ | -| macOS 15 | ✅ | ✅ | ✅ | -| macOS 14 | Pending | Pending | Pending | -| macOS 13 | Pending | Pending | Pending | - -### Windows Server 2016 - -| Client OS | Kerberos only | Kerberos + NTLMv2 (domain-joined worker) | Kerberos + NTLMv2 (non-domain worker) | -|-----------|:-------------:|:----------------------------------------:|:--------------------------------------:| -| Windows 11 | Pending | ✅ | ✅ | -| Windows 10 | ✅ | ✅ | Pending | -| macOS 15 | ✅ | ✅ | ✅ | -| macOS 14 | Pending | Pending | Pending | -| macOS 13 | Pending | Pending | Pending | - -## Quick troubleshooting and FAQ - -**Q: Can I use credentials from my Vault LDAP engine or Active Directory for this feature?** - -A: Not yet. The initial beta only supports credentials stored in Boundary's static credential store and the Vault K/V store. Support for the Vault LDAP Secrets Engine is a high-priority addition planned for a fast-follow release. - -**Q: Why am I getting a certificate warning when I connect?** - -A: This is expected behavior. Boundary generates a self-signed certificate for each RDP target. You must accept this certificate on your first connection. - -**Q: My connection is failing immediately. What should I check first?** - -A: Check the `connection limit` on your target. It cannot be set to `1`. Leave it unset, or set it to 2 or higher. - -**Q: Why can't I connect to my RDP transparent session on Windows by just using its name?** - -A: Modern Windows versions block local applications from using the default RDP port (3389). You must use a workaround, such as connecting to a custom port or using a pre-configured `.rdp` file. Refer to [Using transparent sessions with RDP on Windows](#using-transparent-sessions-with-rdp-on-windows). - -**Q: My desktop client hung after I tried to open a second RDP session. What do I do?** - -A: This is a known issue. The client currently does not support more than one concurrent RDP transparent session. You must ensure your first session is completely terminated before starting a new one. - -**Q: Does this work with servers that require Entra ID login?** - -A: No. At this time, only servers using traditional Kerberos or NTLMv2 authentication are supported. - -**Q: The macOS Windows App is asking for a password. Is injection not working?** - -A: This is a known behavior of the macOS Windows App. You can leave the password field blank and proceed; Boundary will still inject the correct credentials in the background. - -## More information - -For more information about how Boundary manages credentials, refer to [Credentials in Boundary](/boundary/docs/credentials). diff --git a/website/content/docs/credentials/static-cred-boundary.mdx b/website/content/docs/credentials/static-cred-boundary.mdx deleted file mode 100644 index c1178da9e..000000000 --- a/website/content/docs/credentials/static-cred-boundary.mdx +++ /dev/null @@ -1,131 +0,0 @@ ---- -layout: docs -page_title: Manage static credentials with Boundary -description: >- - Create a static credential store to manage static credentials. Credential stores let you configure targets for credential brokering or injection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Create a static credential store - -You can manage credentials in Boundary using [credential stores](/boundary/docs/domain-model/credential-stores), which are resources that store credentials for various targets. - -Static credential stores are built into Boundary and store static credentials like username password, username password domain, or keypairs. - -## Requirements - -Ensure that you have an [Org scope and a project scope](/boundary/docs/commands/scopes/create) created in your Boundary instance. - -## Configuration - -Complete the following steps to create a static credential store: - - - - -1. Log in to Boundary -2. Select **Orgs** on the navigation pane. -3. Select your desired org. -4. Select the project to which your static credential store should belong. -5. Select **Credential Stores** on the navigation pane. -6. Select **New Credential Store**. -7. Provide a name for your credential store and select type **Static**. -8. Click **Save**. You now have a static credential store where you can store static credentials. -9. (Optional) If you have a static credential, you can add it into the static credential store. Static credential types can be a username password, username password domain, username private key, or JSON blob. - - a. In your static credential store, click on the **Credentials** tab. - - b. Click **Manage**, and then select **New Credential** from the pull down menu. - - c. Complete the following fields to add static credentials to your static credential store: - - Name (optional) - The name is optional, but if you enter a name, it must be unique. - - Description (optional) - An optional description of the credential for identification purposes. - - Type - The type of static credential you want to add. Select between username password, username keypair, username password domain, or a JSON blob. - - Credential data - Depending on the credential type selected, enter the credential data. - - d. Click **Save**. - - - - -1. Log into Boundary. - - ```shell-session - $ boundary authenticate - Please enter the login name (it will be hidden): - Please enter the password (it will be hidden): - ``` - -2. Create a credential store and provide a name and project ID. - - ```shell-session - $ boundary credential-stores create static \ - -scope-id p_VHAKTCEKcU \ - -name "my-static-credential-store" - ``` - -3. (Optional) If you have a static credential, you can add it into the static credential store using one of the following commands, based on the type of credential. Static credential types can be a username password, username password domain, username and keypair, or JSON blob. - - - For username password credentials: - - ```shell-session - $ boundary credentials create username-password \ - -name "test-credentials" \ - -credential-store-id csst_O8utI0b3XC \ - -username \ - -password env:// - ``` - - To prevent credentials from being logged in the terminal, you must place passwords in an environment variable or file, and pass them to the `-password` option using the `env://` or `file://` syntax. - - - For username and private key credentials: - - ```shell-session - $ boundary credentials create ssh-private-key \ - -credential-store-id csst_O8utI0b3XC \ - -username \ - -private-key file:// - ``` - - To prevent credentials from being logged in the terminal, you must place SSH private keys in an environment variable or file, and pass them to the `-private-key` option using the `env://` or `file://` syntax. - - - For JSON blob credentials: - - ```shell-session - $ boundary credentials create json \ - -credential-store-id csst_O8utI0b3XC \ - -object file:// - ``` - - To prevent credentials from being logged in the terminal, you must place the JSON map value in a file, and pass it to the `-object` option using the `file://` syntax. - - - For username-password-domain credentials: - - ```shell-session - $ boundary credentials create username-password-domain \ - -name "ad-admin-credentials" \ - -credential-store-id csst_O8utI0b3XC \ - -username \ - -password env:// \ - -domain - ``` - - To prevent credentials from being logged in the terminal, you must place passwords in an environment variable or file, and pass them to the `-password` option using the `env://` or `file://` syntax. - - - - -## Next steps - -Once you have created a credential store, you can configure targets for credential brokering or credential injection. -When you use credential brokering, Boundary centrally manages credentials and returns them to the user when they attempt to connect to a target. -Credential injection requires HCP Boundary or Boundary Enterprise, and it provides end users with a passwordless experience when they connect to targets. - -- [Configure a target for credential brokering](/boundary/docs/credentials/configure-credential-brokering) -- [Configure a target for credential injection](/boundary/docs/credentials/configure-credential-injection) - -To learn more about what is supported for the RDP credential injection beta and to view known issues, refer to [RDP credential injection compatibility](/boundary/docs/credentials/rdp-testing-and-compatibility-matrix). \ No newline at end of file diff --git a/website/content/docs/credentials/static-cred-vault.mdx b/website/content/docs/credentials/static-cred-vault.mdx deleted file mode 100644 index 200235e45..000000000 --- a/website/content/docs/credentials/static-cred-vault.mdx +++ /dev/null @@ -1,114 +0,0 @@ ---- -layout: docs -page_title: Manage static credentials with Vault -description: >- - Create a Vault credential store to manage credentials. Credential stores let you configure targets for credential brokering or credential injection. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Create a Vault credential store - -You can manage credentials in Boundary using [credential stores](/boundary/docs/domain-model/credential-stores), which are resources that store credentials for various targets. -Vault credential stores point to a HashiCorp Vault instance, which provides capabilities like generating short-lived dynamic credentials. - -## Requirements - -- You must have a Vault instance available with an address or URL that is reachable from your Boundary instance. This will be used to connect Boundary to Vault. -- You must have static credentials stored in Vault’s key/value secrets engine. Examples of static credential types include username password or username and SSH private key. -- You must have a Vault token for Boundary to authenticate and access your static credentials. - -## Configuration - -Complete the following steps to create a Vault credential store: - - - - -1. Log in to Boundary. -1. Select **Orgs** on the navigation pane. -1. Select your desired org. -1. Select the project to which your static credential store should belong. -1. Select **Credential Stores** on the navigation pane. -1. Select **New Credential Store**. -1. Provide a name for your credential store and select type **Vault**. -1. Complete the fields related to your Vault instance: - - **Address** - The address of your Vault instance. - - **Worker Filter** (optional) - If your Vault instance does not have a publicly accessible address and instead is proxied through a Boundary worker, enter the worker filter. This should be a boolean expression. To generate a worker filter in the correct format, toggle the **Show filter generator** switch. Refer to the examples in the [Worker tags](/boundary/docs/workers/worker-tags) documentation. - - **Token** - Token provided by Vault that provides access to the static credentials within your Vault instance. - - **Namespace** (optional) - Vault namespace. Requires Vault Enterprise. - - **TLS Server Name** (optional) - Name to use as the SNI host if you connect to Vault via TLS. - - **Client Certificate** (optional) - A PEM-encoded client certificate to use for TLS authentication to the Vault server. - - **Client Certificate key** (optional) - A PEM-encoded private key that matches the client certificate from client certificate. - - **CA Certificate** (optional) - A PEM-encoded CA certificate to verify the Vault server's TLS certificate. - -1. Click **Save**. You now have a static credential store where you can store static credentials. -1. In your newly created Vault credential store, click on the **Credential Libraries** tab. -1. Click **Manage**, and then select **New Credential Library** in the pull down menu. -1. Complete the fields related to the static credentials stored in your Vault instance: - - **Name** (optional) - The name is optional, but if you enter a name, it must be unique within the parent credential store. - - **Type** - Select **Generic Secrets**. - - **Vault Path** - Enter the path for the location of your static credentials stored in Vault. Boundary uses this field to locate the static credentials inside Vault. - - **Credential Type** - Select the appropriate credential type that matches the static credential stored in Vault. - - **HTTP Method** - Select **GET**. -1. Click **Save**. - - - - -1. Log into Boundary. - - ```shell-session - $ boundary authenticate - Please enter the login name (it will be hidden): - Please enter the password (it will be hidden): - ``` - -1. Create a credential store and provide a name and project ID. - - ```shell-session - $ boundary credential-stores create vault \ - -scope-id p_VHAKTCEKcU \ - -name "vault-cred-store-test" - ``` - -1. Create a credential library using one of the following commands, based on the type of credential. - - - For username password credentials: - - ```shell-session - $ boundary credential-libraries create vault-generic \ - -name "vault-cred-lib-test" \ - -credential-store-id csvlt_Xqa6V6QwfM \ - -credential-type username_password \ - -vault-path "path/to/vault/credentials" - ``` - - - For username private key credentials: - - ```shell-session - $ boundary credential-libraries create vault-generic \ - -name "vault-cred-lib-test" \ - -credential-store-id csvlt_Xqa6V6QwfM \ - -credential-type ssh_private_key \ - -vault-path "path/to/vault/credentials" - ``` - - - - -## More information - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. - -## Next steps - -Once you have created a credential store, you can configure targets for credential brokering or credential injection. -When you use credential brokering, Boundary centrally manages credentials and returns them to the user when they attempt to connect to a target. -Credential injection requires HCP Boundary or Boundary Enterprise, and it provides end users with a passwordless experience when they connect to targets. - -- [Configure a target for credential brokering](/boundary/docs/credentials/configure-credential-brokering) -- [Configure a target for credential injection](/boundary/docs/credentials/configure-credential-brokering) \ No newline at end of file diff --git a/website/content/docs/deploy/self-managed/configure-controllers.mdx b/website/content/docs/deploy/self-managed/configure-controllers.mdx deleted file mode 100644 index 4a534e264..000000000 --- a/website/content/docs/deploy/self-managed/configure-controllers.mdx +++ /dev/null @@ -1,355 +0,0 @@ ---- -layout: docs -page_title: Configure controllers -description: >- - Configure Boundary controllers for a self-managed deployment, including TLS, KMS, and database parameters. Start the service, authenticate, and manage resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure controllers - -Refer to the following sections to configure your Boundary controllers. - -## Prepare TLS certificates - -HashiCorp recommends that the Boundary controller nodes handle TLS using PKI for user connections. -Further, we strongly recommend that you use certificates that an appropriate certificate authority (CA) generated and signed. - -To use TLS, you must have two files on each Boundary controller node. -You may have to create a new directory to store the certificate material at `/etc/boundary.d/tls`. -Place the files in the following paths: - -- `/etc/boundary.d/tls/boundary-cert.pem` - - Place the Boundary TLS certificate with a Common Name (CN) and Subject Alternate Name (SAN) that matches your planned primary DNS record in this path so that the Boundary controllers and any SANs can access it. - -- `/etc/boundary.d/tls/boundary-key.pem` - - Place the Boundary TLS certificate's private key in this path. - -If you do not generate unique TLS key material for each node, you should securely distribute the key material to each of the Boundary controller nodes. - -## Prepare KMS keys - -Boundary controllers require the two following different cryptographic keys: - -- **Root key**: The root KMS key acts as a KEK (Key Encrypting Key) for the scope-specific KEKs, which are also referred to as the scope's root keys. -When you create a scope, Boundary also creates the root KEK and the various DEKs (Data Encryption Keys). -It encrypts the DEKs using the scope's KEK, and then encrypts the KEK with the KMS key marked for the root purpose. -- **Recovery key**: You use the recovery KMS key to authenticate Boundary client rescue and recovery operation workflows. -The recovery key includes a nonce and creation time as an encrypted payload. -Boundary formats the payload as a token and sends it to the controller. -The time and nonce ensure that an adversary cannot replay a value, and also ensure that a client must individually authenticate each operation, so that revoking access to the KMS has an immediate result. - -The following keys are optional: - -- **Worker-auth key (Optional)**: The controller and worker share the worker-auth KMS key to authenticate a worker to the controller. -If a worker uses PKI authentication, this key is unnecessary. -- **BSR key (Optional)**: Session recording requires the BSR KMS key. -Boundary uses the BSR key for encrypting data and checking the integrity of recordings. -If you do not add a BSR key to your controller configuration, you receive an error when you try to enable session recording. - -There are other optional KMS keys that you can configure for different encryption scenarios. -These scenarios include Boundary worker PKI auth encryption and Boundary worker or controller configuration encryption. -Refer to [Data encryption in Boundary](/boundary/docs/secure/encryption/data-encryption) for more information. - - -There are two types of Boundary workers, distinguished by the method by which they authenticate with the Boundary controllers. -One worker uses a PKI exchange to authenticate with the controllers. The other uses a KMS key for authentication by both the worker and the controller. -You use the Worker-auth key listed above to enable KMS worker authentication. - - -HashiCorp strongly recommends that you use either Vault Transit or your cloud provider's key management system. -Refer to the [Vault Transit](/vault/docs/secrets/transit) documentation or your cloud provider's key management documentation for more information. - -After you create the keys in Vault or the key management system of your choice, you can prepare the PostgreSQL database. - -## Prepare the database - -Boundary manages its state and configuration in a Relational Database Management System (RDBMS), PostgreSQL. -You should create, set up, and make the PostgreSQL database accessible to the Boundary controller nodes before you configure the nodes. - -Refer to the [Database recommendations](/boundary/docs/architecture/system-requirements#database-recommendations) documentation for examples of cloud managed PostgreSQL databases. - -## Create the controller configuration - -Once you have configured the following, you can create the controller configuration: - -- At least three virtual machines with Boundary installed on them -- At least one TLS certificate and key to distribute to the virtual machines for TLS communication -- KMS keys to use for at least root and recovery operations -- A PostgreSQL database to manage configuration and state - -You must complete the following controller configuration for each of the Boundary controller nodes. - -### Base controller configuration - -The core required values for a Boundary controller configuration include the following: - -- `listener` blocks for `api`, `cluster`, and `ops` -- A `kms` block -- `disable_mlock` -- A `controller` block - -When you install Boundary from the HashiCorp Linux Repository, it installs some example configuration files under `/etc/boundary.d/`. -Run the following commands to rename the example configuration files: - -1. `sudo mv boundary.hcl boundary.hcl.old` -1. `sudo mv controller.hcl controller.hcl.old` -1. `sudo mv worker.hcl worker.hcl.old` - -HashiCorp recommends that you use either the `env://` or `file://` notation in the configuration files to securely provide secret configuration components to the Boundary controller binaries. -The following controller configuration example uses `env://` to declare the PostgreSQL connect strings as well as secure the AWS KMS configuration items. - -When you install the Boundary binary using a package manager, it includes a unit file that configures an environment file at `/etc/boundary.d/boundary.env`. -You can use this file to set the sensitive values used to configure the Boundary controllers and workers. -The following is an example of a configuration using this environment file: - - - -```shell-session -POSTGRESQL_CONNECTION_STRING=postgresql://boundary:boundary@postgres.yourdomain.com:5432/boundary -AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE -AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -``` - - - - - -In the example above, the proper IAM roles and permissions for the given `AWS_ACCESS_KEY` and `AWS_SECRET_ACCESS_KEY` must be in place so that Boundary can use them to access the different KMS keys. - - - -Next, populate the `controller.hcl` file with any relevant configuration information. -The following example configuration file is a good starting point for a production Boundary controller installation. -It defines the three `listener` blocks, two unique `kms` blocks that are specific to AWS (as an example), the `disable_mlock` value, and the `controller` block. - - - -```hcl -# disable memory from being swapped to disk -disable_mlock = true - -# API listener configuration block -listener "tcp" { - # Should be the address of the NIC that the controller server will be reached on - # Use 0.0.0.0 to listen on all interfaces - address = "0.0.0.0:9200" - # The purpose of this listener block - purpose = "api" - - # TLS Configuration - tls_disable = false - tls_cert_file = "/etc/boundary.d/tls/boundary-cert.pem" - tls_key_file = "/etc/boundary.d/tls/boundary-key.pem" - - # Uncomment to enable CORS for the Admin UI. Be sure to set the allowed origin(s) - # to appropriate values. - #cors_enabled = true - #cors_allowed_origins = ["https://yourcorp.yourdomain.com", "serve://boundary"] -} - -# Data-plane listener configuration block (used for worker coordination) -listener "tcp" { - # Should be the IP of the NIC that the worker will connect on - address = "0.0.0.0:9201" - # The purpose of this listener - purpose = "cluster" -} - -# Ops listener for operations like health checks for load balancers -listener "tcp" { - # Should be the address of the interface where your external systems' - # (eg: Load-Balancer and metrics collectors) will connect on. - address = "0.0.0.0:9203" - # The purpose of this listener block - purpose = "ops" - - tls_disable = false - tls_cert_file = "/etc/boundary.d/tls/boundary-cert.pem" - tls_key_file = "/etc/boundary.d/tls/boundary-key.pem" -} - -# Controller configuration block -controller { - # This name attr must be unique across all controller instances if running in HA mode - name = "boundary-controller-1" - description = "Boundary controller number one" - - # This is the public hostname or IP where the workers can reach the - # controller. This should typically be a load balancer address - public_cluster_addr = "example-cluster-lb.example.com" - - # Enterprise license file, can also be the raw value or env:// value - license = "file:///path/to/license/file.hclic" - - # After receiving a shutdown signal, Boundary will wait 10s before initiating the shutdown process. - graceful_shutdown_wait_duration = "10s" - - # Database URL for postgres. This is set in boundary.env and - #consumed via the “env://” notation. - database { - url = "env://POSTGRESQL_CONNECTION_STRING" - } -} - -# Events (logging) configuration. This -# configures logging for ALL events to both -# stderr and a file at /var/log/boundary/controller.log -events { - audit_enabled = true - sysevents_enabled = true - observations_enable = true - sink "stderr" { - name = "all-events" - description = "All events sent to stderr" - event_types = ["*"] - format = "cloudevents-json" - } - sink { - name = "file-sink" - description = "All events sent to a file" - event_types = ["*"] - format = "cloudevents-json" - file { - path = "/var/log/boundary" - file_name = "controller.log" - } - audit_config { - audit_filter_overrides { - sensitive = "redact" - secret = "redact" - } - } - } -} - -# Root KMS Key (managed by AWS KMS in this example) -# Keep in mind that sensitive values are provided via ENV VARS -# in this example, such as access_key and secret_key -kms "awskms" { - purpose = "root" - region = "us-east-1" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" -} - -# Recovery KMS Key -kms "awskms" { - purpose = "recovery" - region = "us-east-1" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey2" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" -} - -# Worker-Auth KMS Key (optional, only needed if you use -# KMS authenticated workers) -kms "awskms" { - purpose = "worker-auth" - region = "us-east-1" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey3" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" -} - -# BSR KMS Key (optional, only needed if you use the -# session recording feature) -kms "awskms" { - purpose = "bsr" - region = "us-east-1" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey4" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" -} -``` - - -Refer to the list below for explanations of the parameters used in the example above: - -- `disable mlock (bool: false)` - Disables the server from executing the `mlock` syscall, which prevents memory swap to the disk. -Preventing memory swap is fine for local development and testing. -However, HashiCorp does not recommend using it for production unless the systems running Boundary use encrypted swap or do not use swap at all. -Boundary only supports memory locking on UNIX-like systems that support `mlock()` syscall like Linux and FreeBSD. - - On Linux, to give the Boundary executable the ability to use `mlock` syscall without running the process as root, run the following command: - - `sudo setcap cap_ipc_lock=+ep $(readlink -f $(which boundary))` - - If you use a Linux distribution with a modern version of systemd, you can add the following directive to the **"[Service]"** configuration section: - - `LimitMEMLOCK=infinity` - -- `listener` - Configures the listeners on which Boundary serves traffic (API cluster and proxy). -- `controller` - Configures the controller. -If present, `boundary server` starts a controller subprocess. -- `events` - Configures event-specific parameters. - - The example events configuration above is exhaustive and writes all events to both `stderr` and a file. - This configuration may or may not work for your organization's logging solution. - -- `kms` - Configures KMS blocks for [various purposes](/boundary/docs/secure/encryption/data-encryption). - - Refer to the links below for configuration information for the different cloud KMS blocks: - - - [AWS](/boundary/docs/configuration/kms/awskms) - - [Azure](/boundary/docs/configuration/kms/azurekeyvault) - - [GCP](/boundary/docs/configuration/kms/gcpckms) - - [OCI](/boundary/docs/configuration/kms/ocikms) - - [AliCloud](/boundary/docs/configuration/kms/alicloudkms) - - [Vault Transit](/boundary/docs/configuration/kms/transit) - -Refer to the documentation for additional [top-level configuration options](/boundary/docs/configuration) and additional [controller-specific options](/boundary/docs/configuration/controller). - -## Initialize the database - -Before you can start Boundary, you must initialize the database from one Boundary controller. -Initialization is a one-time operation that executes the required database migrations for the Boundary cluster to operate. - -```shell-session -boundary database init -config /etc/boundary.d/controller.hcl -``` - -Unless you configure it not to, Boundary automatically generates a number of resources to make getting started easier. It automatically generates default scopes, auth methods, user, account, and targets. These -resources, however, are not required. You can add the following flags to skip creating these initial resources: - -```shell-session -boundary database init \ - -skip-auth-method-creation \ - -skip-host-resources-creation \ - -skip-scopes-creation \ - -skip-target-creation \ - -config /etc/boundary.d/controller.hcl -``` - -Use the following command to view the help for additional initialization options: - -```shell-session -boundary database init -h -``` - -## Start the Boundary service - -When the configuration files are in place on each Boundary controller, you can proceed to enable and start the binary on each of the Boundary controller nodes using `systemd`. -Run the following commands to start the service: - -1. `sudo systemctl enable boundary` -1. `sudo systemctl start boundary` - -## Authenticate and manage resources - -Upon logging in to Boundary for the first time, HashiCorp recommends creating an admin user for the global and project level scopes to manage Boundary. -Creating an admin user allows you to configure targets within those scopes and manage them. - -HashiCorp recommends that you use the [KMS recovery workflow](/boundary/docs/deploy/self-managed/initialize#log-in-with-recovery-kms) to log in to Boundary for the first time. -Refer to [Creating your first login account](/boundary/docs/deploy/self-managed/initialize#create-your-first-login-account) to learn about setting up your first auth method, user, account, and role to log in to Boundary going forward without the recovery KMS workflow. - -## Next steps - -After you configure the controller, you should: - -1. [Deploy workers](/boundary/docs/deploy/self-managed/deploy-workers) -1. [Initialize Boundary](/boundary/docs/deploy/self-managed/initialize) -1. [Install the Boundary Clients](/boundary/docs/deploy/self-managed/install-clients) \ No newline at end of file diff --git a/website/content/docs/deploy/self-managed/deploy-workers.mdx b/website/content/docs/deploy/self-managed/deploy-workers.mdx deleted file mode 100644 index 0faed3efd..000000000 --- a/website/content/docs/deploy/self-managed/deploy-workers.mdx +++ /dev/null @@ -1,283 +0,0 @@ ---- -layout: docs -page_title: Deploy workers -description: >- - Configure Boundary workers for a self-managed deployment, including environment files and KMS keys. Set up ingress, intermediary, and egress roles for multi-hop. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Deploy workers - -Before you deploy workers, you should have completed the following steps: - -- Installed Boundary on at least three [controller nodes](/boundary/docs/deploy/self-managed/configure-controllers). -- Prepared or have three existing network boundaries: - - Public/DMZ network - - Intermediary network - - Private network -- Prepared three virtual machines for Boundary workers, one in each network boundary with the Boundary binary installed on it. - -In the following configuration files, there are common configuration components as well as some unique components depending on the role the Boundary worker performs. -There are three files, one for each worker in a unique network boundary. -Additionally, Boundary Enterprise supports a [multi-hop configuration](/boundary/docs/workers/multi-hop) in which the Boundary workers can serve one of three purposes: an ingress worker, an ingress/egress worker, or an egress worker. - -## Prepare the environment files - -HashiCorp recommends using either the `env://` or `file://` notation within the configuration files, to securely provide secret configuration components to the Boundary worker binaries. -The following configuration example uses `env://` to secure AWS KMS configuration items. - -When you install the Boundary binary using a package manager, it includes a unit file which configures an environment file at `/etc/boundar.d/boundary.env`. -You can use this file to set the sensitive values that are used to configure the Boundary workers. -The following file is an example of how this environment file could be configured: - - - -```shell-session -AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE -AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -``` - - - -In the example above, the proper IAM roles and permissions for the given `AWS_ACCESS_KEY` and `AWS_SECRET_ACCESS_KEY` must be in place so that Boundary can use them to access the different KMS keys. - -## Prepare the worker KMS keys - -The worker-auth storage KMS key is used by a Worker for the encrypted storage of authentication keys. -This is recommended Workers using controller-led or worker-led methods. If it is not specified, the authentication keys are not encrypted on disk. -Optionally, if you deploy KMS authentication-driven Boundary workers, an additional KMS key must be generated to authenticate the Boundary worker with the controller. - -HashiCorp strongly recommends using the Key Management System (KMS) of the cloud provider where you deploy your Boundary workers. -Keep in mind that Boundary workers must have the correct level of permissions for interacting with the cloud provider's KMS. -Refer to your cloud provider's documentation, for more information. - -## Create the worker configurations - -After you create the requisite key or keys in the cloud provider of your choice, you can begin configuring the workers. - -The following configuration examples all employ the worker-led authorization flow. -For more information on configuring KMS authentication for Boundary workers, refer to the [KMS authentication configuration documenation](/boundary/docs/workers/registration#kms-configuration). - -If you use Boundary Enterprise, you can configure multiple workers to act in three different roles: ingress, intermediary, and egress. -For Community Edition, workers only serve one role, acting as both the point of ingress and egress. -Select your Boundary edition, and complete the following steps to configure workers. - - - - -For Boundary Enterprise, you can configure ingress, intermediary, and egress workers to take advantage of [multi-hop worker capabilities](/boundary/docs/workers#multi-hop-sessions). - -Note that "ingress," "intermediary," and "egress" are general ways to describe how the respective worker interacts with resources. -A worker can serve more than one of those roles at a time. -Refer to [Multi-hop sessions](/boundary/docs/workers/multi-hop) for more information. - -Complete the steps below to configure workers for Boundary Enterprise. - -### Ingress worker configuration - -@include '/workers/ingress-worker-config.mdx' - -### Intermediate worker configuration - -@include '/workers/intermediate-worker-config.mdx' - -### Egress worker configuration - -@include '/workers/egress-worker-config.mdx' - - - - -For the Community Edition of Boundary, you must configure a worker server that communicates with the controller and is responsible for storage-related tasks. - -Boundary Community Edition only supports egress workers. To configure workers for multi-hop sessions, check the Boundary Enterprise configuration. - -Complete the following steps to configure the worker. - -### Worker configuration - -@include '/workers/single-worker-config.mdx' - - - - - -## Start the Boundary service - -When the configuration files are in place on each Boundary controller, you can proceed to enable and start the binary on each of the Boundary worker nodes using `systemd`. -Run the following commands to start the service: - -1. `sudo systemctl enable boundary` -1. `sudo systemctl start boundary` - -## Adopt the workers (optional) - -If you use the workers as outlined above, you must adopt the Boundary workers. -Complete the following steps to adopt the workers: - - - - - -Complete the following steps to adopt the worker using the UI: - -1. Log in to Boundary as the admin user. - -1. Select **Workers** in the navigation pane. - -1. Click **New**. - -1. (Optional) You can use the workers page to construct the contents of the `worker.hcl` file, if you did not [create the configuration file](/boundary/docs/deploy/self-managed/deploy-workers#create-the-worker-configurations) as part of the installation process above. -Provide the following details, and Boundary constructs the worker configuration file for you: - - Boundary Cluster ID - - Worker Public Address - - Config file path - - Worker Tags - -1. Scroll to the bottom of the **New Worker** page, and paste the **Worker Auth Registration Request** key. -Boundary provides you with the **Worker Auth Registration Request** key in the CLI output when you start the worker. -You can also locate this value in the `auth_request_token` file. - -1. Click **Register Worker**. - -1. Click **Done**. - - The new worker appears on the **Workers** page. - -1. Repeat the registration process for any other workers, such as the intermediate and egress workers. - - - - - -Complete the following steps to adopt the worker using the CLI: - -1. Use the following command to ensure that the `BOUNDARY_ADDR` is set as an environment variable: - - ```hcl - $ export BOUNDARY_ADDR="https://c3a7a20a-f663-40f3-a8e3-1b2f69b3625.boundary.hashicorp.cloud" - ``` - -1. Log into the CLI as the admin user, providing the Auth Method ID, admin login name, and admin password when prompted. - - ```hcl - $ boundary authenticate password \ - -auth-method-id=ampw_KfLAjMS2CG \ - -login-name=admin - ``` - - Example: - - - - ```hcl - $ boundary authenticate password \ - -auth-method-id=ampw_KfLAjMS2CG \ - -login-name=admin - Please enter the password (it will be hidden): - - Authentication information: - Account ID: acctpw_r6crEm0FgM - Auth Method ID: ampw_KfLAjMS2CG - Expiration Time: Mon, 27 Jun 2022 22:03:28 MDT - User ID: u_ysJd0LXX9T - - The token was successfully stored in the chosen keyring and is not displayed here. - ``` - - - -1. Next, use the following command to export the **Worker Auth Request Token** value as an environment variable: - - ```shell-session - $ export WORKER_TOKEN= - ``` - - Boundary provides you with the **Worker Auth Registration Request** key in the CLI output when you start the worker. - You can also locate this value in the `auth_request_token` file. - - The token is used to issue a create worker request that authorizes the worker to Boundary and makes it available. - Currently worker creation is only supported for workers with an authorization token (worker-led and controller-led). - -1. Create a new worker using the worker-led registration method with the following command: - - ```shell-session - $ boundary workers create worker-led -worker-generated-auth-token=$WORKER_TOKEN - - Worker information: - Active Connection Count: 0 - Created Time: Fri, 03 Jan 2025 13:52:04 MST - ID: w_zLGjAbYx1h - Local Storage State: unknown - Type: pki - Updated Time: Fri, 03 Jan 2025 13:52:04 MST - Version: 1 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - add-worker-tags - set-worker-tags - remove-worker-tags - ``` - - Confirm the worker registration and view its details by executing the following command and supplying the new worker's id: - - ```shell-session - $ boundary workers read -id w_zLGjAbYx1h - - Worker information: - Active Connection Count: 0 - Address: 127.0.0.1:9202 - Created Time: Fri, 03 Jan 2025 13:52:04 MST - ID: w_zLGjAbYx1h - Last Status Time: 2025-01-03 20:58:41.346537 +0000 UTC - Local Storage State: not configured - Release Version: Boundary v0.18.1+ent - Type: pki - Updated Time: Fri, 03 Jan 2025 13:58:41 MST - Version: 1 - - Scope: - ID: global - Name: global - Type: global - - Tags: - Configuration: - type: ["worker1" "upstream"] - Canonical: - type: ["upstream" "worker1"] - - Authorized Actions: - add-worker-tags - set-worker-tags - remove-worker-tags - no-op - read - update - delete - ``` - -1. Repeat the registration process for any other workers, such as the intermediate and egress workers. - - - - -## Next steps - -After you configure workers, you should: - -1. [Initialize Boundary](/boundary/docs/deploy/self-managed/initialize) -1. [Install the Boundary Clients](/boundary/docs/deploy/self-managed/install-clients) \ No newline at end of file diff --git a/website/content/docs/deploy/self-managed/index.mdx b/website/content/docs/deploy/self-managed/index.mdx deleted file mode 100644 index cbdc1db50..000000000 --- a/website/content/docs/deploy/self-managed/index.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: docs -page_title: Deploy Boundary in a self-managed environment -description: >- - Discover resources for deploying a self-managed version of Boundary Enterprise or Boundary Community Edition. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Deploy Boundary in a self-managed environment - -To deploy a self-managed Boundary environment you should: - -1. Install the Boundary binary -1. Deploy and configure Boundary controllers and workers -1. Install end-user clients - -This guide outlines the required steps to manually install and configure a -single self-managed HashiCorp Boundary cluster as defined in the Recommended -architecture topic. -It assumes you install Boundary on virtual machines (VMs) or bare-metal servers -running a Debian or Red Hat-based Linux distribution. - -To deploy HCP Boundary instead, refer to the [Deploy and log in](/boundary/docs/hcp/get-started/deploy-and-login) in the HCP Boundary Get started documentation. - -This document includes general guidance as well as specific recommendations for -popular cloud infrastructure platforms. These recommendations have also been -encoded into official Terraform reference architectures for -[AWS](https://github.com/hashicorp/boundary-reference-architecture/tree/main/deployment/aws), -[Azure](https://github.com/hashicorp/boundary-reference-architecture/tree/main/deployment/azure), -and -[GCP](https://github.com/hashicorp/boundary-reference-architecture/tree/main/deployment/gcp). - -## More information - -Before you begin, you may want to review the following information about Boundary's architecture and system requirements: - -- [System requirements](/boundary/docs/architecture/system-requirements) -- [Recommended architecture](/boundary/docs/architecture/recommended-architecture) -- [Fault tolerance](/boundary/docs/architecture/fault-tolerance) -- [High availability](/boundary/docs/architecture/high-availability) - -## Next steps - -Refer to the following topics to deploy your self-managed environment: - -1. [Install Boundary](/boundary/docs/deploy/self-managed/install) -1. [Configure controllers](/boundary/docs/deploy/self-managed/configure-controllers) -1. [Deploy workers](/boundary/docs/deploy/self-managed/deploy-workers) -1. [Initialize Boundary](/boundary/docs/deploy/self-managed/initialize) -1. [Install Boundary clients](/boundary/docs/deploy/self-managed/install-clients) - -To configure Boundary resources using Terraform, refer to [Terraform patterns](/boundary/docs/deploy/terraform-patterns). \ No newline at end of file diff --git a/website/content/docs/deploy/self-managed/initialize.mdx b/website/content/docs/deploy/self-managed/initialize.mdx deleted file mode 100644 index 285f1ff6f..000000000 --- a/website/content/docs/deploy/self-managed/initialize.mdx +++ /dev/null @@ -1,473 +0,0 @@ ---- -layout: docs -page_title: Initialize Boundary -description: >- - Initialize new Boundary self-managed installations. Log in with the recovery KMS to create initial scope, auth method, login account, user, and role resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Initialize Boundary - -This document describes how to access Boundary for the first time and create the necessary resources to log in as a -user. - -You can also initialize and manage Boundary using Terraform. Refer to the [Terraform patterns](/boundary/docs/deploy/terraform-patterns) page to learn more. - -## Requirements - -Before you initialize Boundary, you should have [initialized a database](/boundary/docs/deploy/self-managed/configure-controllers#initialize-the-database). - -## Log in with recovery KMS - -To access a new Boundary instance for the first time, you must use the recovery KMS defined in the -controller configuration file. The following example represents a configuration file that uses hard-coded AEAD keys: - - - -In a production environment, HashiCorp recommends that you use a cloud provider's KMS such as [AWS KMS](/boundary/docs/configuration/kms/awskms) -to manage the keys Boundary uses to encrypt sensitive information. - - - -```hcl - -kms "aead" { - purpose = "root" - aead_type = "aes-gcm" - key = "sP1fnF5Xz85RrXyELHFeZg9Ad2qt4Z4bgNHVGtD6ung=" - key_id = "global_root" -} - -kms "aead" { - purpose = "worker-auth" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "global_worker-auth" -} - -kms "aead" { - purpose = "recovery" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "global_recovery" -} - -``` - -The KMS with the `recovery` purpose is used to "recover" Boundary, allowing you to authenticate to Boundary and manage -it as a super user. It also allows you to authenticate from the CLI or from Terraform to manage Boundary -without any generated resources. - -To authenticate to Boundary using the recovery KMS workflow: - - - - - -To use the recovery workflow on the CLI, you must pass the `-recovery-config ` flag or set the environment -variable for `BOUNDARY_RECOVERY_CONFIG` for every command ran. Authentication takes place for every command -ran when using the recovery workflow. The `boundary authenticate` command does not apply when you use the recovery KMS. - -```shell-session -$ cat << EOF > /tmp/recovery.hcl -kms "aead" { - purpose = "recovery" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "global_recovery" -} -EOF - -# Example command -$ boundary users create -recovery-config /tmp/recovery.hcl -... -``` - - - - - -To configure your provider to use the recovery KMS workflow, provide the KMS block as the value for -`recovery_kms_hcl`: - -```hcl -provider "boundary" { - addr = "https://boundary.mycorp.com:9200" - recovery_kms_hcl = < - - -## Create your first login account - -This section covers how to configure your first auth method, user, account, and role to log in to Boundary without -the recovery KMS workflow. In this example, we are going to make an admin user for the global and project level -scopes we create. This will allow our user to configure targets within those scopes and manage them. - -### Create org and project scopes - -First, create an org and project scope and skip creating an administrator and admin role for each scope. We are going to -specify a role for managing these scopes by selected users in a later step. - - - - - -```shell-session -$ boundary scopes create -name 'org' -scope-id 'global' \ - -recovery-config /tmp/recovery.hcl \ - -skip-admin-role-creation \ - -skip-default-role-creation - - -$ boundary scopes create -name 'project' -scope-id \ - -recovery-config /tmp/recovery.hcl \ - -skip-admin-role-creation \ - -skip-default-role-creation - -``` - - - - - -```hcl -resource "boundary_scope" "org" { - scope_id = "global" - name = "organization" - description = "Organization scope" - - auto_create_admin_role = false - auto_create_default_role = false -} - -resource "boundary_scope" "project" { - name = "project" - description = "My first project" - scope_id = boundary_scope.org.id - auto_create_admin_role = false - auto_create_default_role = false -} -``` - - - - - -### Create an auth method - -Create an auth method in the organization scope. - - - - - -```shell-session -$ boundary auth-methods create password \ - -recovery-config /tmp/recovery.hcl \ - -scope-id \ - -name 'my_method' \ - -description 'My password auth method' -``` - - - - - -```hcl -resource "boundary_auth_method" "password" { - name = "my_password_auth_method" - description = "Password auth method" - type = "password" - scope_id = boundary_scope.org.id -} -``` - - - - - -### Create a login account - -Create a login account for the auth method. - - - - - -```shell-session -$ boundary accounts create password \ - -recovery-config /tmp/recovery.hcl \ - -login-name "myuser" \ - -auth-method-id -``` - - - - - -```hcl -resource "boundary_account" "myuser" { - name = "myuser" - description = "User account for my user" - type = "password" - login_name = "myuser" - password = "foofoofoo" - auth_method_id = boundary_auth_method.password.id -} -``` - - - - - -### Create a user - -Create a user and associate the user with the login account created in the previous step. -This user will also be the principal in the role we create in the following step. - - - - - -```shell-session -$ boundary users create -scope-id \ - -recovery-config /tmp/recovery.hcl \ - -name "myuser" \ - -description "My user!" - -$ boundary users add-accounts \ - -recovery-config /tmp/recovery.hcl \ - -id \ - -account -``` - - - - - -```hcl -resource "boundary_user" "myuser" { - name = "myuser" - description = "My user!" - account_ids = [boundary_account.myuser.id] - scope_id = boundary_scope.org.id -} -``` - - - - - -### Create roles to manage scopes - -The following section describes the four baseline roles you must create to manage resources within the org and project -scopes that you created. These roles are similar to the roles Boundary automatically created for you if you did not skip generation using the `-skip-initial-login-role-creation` flag when you ran `boundary database init`. Declaring roles explicitly -allows you to manage them independently and fully within Terraform or via the CLI. In doing so, you can precisely define their access. - -The following example creates 4 roles: - -1. To allow anonymous (unauthenticated) users the ability to list scopes and auth methods in the global scope. -1. To allow anonymous (unauthenticated) users the ability to list scopes and auth methods in the organization scope. -1. To allow `myuser` user administration grants at the org scope. -1. To allow `myuser` user administration grants at the project scope. - -#### Anonymous listing role for global scope - - - - - -Assumes recovery key export from above steps is still set: - -```shell-session -# Create global anonymous listing role -$ boundary roles create -name 'global_anon_listing' \ - -recovery-config /tmp/recovery.hcl \ - -scope-id 'global' - -$ boundary roles add-grants -id \ - -recovery-config /tmp/recovery.hcl \ - -grant 'ids=*;type=auth-method;actions=list,authenticate' \ - -grant 'ids=*;type=scope;actions=list,no-op' \ - -grant 'ids={{.Account.Id}};actions=read,change-password' - -$ boundary roles add-principals -id \ - -recovery-config /tmp/recovery.hcl \ - -principal 'u_anon' -``` - - - - - -```hcl -resource "boundary_role" "global_anon_listing" { - scope_id = "global" - grant_strings = [ - "ids=*;type=auth-method;actions=list,authenticate", - "ids=*;type=scope;actions=list,no-op", - "ids={{.Account.Id}};actions=read,change-password" - ] - principal_ids = ["u_anon"] -} -``` - - - - - -#### Anonymous listing role for org scope - - - - - -Assumes recovery key export from above steps is still set: - -```shell-session -$ boundary roles create -name 'org_anon_listing' \ - -recovery-config /tmp/recovery.hcl \ - -scope-id - -$ boundary roles add-grants -id \ - -recovery-config /tmp/recovery.hcl \ - -grant 'ids=*;type=auth-method;actions=list,authenticate' \ - -grant 'type=scope;actions=list' \ - -grant 'ids={{.Account.Id}};actions=read,change-password' - -$ boundary roles add-principals -id \ - -recovery-config /tmp/recovery.hcl \ - -principal 'u_anon' -``` - - - - - -```hcl -resource "boundary_role" "org_anon_listing" { - scope_id = boundary_scope.org.id - grant_strings = [ - "ids=*;type=auth-method;actions=list,authenticate", - "type=scope;actions=list", - "ids={{.Account.Id}};actions=read,change-password" - ] - principal_ids = ["u_anon"] -} -``` - - - - - -#### Org admin role for myuser - - - - - -Assumes recovery key export from above steps is still set: - -```shell-session -$ boundary roles create -name 'org_admin' \ - -recovery-config /tmp/recovery.hcl \ - -scope-id 'global' - -$ boundary roles set-grant-scopes \ - -id \ - -grant-scope-id - -$ boundary roles add-grants -id \ - -recovery-config /tmp/recovery.hcl \ - -grant 'ids=*;type=*;actions=*' - -$ boundary roles add-principals -id \ - -recovery-config /tmp/recovery.hcl \ - -principal -``` - - - - - -```hcl -resource "boundary_role" "org_admin" { - scope_id = "global" - grant_scope_ids = [boundary_scope.org.id] - grant_strings = [ - "ids=*;type=*;actions=*" - ] - principal_ids = [boundary_user.myuser.id] -} -``` - - - - - -#### Project admin for myuser - - - - - -Assumes recovery key export from above steps is still set: - -```shell-session -$ boundary roles create -name 'project_admin' \ - -recovery-config /tmp/recovery.hcl \ - -scope-id \ - -grant-scope-id - -$ boundary roles add-grants -id \ - -recovery-config /tmp/recovery.hcl \ - -grant 'ids=*;type=*;actions=*' - -$ boundary roles add-principals -id \ - -recovery-config /tmp/recovery.hcl \ - -principal -``` - - - - - -```hcl -resource "boundary_role" "project_admin" { - scope_id = boundary_scope.org.id - grant_scope_ids = [boundary_scope.project.id] - grant_strings = [ - "ids=*;type=*;actions=*" - ] - principal_ids = [boundary_user.myuser.id] -} -``` - - - - - -### Log in as your new user - -```shell-session -boundary authenticate password \ - -auth-method-id -``` - -## Next steps - -After you initialize Boundary, you should [Install the Boundary Clients](/boundary/docs/deploy/self-managed/install-clients). \ No newline at end of file diff --git a/website/content/docs/deploy/self-managed/install-clients.mdx b/website/content/docs/deploy/self-managed/install-clients.mdx deleted file mode 100644 index 2b862b400..000000000 --- a/website/content/docs/deploy/self-managed/install-clients.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -layout: docs -page_title: Install Boundary clients -description: >- - Install the Boundary CLI, Boundary Desktop Client app, or Boundary installer for Boundary Enterprise or Community Edition on Windows, MacOS, or Linux. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Install Boundary clients - -Boundary end users access infrastructure targets using the Boundary Desktop Client app or the Boundary CLI. Enterprise or HCP Boundary users can use transparent sessions to proxy traffic through the Boundary Client Agent HCP/ENT. - -This guide outlines the required steps to manually install and configure a Boundary client depending on which distribution of Boundary end users access. - -To learn about installing the Boundary binary when you deploy Boundary controllers or workers, refer to the [Install Boundary](/boundary/docs/deploy/self-managed/install) page. - -Select your Boundary distribution, and complete the steps to install the -correct clients: - - - - -@include 'alerts/enterprise-only.mdx' - -The Boundary installer bundles together the following components: - -- Boundary binary (CLI) -- Boundary Desktop Client app -- Boundary Client Agent HCP/ENT - -Download the appropriate Boundary installer for your Windows, MacOS, or Linux environment from the [Install Boundary](/boundary/install#installer) downloads page or the [releases](https://releases.hashicorp.com/boundary-installer) page. You can also download the components individually, but compatibility is not guaranteed. Refer to the [Supported versions policy](/boundary/docs/enterprise/supported-versions#control-plane-and-client-cli-compatibility) to learn more. - - - - Before you launch the Boundary installer, ensure that you have uninstalled all previous versions of the Boundary binary and Boundary Desktop Client app. - - - -To learn more about installing the Boundary CLI and Boundary Desktop Client app, refer to the [Get started with HCP Boundary](/boundary/tutorials/get-started-hcp) tutorials. - - - - -We recommend the following components for end users: - -- Boundary binary (CLI) -- Boundary Desktop Client app - -Download these components for your Windows, MacOS, or Linux environment from the [Install Boundary](/boundary/install) downloads page or the [HashiCorp releases](https://releases.hashicorp.com/) page. - - - -Client compatibility is not guaranteed. You should always ensure that your client is compatible with the version of the Boundary control plane you connect to. Refer to the [Supported versions policy](/boundary/docs/enterprise/supported-versions#control-plane-and-client-cli-compatibility) to learn more. - - - -To learn more about installing the Boundary CLI and Boundary Desktop Client app, refer to the [Get started with self-managed Boundary](/boundary/tutorials/get-started-community) tutorials. - - - \ No newline at end of file diff --git a/website/content/docs/deploy/self-managed/install.mdx b/website/content/docs/deploy/self-managed/install.mdx deleted file mode 100644 index b9c232dcb..000000000 --- a/website/content/docs/deploy/self-managed/install.mdx +++ /dev/null @@ -1,199 +0,0 @@ ---- -layout: docs -page_title: Install Boundary -description: >- - Deploy a self-managed version of Boundary Enterprise or Community Edition on Ubuntu/Debian, CentOS/RHEL, or Amazon Linux by installing the binary file. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Install Boundary - -Pre-built Boundary packages are available from the [HashiCorp Linux -Repository](https://www.hashicorp.com/blog/announcing-the-hashicorp-linux-repository). -In addition to installing the Boundary binary, the official package also -provides a systemd service unit, and a local `boundary` user account under which -the service runs. - - - -You must complete the following steps for each Boundary controller and worker -node that you want to deploy. The binary operates as either a worker or -controller, depending on the configuration that you generate for the -Boundary binary. - - - -The steps vary by Linux distribution. - -Select your distribution of Boundary, and complete the steps to install the -binary: - - - - - - - -1. Use the following command to add the HashiCorp GPC key as a trusted - package-signing key: - - ```shell-session - $ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg - ``` -1. Add the official HashiCorp Linux repository: - - ```shell-session - $ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list - ``` - -1. Update the package index: - - ```shell-session - $ sudo apt update - ``` - -1. Install Boundary Enterprise: - - ```shell-session - $ sudo apt install boundary-enterprise - ``` - - - - -1. Use the following command to install `yum-config-manager` to manage your - repositories: - - ```shell-session - $ sudo yum install -y yum-utils - ``` - -2. Add the official HashiCorp Linux repository: - - ```shell-session - $ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo - ``` - -3. Install Boundary Enterprise: - - ```shell-session - $ sudo yum -y install boundary-enterprise - ``` - - - - -1. Use the following command to install `yum-config-manager` to manage your - repositories: - - ```shell-session - $ sudo yum install -y yum-utils shadow-utils - ``` - -2. Add the official HashiCorp Linux repository: - - ```shell-session - $ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo - ``` - -3. Install Boundary Enterprise: - - ```shell-session - $ sudo yum -y install boundary-enterprise - ``` - - - - - - - - -1. Use the following command to add the HashiCorp GPC key as a trusted - package-signing key: - - ```shell-session - $ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg - ``` -1. Add the official HashiCorp Linux repository: - - ```shell-session - $ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list - ``` - -1. Update the package index: - - ```shell-session - $ sudo apt update - ``` - -1. Install Boundary Community Edition: - - ```shell-session - $ sudo apt install boundary - ``` - - - - -1. Use the following command to install `yum-config-manager` to manage your - repositories: - - ```shell-session - $ sudo yum install -y yum-utils - ``` - -2. Add the official HashiCorp Linux repository: - - ```shell-session - $ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo - ``` - -3. Install Boundary Community Edition: - - ```shell-session - $ sudo yum -y install boundary - ``` - - - - - -1. Use the following command to install `yum-config-manager` to manage your - repositories: - - ```shell-session - $ sudo yum install -y yum-utils shadow-utils - ``` - -2. Add the official HashiCorp Linux repository: - - ```shell-session - $ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo - ``` - -3. Install Boundary Community Edition: - - ```shell-session - $ sudo yum -y install boundary - ``` - - - - - - -You should install the binary on the controller and worker instances you configure to run in your Boundary environments. - -## Next steps - -After you install the binary, you should: - -1. [Configure controllers](/boundary/docs/deploy/self-managed/configure-controllers) -1. [Deploy workers](/boundary/docs/deploy/self-managed/deploy-workers) -1. [Initialize Boundary](/boundary/docs/deploy/self-managed/initialize) -1. [Install the Boundary Clients](/boundary/docs/deploy/self-managed/install-clients) \ No newline at end of file diff --git a/website/content/docs/deploy/self-managed/systemd.mdx b/website/content/docs/deploy/self-managed/systemd.mdx deleted file mode 100644 index c98e50e8c..000000000 --- a/website/content/docs/deploy/self-managed/systemd.mdx +++ /dev/null @@ -1,95 +0,0 @@ ---- -layout: docs -page_title: systemd Installation -description: |- - How to install Boundary under systemd on Linux ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Install Boundary under systemd - -This section covers how to install Boundary under the [systemd](https://systemd.io/) init system on modern Linux distributions. In this section, we'll cover an example of breaking out the controller and worker servers onto separate instances, though you can opt to run both on a single server. - -## Filesystem configuration - -`TYPE` below can be either `worker` or `controller` if you want to run them independently, e.g. for high availability. If you want to run combined nodes, modify as desired. - -1. `/etc/boundary.d/boundary-${TYPE}.hcl`: Configuration file for the boundary service. - -2. `/usr/local/bin/boundary`: The Boundary binary, which can be built from the [source](https://github.com/hashicorp/boundary) or downloaded from our [release page](/boundary/downloads). - -3. `/etc/systemd/system/boundary-${TYPE}.service`: Systemd unit file for the Boundary service. - -## User and group configuration - -We recommend running Boundary as a non-root user and using this user to manage the Boundary process running under systemd. The example init files here do exactly that. Our example install script below creates a user and group on Ubuntu or Debian-like systems. - -## systemd unit file - -``` -[Unit] -Description=${NAME} ${TYPE} - -[Service] -ExecStart=/usr/local/bin/${NAME} server -config /etc/${NAME}-${TYPE}.hcl -User=boundary -Group=boundary -LimitMEMLOCK=infinity -Capabilities=CAP_IPC_LOCK+ep -CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK - -[Install] -WantedBy=multi-user.target -``` - -## systemd all-in-one installation script - -Here's a simple install script that creates the `boundary` group and user, installs the -systemd unit file, and enables it at startup: - -``` -#!/bin/bash -# Installs the boundary as a service for systemd on linux -# Usage: ./install.sh - -TYPE=$1 -NAME=boundary - -sudo cat << EOF > /etc/systemd/system/${NAME}-${TYPE}.service -[Unit] -Description=${NAME} ${TYPE} - -[Service] -ExecStart=/usr/local/bin/${NAME} server -config /etc/${NAME}-${TYPE}.hcl -User=boundary -Group=boundary -LimitMEMLOCK=infinity -Capabilities=CAP_IPC_LOCK+ep -CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK - -[Install] -WantedBy=multi-user.target -EOF - -# Add the boundary system user and group to ensure we have a no-login -# user capable of owning and running Boundary -sudo adduser --system --group boundary || true -sudo chown boundary:boundary /etc/${NAME}-${TYPE}.hcl -sudo chown boundary:boundary /usr/local/bin/boundary - -# Make sure to initialize the DB before starting the service. This will result in -# a database already initialized warning if another controller or worker has done this -# already, making it a lazy, best effort initialization -if [ "${TYPE}" = "controller" ]; then - sudo /usr/local/bin/boundary database init -config /etc/${NAME}-${TYPE}.hcl || true -fi - -sudo chmod 664 /etc/systemd/system/${NAME}-${TYPE}.service -sudo systemctl daemon-reload -sudo systemctl enable ${NAME}-${TYPE} -sudo systemctl start ${NAME}-${TYPE} -``` diff --git a/website/content/docs/deploy/terraform-patterns/index.mdx b/website/content/docs/deploy/terraform-patterns/index.mdx deleted file mode 100644 index 6dfdc895c..000000000 --- a/website/content/docs/deploy/terraform-patterns/index.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -layout: docs -page_title: Terraform patterns for Boundary -description: >- - Configure the Terraform Boundary provider so that you can use Terraform patterns to install and manage Boundary resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Terraform patterns for Boundary - -HashiCorp recommends using Terraform to deploy and maintain your Boundary environment. - -This following topics outline MVP (Minimum Viable Product) patterns to deploy and maintain Boundary using Terraform. - -## Requirements - -This document assumes the reader has: - -- An understanding of [Terraform](/terraform/docs) fundamentals. -- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary. - -## Terraform provider configuration - -To use Terraform to manage your Boundary environment, you must first configure the Terraform Boundary provider. - -The following code block provides an example of provider configuration using the userpass authentication method. -You can use any of the available Boundary authentication methods by specifying the appropriate `auth_method_id`. - -```hcl -terraform { - required_providers { - # Declare the provider - boundary = { - source = "hashicorp/boundary" - } - } -} - -# Configure the provider -# This example assumes that you have stored your Boundary cluster address and credentials in Terraform variables - -provider "boundary" { - addr = var.boundary_addr - auth_method_login_name = var.boundary_login_name - auth_method_password = var.boundary_password -} -``` -## More information - -Refer to the [Boundary provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/) for more information on the available authentication methods. - -## Next steps - -The following pages provide examples and patterns for configuring Boundary resources with Terraform. - -If you are configuring Boundary resources for the first time, you may want to start by creating a scope. -You create scopes to partition resources and then assign ownership of those resources to users and groups. - -- [Scopes](/boundary/docs/deploy/terraform-patterns/terraform-scopes) -- [Users and auth methods](/boundary/docs/deploy/terraform-patterns/terraform-users-and-auth-methods) -- [Groups and role-based-access-control (RBAC)](/boundary/docs/deploy/terraform-patterns/terraform-groups-and-rbac) -- [Hosts and host management](/boundary/docs/deploy/terraform-patterns/terraform-hosts-and-host-management) -- [Credentials and credential stores](/boundary/docs/deploy/terraform-patterns/terraform-credentials-and-credential-stores) -- [Session recording](/boundary/docs/deploy/terraform-patterns/terraform-session-recording) -- [Targets](/boundary/docs/deploy/terraform-patterns/terraform-targets) \ No newline at end of file diff --git a/website/content/docs/deploy/terraform-patterns/terraform-credentials-and-credential-stores.mdx b/website/content/docs/deploy/terraform-patterns/terraform-credentials-and-credential-stores.mdx deleted file mode 100644 index 2d06da276..000000000 --- a/website/content/docs/deploy/terraform-patterns/terraform-credentials-and-credential-stores.mdx +++ /dev/null @@ -1,204 +0,0 @@ ---- -layout: docs -page_title: Terraform patterns for credentials and credential stores -description: >- - Use Terraform patterns to create and manage Boundary credentials and credential stores. Learn how to create static or Vault credential stores, add credentials. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Terraform patterns for credentials and credential stores - -Boundary supports multiple types of static credentials and Vault dynamic credentials. A credential store stores credentials for hosts. Static credential stores can hold username/passwords, JSON tokens, SSH key pairs, and SSH certificates. - -## Requirements - -This document assumes the reader has: - -- An understanding of [Terraform](/terraform/docs) fundamentals. -- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary. -- Configured the [Terraform Boundary provider](/boundary/docs/deploy/terraform-patterns/#terraform-provider-configuration). -- Configured [hosts](/boundary/docs/deploy/terraform-patterns/terraform-hosts-and-host-management) for any credential store you plan to create. - -## Static credential store configuration - -This example creates both a static credential store and a Vault credential store. - -```hcl -# Create a static credential store -resource "boundary_credential_store_static" "example" { - name = "example_static_credential_store" - description = "My first static credential store" - scope_id = boundary_scope.project.id -} - -# Create a Vault credential store -resource "boundary_credential_store_vault" "example" { - name = "vault_store" - description = "My first Vault credential store" - - # change to your Vault address - address = "http://127.0.0.1:8200" - - # Use a token that has rights to access the secrets in Vault that - # Boundary should use - token = var.vault_token - scope_id = boundary_scope.project.id -} -``` - -After you create a credential store, you can create one or more credentials in that store. - -### Add static credentials configuration - -This example creates static credentials that Boundary manages. The credentials are for a user named Carlos. - -```hcl -# Create a username/password combination -resource "boundary_credential_username_password" "carlos" { - name = "example_username_password" - description = "My first username password credential" - credential_store_id = boundary_credential_store_static.example.id - username = "Carlos" - password = "Carlos-password" -} - -# Create an ssh private key -resource "boundary_credential_ssh_private_key" "carlos_ssh" { - name = "example_ssh_private_key" - description = "My first ssh private key credential" - credential_store_id = boundary_credential_store_static.example.id - username = "carlos" - - # You can also load the private_key from a file using the Terraform file() function. - private_key = var.carlos_ssh_key - - # change to the passphrase of the private key, if required - private_key_passphrase = "optional-passphrase" -} - -# Create a JSON credential -resource "boundary_credential_json" "example" { - name = "example_json" - description = "My first json credential" - credential_store_id = boundary_credential_store_static.example.id - - # This points to the actual json file. You can also load this from a variable. - object = file("~/object.json") -} -``` - -## Vault credential store configuration - -For Vault credential stores, you can then create a credential library which distributes credentials of a specific access level from a Vault path. - -This example creates a credential library that reads secrets from a Vault path called `my/secret/foo`. - -```hcl - -resource "boundary_credential_library_vault" "foo" { - name = "foo" - description = "My first Vault credential library" - credential_store_id = boundary_credential_store_vault.example.id - - # Defines a valid Vault secret path - path = "my/secret/foo" - http_method = "GET" -} -``` - -### Translate key names from Vault configuration - -If you need to translate the key names from Vault into values expected by -Boundary, use this pattern. - -```hcl -resource "boundary_credential_library_vault" "baz" { - name = "baz" - description = "vault username password credential with mapping overrides" - credential_store_id = boundary_credential_store_vault.example.id - - # Defines the vault path that contains the secret you need - path = "my/secret/baz" - http_method = "GET" - credential_type = "username_password" - - # This maps the username and password field names in Vault to their names in Boundary - credential_mapping_overrides = { - password_attribute = "alternative_password_label" - username_attribute = "alternative_username_label" - } -} -``` - -### Use SSH certificates as credentials configuration - -To use SSH certificates as credentials, you use the `boundary_credential_vault_ssh_certificate` resource as shown in this example. - -```hcl -resource "boundary_credential_library_vault_ssh_certificate" "example" { - name = "foo" - description = "My first Vault SSH certificate credential library" - credential_store_id = boundary_credential_store_vault.foo.id - - # Declares the vault path that generates certificates - path = "ssh/sign/foo" - - # Defines the username - username = "foo" -} -``` -### Declare additional certificate attributes and extensions configuration - -This example declares additional certificate attributes and extensions. Note that you can enable extensions by declaring their names and setting their values to empty strings. - -```hcl -resource "boundary_credential_library_vault_ssh_certificate" "example" { - name = "baz" - description = "vault " - credential_store_id = boundary_credential_store_vault.foo.id - path = "ssh/issue/foo" # change to the Vault endpoint and role - username = "foo" - - # Defines additional optional certificate attributes - key_type = "rsa" - key_bits = 4096 - - extensions = { - permit-pty = "" - permit-X11-forwarding = "" - } - - critical_options = { - force-command = "/bin/some_script" - } -} -``` - -## More information - -For more information about the Boundary resources mentioned in this topic, refer to the domain model documentation: - -- [Credential stores](/boundary/docs/domain-model/credential-stores) -- [Credentials](/boundary/docs/domain-model/credentials) -- [Credential libraries](/boundary/docs/domain-model/credential-libraries) - -For more information about managing the following resources using Terraform, refer to the Boundary provider documentation: - -- Credentials - - [JSON](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_json/) - - [SSH private keys](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_ssh_private_key/) - - [Username/passwords](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_username_password/) -- Credential libraries - - [Vault](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_library_vault/) - - [Vault SSH certificates](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_library_vault_ssh_certificate/) -- Credential stores - - [Static](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_store_static/) - - [Vault](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_store_vault/) - -## Next steps - -Once you have configured credentials and credential stores, you may want to enable [session recording](/boundary/docs/deploy/terraform-patterns/terraform-session-recording) for auditing purposes or configure [targets](/boundary/docs/deploy/terraform-patterns/terraform-targets) for your users to connect to. \ No newline at end of file diff --git a/website/content/docs/deploy/terraform-patterns/terraform-groups-and-rbac.mdx b/website/content/docs/deploy/terraform-patterns/terraform-groups-and-rbac.mdx deleted file mode 100644 index 78cc394b7..000000000 --- a/website/content/docs/deploy/terraform-patterns/terraform-groups-and-rbac.mdx +++ /dev/null @@ -1,105 +0,0 @@ ---- -layout: docs -page_title: Terraform patterns for groups and RBAC -description: >- - Use Terraform patterns to create and manage Boundary groups and role-based access control (RBAC). Learn how to add users to managed groups and assign roles. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Terraform patterns for groups and RBAC - -The following pattern demonstrates how to aggregate users into groups. - -Security best-practices recommend that you use Role-Based Access Control (RBAC) when you make authorization decisions. RBAC is a methodology in which you create a role that defines the actions that a user is allowed to take, and then assign one or more users to that role. - -In Boundary, you can assign users directly to a role, but a better pattern is to put users with equivalent access into groups. You can then assign groups to roles that grant least-privileges to your Boundary environment. - -## Requirements - -This document assumes the reader has: - -- An understanding of [Terraform](/terraform/docs) fundamentals. -- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary. -- Configured the [Terraform Boundary provider](/boundary/docs/deploy/terraform-patterns/#terraform-provider-configuration). -- Created Boundary [users and auth methods](/boundary/docs/deploy/terraform-patterns/terraform-users-and-auth-methods) to assign to the group you plan to create. - -## Group configuration - -This example adds users to the `Accounting` group. - -```hcl -# Add Jeff and Susmitha to the Accounting group -resource "boundary_group" "Accounting" { - name = "Accounting" - description = "The Accounting Department" - member_ids = [boundary_user.susmitha,id, boundary_user.jeff.id] - scope_id = boundary_scope.project.id -} -``` - -You are not required to populate groups manually, and can instead take advantage of the pre-existing groups provided by an identity provider. - -## Managed group configuration - -This example creates a managed group that is automatically populated based on an LDAP group called `Engineering`. - -```hcl -resource "boundary_managed_group_ldap" "Engineering" { - name = "Engineering" - description = "Engineering Managed LDAP Group" - auth_method_id = boundary_auth_method_ldap.forumsys_ldap.id - group_names = ["Engineering"] -} -``` - -HashiCorp recommends using managed groups whenever possible because it abstracts the management of group membership and simplifies Boundary administration. - -## Role configuration - -After you have created a group, you must assign one or more roles to that group to enable the group members to do useful work in Boundary. - -This pattern creates a role called `readonly` that include a grant -that allows the user read-only access to all Boundary resources. This example also associates the `Accounting` static group and the `Engineering` managed group with that role. - -```hcp -resource "boundary_role" "readonly" { - name = "readonly" - description = "A readonly role" - - # Assign Accounting and Engineering to this role - principal_ids = [boundary_group.accounting.id, boundary_managed_group_ldap.Engineering.id] - - # This is the grant string provides read-only access to all objects in the current scope. - grant_strings = ["ids=*;type=*;actions=read"] - scope_id = boundary_scope.project.id -} -``` - -## More information - -For more information about the Boundary resources mentioned in this topic, refer to the domain model documentation: - -- [Roles](/boundary/docs/domain-model/roles) -- [Groups](/boundary/docs/domain-model/groups) -- [Managed groups](/boundary/docs/domain-model/managed-groups) -- [Grants](/boundary/docs/rbac#grant-strings) - -For more information about managing the following resources using Terraform, refer to the Boundary provider documentation: - -- Accounts - - [Password accounts](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/account_password/) - - [LDAP accounts](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/account_ldap/) - - [OIDC accounts](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/account_oidc/) -- [Users](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/user/) -- [Groups](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/group/) -- [LDAP managed groups](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/managed_group_ldap/) -- [Roles](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/role/) - -## Next steps - -You may want to create [hosts and host sets](/boundary/docs/deploy/terraform-patterns/terraform-hosts-and-host-management) so that you can configure targets for your users to connect to. -Targets require an address or host, and credentials to connect to that host. \ No newline at end of file diff --git a/website/content/docs/deploy/terraform-patterns/terraform-hosts-and-host-management.mdx b/website/content/docs/deploy/terraform-patterns/terraform-hosts-and-host-management.mdx deleted file mode 100644 index 9eb196956..000000000 --- a/website/content/docs/deploy/terraform-patterns/terraform-hosts-and-host-management.mdx +++ /dev/null @@ -1,159 +0,0 @@ ---- -layout: docs -page_title: Terraform patterns for hosts and host management -description: >- - Use Terraform patterns to create and manage Boundary hosts and host catalogs. Learn how to add static or plugin-based hosts to static or dynamic host catalogs. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Terraform patterns for hosts and host management - -Before you can access a system, you must create a target. Targets require an address or host, and credentials to connect to that host. - -You can define target addresses directly to simplify access, but HashiCorp does not recommend that pattern at scale. -Instead, HashiCorp recommends adding hosts to a host set, and then attaching the host set to a target. - -## Requirements - -This document assumes the reader has: - -- An understanding of [Terraform](/terraform/docs) fundamentals. -- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary. -- Configured the [Terraform Boundary provider](/boundary/docs/deploy/terraform-patterns/#terraform-provider-configuration). - -## Static host catalog configuration - -The following example shows how to create a Boundary static host catalog and add a known host to that catalog. - -```hcl -# Create the host catalog -resource "boundary_host_catalog_static" "example" { - name = "My static catalog" - description = "My static host catalog" - scope_id = boundary_scope.project.id -} - -# Create the static host -resource "boundary_host" "example" { - type = "static" - name = "example_host" - description = "My first host" - address = "10.0.0.1" - - # Associate the host with the static host catalog - host_catalog_id = boundary_host_catalog.static.id -} -``` - -Static host catalogs increase your administrative burden and should only be used when necessary. - -## Dynamic host catalog configuration - -When you use cloud providers like Amazon Web Services (AWS) and Microsoft Azure, a better pattern is to use a plugin-based host catalog that automatically discovers hosts based on the filtering criteria for a given cloud. - -This example creates a dynamic host catalog that auto-discovers AWS hosts in `us-east-1`. - -```hcl -resource "boundary_host_catalog_plugin" "aws_example" { - name = "My AWS catalog" - description = "My AWS dynamic host catalog" - scope_id = boundary_scope.project.id - - # Delare the cloud plugin to use and the region to search for hosts - plugin_name = "aws" - attributes_json = jsonencode({ "region" = "us-east-1" }) - - # Define the cloud credentials to use for searching - secrets_json = jsonencode({ - "access_key_id" = "aws_access_key_id_value", - "secret_access_key" = "aws_secret_access_key_value" - }) -} -``` - -## Azure host catalog configuration - -This host catalog example discovers hosts in Azure. Notice that it is very similar to the AWS example. - -```hcl -resource "boundary_host_catalog_plugin" "azure_example" { - name = "My Azure catalog" - description = "My Azure dynamic host catalog" - scope_id = boundary_scope.project.id - plugin_name = "azure" - - # HashiCorp recommends providing Azure secrets using a file() or environment variables - - # The attributes below must be generated in Azure by creating an Entra ID application - attributes_json = jsonencode({ - "disable_credential_rotation" = "true", - "tenant_id" = "ARM_TENANT_ID", - "subscription_id" = "ARM_SUBSCRIPTION_ID", - "client_id" = "ARM_CLIENT_ID" - }) - - # The secrets below must be generated in Azure by creating an Entra ID application - secrets_json = jsonencode({ - "secret_value" = "ARM_CLIENT_SECRET" - }) -} -``` - -## Add static hosts to hosts sets configuration - -This example adds static hosts to static host sets. - -```hcl -resource "boundary_host_set_static" "web" { - host_catalog_id = boundary_host_catalog_static.example.id - host_ids = [ - # This is the static Boundary host created in the example above. - boundary_host_static.example.id - ] -} -``` - -## Add plugin-based hosts to host sets configuration - -Hosts discovered using a plugin-based host catalog should be added to a `boundary_host_set_plugin` host set. - -This example demonstrates how to add hosts from the AWS host catalog to a host set using tags as a filtering criteria. In this example, the filter looks for tags named `service-type` that have a value of `web`. - -```hcl -resource "boundary_host_set_plugin" "web" { - name = "My web host set plugin" - - # This is the AWS host catalog that was created above - host_catalog_id = boundary_host_catalog_plugin.aws_example.id - - # This is the filter that looks for specific tags using AWS filtering syntax - attributes_json = jsonencode({ "filters" = ["tag:service-type=web"] }) -} -``` - -## More information - -For more information about the Boundary resources mentioned in this topic, refer to the domain model documentation: - -- [Targets](/boundary/docs/domain-model/targets) -- [Hosts](/boundary/docs/domain-model/hosts) -- [Host sets](/boundary/docs/domain-model/host-sets) -- [Host catalogs](/boundary/docs/domain-model/host-catalogs) - -For more information about managing the following resources using Terraform, refer to the Boundary provider documentation: - -- [Static hosts](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/host_static/) -- [Static host catalogs](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/host_catalog_static/) -- [Static host sets](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/host_set_static/) -- [Plugin-based host catalogs](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/host_catalog_plugin/) -- [Plugin-based host sets](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/host_set_plugin/) - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. - -## Next steps - -Once you have configured hosts, you may want to configure [credentials and credential stores](/boundary/docs/deploy/terraform-patterns/terraform-credentials-and-credential-stores) for your hosts and users. \ No newline at end of file diff --git a/website/content/docs/deploy/terraform-patterns/terraform-scopes.mdx b/website/content/docs/deploy/terraform-patterns/terraform-scopes.mdx deleted file mode 100644 index 1e39e29da..000000000 --- a/website/content/docs/deploy/terraform-patterns/terraform-scopes.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -layout: docs -page_title: Terraform patterns for scopes -description: >- - Use Terraform patterns to create and manage Boundary scopes. Learn how to configure global, org-level, and project-level scopes using the Boundary provider. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Terraform patterns for scopes - -You can use the following patterns to create org-level and project-level scopes. - -## Requirements - -This document assumes the reader has: - -- An understanding of [Terraform](/terraform/docs) fundamentals. -- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary. -- Configured the [Terraform Boundary provider](/boundary/docs/deploy/terraform-patterns/#terraform-provider-configuration). - -## Scopes configuration - -The `scope_id` parameter determines what kind of scope to create according to these rules: - -- If `scope_id` is the global scope, an org-level scope is created. -- If `scope_id` is an org-level scope, a project-level scope is created. -- If `scope_id` is a project-level scope, a nested project-level scope is created. - -```hcl -resource "boundary_scope" "project" { - name = "Basic Boundary Demo" - description = "First Ever Boundary Demo" - - # This parameter is the parent scope. It can be either the global scope, an - # org-level scope, or a project-level scope. - scope_id = var.se_org_scope - - # Using the auto_create_x_role flags can help you get set up faster - # becasue you won't have to explicitly define these roles. - auto_create_admin_role = true - auto_create_default_role = true -} -``` - -## More information - -For more information about the Boundary resources mentioned in this topic, refer to the domain model documentation: - -- [Scopes](/boundary/docs/domain-model/scopes) -- [Org-level scopes](/boundary/docs/domain-model/scopes#organizations) -- [Project-level scopes](/boundary/docs/domain-model/scopes#projects) - -For more information about managing the following resources using Terraform, refer to the Boundary provider documentation: - -- [Scopes](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/scope/) - -## Next steps - -You use scopes to partition resources and assign them to users. -Once you have created scopes, you may want to create [users and auth methods](/boundary/docs/deploy/terraform-patterns/terraform-users-and-auth-methods). \ No newline at end of file diff --git a/website/content/docs/deploy/terraform-patterns/terraform-session-recording.mdx b/website/content/docs/deploy/terraform-patterns/terraform-session-recording.mdx deleted file mode 100644 index 81b7c2e5a..000000000 --- a/website/content/docs/deploy/terraform-patterns/terraform-session-recording.mdx +++ /dev/null @@ -1,93 +0,0 @@ ---- -layout: docs -page_title: Terraform patterns for session recording -description: >- - Use Terraform patterns to enable session recording for auditing user sessions in Boundary. Learn how to configure storage policies and storage buckets. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Terraform patterns for session recording - -This feature requires HCP Boundary or Boundary Enterprise - -Session recording requires that you create a storage policy for your current scope and then allocate an AWS S3 bucket to store the recordings. This example does not demonstrate creating the S3 bucket or the associated IAM policies. Refer to the [create storage buckets](/boundary/docs/session-recording/configuration/create-storage-bucket) documentation to learn how to configure AWS. - -## Requirements - -This document assumes the reader has: - -- An understanding of [Terraform](/terraform/docs) fundamentals. -- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary. -- Configured the [Terraform Boundary provider](/boundary/docs/deploy/terraform-patterns/#terraform-provider-configuration). -- Created a [scope](/boundary/docs/deploy/terraform-patterns/terraform-scopes) for any storage policy you plan to create. -- A licensed version of HCP Boundary or Boundary Enterprise. - -## Storage policy configuration - -This example creates a Boundary storage policy for a project scope. - -```hcl -# Create the storage policy. This policy is effective for the attached scope -resource "boundary_policy_storage" "example" { - - # The policy applies to all recordings in this scope - scope_id = boundary_scope.project.id - - name = "soc2-policy" - description = "SOC 2 compliant storage policy for session recordings" - - # These define your retention parameters - retain_for_days = 2557 - retain_for_overridable = false - - delete_after_days = 2657 - delete_after_overridable = true -} -``` - -## Storage bucket configuration - -This example creates the Boundary storage bucket and attaches it to the S3 bucket. - -```hcl -resource "boundary_storage_bucket" "aws_bucket" { - name = "My aws storage bucket with dynamic credentials" - description = "My first storage bucket" - scope_id = boundary_scop.project.id - plugin_name = "aws" - - # This must match the name of the AWS S3 bucket that stores the recordings - bucket_name = "mybucket1" - - # The role_arn value must be the same arn used as the instance profile - # attached to your Boundary Worker ec2 instance - # https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html - attributes_json = jsonencode({ - "region" = "us-east-1" - "role_arn" = "arn:aws:iam::123456789012:role/S3Access" - "disable_credential_rotation" = true - }) -} -``` - -You have configured the prerequisites for session recording. The last task is to enable recording on a Boundary target. - -## More information - -For more information about the Boundary resources mentioned in this topic, refer to the domain model documentation: - -- [Session recordings](/boundary/docs/domain-model/session-recordings) -- [Storage buckets](/boundary/docs/domain-model/storage-buckets) - -For more information about managing the following resources using Terraform, refer to the Boundary provider documentation: - -- [Storage buckets](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/storage_bucket/) -- [Storage policies](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/policy_storage/) - -## Next steps - -Once you have configured the prerequisites for session recording, you can enable recording on a Boundary [target](/boundary/docs/deploy/terraform-patterns/terraform-targets). \ No newline at end of file diff --git a/website/content/docs/deploy/terraform-patterns/terraform-targets.mdx b/website/content/docs/deploy/terraform-patterns/terraform-targets.mdx deleted file mode 100644 index 7255cee0e..000000000 --- a/website/content/docs/deploy/terraform-patterns/terraform-targets.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -layout: docs -page_title: Terraform patterns for targets -description: >- - Use Terraform patterns to create and manage Boundary targets. Learn how to configure SSH and TCP targets, inject passwords, and enable session recording. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Terraform patterns for targets - -Once you have defined a host, a host catalog, and a credential store, you -can create [targets](/boundary/docs/domain-model/targets). - -## Requirements - -This document assumes the reader has: - -- An understanding of [Terraform](/terraform/docs) fundamentals. -- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary. -- Configured the [Terraform Boundary provider](/boundary/docs/deploy/terraform-patterns/#terraform-provider-configuration). -- Defined a host, [host catalog](/boundary/docs/deploy/terraform-patterns/terraform-hosts-and-host-management), and [credential store](/boundary/docs/deploy/terraform-patterns/terraform-credentials-and-credential-stores). -- (Optional) Configured a storage policy and storage bucket for any targets you want to enable for [session recording](/boundary/docs/deploy/terraform-patterns/terraform-session-recording). - -## Target configuration - -This example creates a target with an injected username and password. - - - - [Credential injection](/boundary/docs/concepts/credential-management#credential-injection) and SSH target types are only supported for HCP Boundary and Boundary Enterprise. You can configure [credential brokering](/boundary/docs/concepts/credential-management#credential-brokering) instead using `brokered_credential_source_ids`. - - - -```hcl -resource "boundary_target" "ssh_foo" { - name = "ssh_foo" - description = "SSH target" - scope_id = boundary_scope.project.id - - # Declare the target type and connection port - type = "ssh" - default_port = "22" - - # Declare the host set - host_source_ids = [ - boundary_host_set.foo.id - ] - - # Declare the injected credentials - injected_application_credential_source_ids = [ - boundary_credential_library_vault.example.id - ] - - # Enable session recording - enable_session_recording = true - storage_bucket_id = boundary_storage_bucket.aws_bucket.id -} - -``` -## Session recording configuration - -This example enables session recording, but uses brokered credentials instead. - -```hcl -resource "boundary_target" "ssh_foo" { - name = "ssh_foo" - description = "SSH target" - scope_id = boundary_scope.project.id - - # Declare the target type and connection port - type = "ssh" - default_port = "22" - - # Declare the host set - host_source_ids = [ - boundary_host_set.foo.id - ] - - # Declare the brokered credentials - # This uses a static credential library created earlier - brokered_application_credential_source_ids = [ - boundary_credential_library.example.id - ] - - # Enable session recording. - enable_session_recording = true - storage_bucket_id = boundary_storage_bucket.aws_bucket.id -} -``` - -## TCP target configuration - -This example creates a `tcp` target that connects to Windows servers using RDP. - -```hcl -resource "boundary_target" "rdp_foo" { - name = "rdp_foo" - description = "RDP target" - scope_id = boundary_scope.project.id - - # Declare the target type and connection port - type = "tcp" - default_port = "3389" - - # Declare the host set. This assumes that this host set contains Windows hosts - host_source_ids = [ - boundary_host_set.foo.id - ] - - # The credentials we will use to connect. RDP requires the use of brokered credentials - # This uses a static credential library created earlier - brokered_application_credential_source_ids = [ - boundary_credential_library.example.id - ] -} -``` - -## More information - -For more information about the Boundary resources mentioned in this topic, refer to the domain model documentation: - -- [Targets](/boundary/docs/domain-model/targets) - -For more information about managing the following resources using Terraform, refer to the Boundary provider documentation: - -- [Targets](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/target/) \ No newline at end of file diff --git a/website/content/docs/deploy/terraform-patterns/terraform-users-and-auth-methods.mdx b/website/content/docs/deploy/terraform-patterns/terraform-users-and-auth-methods.mdx deleted file mode 100644 index 3c8fbef50..000000000 --- a/website/content/docs/deploy/terraform-patterns/terraform-users-and-auth-methods.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -layout: docs -page_title: Terraform patterns for users and auth methods -description: >- - Use Terraform patterns to create and manage Boundary users and auth methods. Learn how to configure password and LDAP auth methods, add accounts, create users. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Terraform patterns for users and auth methods - -Boundary supports password, OIDC, and LDAP auth methods. - -## Requirements - -This document assumes the reader has: - -- An understanding of [Terraform](/terraform/docs) fundamentals. -- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary. -- Configured the [Terraform Boundary provider](/boundary/docs/deploy/terraform-patterns/#terraform-provider-configuration). -- Created a [scope](/boundary/docs/deploy/terraform-patterns/terraform-scopes) to add the users and auth methods to. - -## Auth method configuration - -Below is an example of creating a password auth method. Terraform creates the auth method in the scope that is specified by the `scope_id` option. - -```hcl -resource "boundary_auth_method" "password" { - scope_id = boundary_scope.org.id - type = "password" -} -``` - -### LDAP auth method configuration - -The next example demonstrates how to create an LDAP auth method. - -```hcl -resource "boundary_auth_method_ldap" "forumsys_ldap" { - name = "forumsys public LDAP" - scope_id = "global" # add the new auth method to the global scope - urls = ["ldap://ldap.forumsys.com"] # the addr of the LDAP server - user_dn = "dc=example,dc=com" # the basedn for users - user_attr = "uid" # the user attribute - group_dn = "dc=example,dc=com" # the basedn for groups - bind_dn = "cn=read-only-admin,dc=example,dc=com" # the dn to use when binding - bind_password = "password" # passwd to use when binding - state = "active-public" # make sure the new auth-method is available to everyone - enable_groups = true # this turns-on the discovery of a user's groups - discover_dn = true # this turns-on the discovery of an authenticating user's dn -} -``` - -## Account and user configuration - -After you create an auth method, you need to add accounts to it and create users to represent the accounts. Users and accounts are different constructs. A user is a "parent" object associated to one or more accounts created using a supported auth method. - -This example creates 2 accounts using the password auth method and associated users. - -```hcl -# Create a user named "Jeff" -resource "boundary_account_password" "jeff" { - auth_method_id = boundary_auth_method.password.id - type = "password" - login_name = "jeff" - password = "$uper$ecure" -} - -# Associate the Jeff account with a user alias -resource "boundary_user" "jeff" { - name = "jeff" - description = "Jeff's user resource" - account_ids = [boundary_account_password.jeff.id] - scope_id = boundary_scope.org.id -} - -#Create a user named Susmitha -resource "boundary_account_password" "susmitha" { - auth_method_id = boundary_auth_method.password.id - type = "password" - login_name = "susmitha" - password = "more$super$ecure" -} - -# And this associates the account with a user alias -resource "boundary_user" "susmitha" { - name = "susmitha" - description = "Susmitha's user resource" - account_ids = [boundary_account_password.susmitha.id] - scope_id = boundary_scope.org.id -} -``` - -## More information - -For more information about the Boundary resources mentioned in this topic, refer to the domain model documentation: -- [Auth methods](/boundary/docs/domain-model/auth-methods) -- [Users](/boundary/docs/domain-model/users) -- [Accounts](/boundary/docs/domain-model/accounts) - -For more information about managing the following resources using Terraform, refer to the Boundary provider documentation: -- [LDAP accounts](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/account_ldap/) -- [OIDC accounts](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/account_oidc/) -- [Password accounts](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/account_password/) - -## Next steps - -Once you have created users and auth methods, you may want to create [groups for your users or configure RBAC](/boundary/docs/deploy/terraform-patterns/terraform-groups-and-rbac) to define the actions a user is allowed to take. \ No newline at end of file diff --git a/website/content/docs/developing/building.mdx b/website/content/docs/developing/building.mdx deleted file mode 100644 index 19ee576d2..000000000 --- a/website/content/docs/developing/building.mdx +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: docs -page_title: Build Boundary -description: >- - Learn how to build Boundary from the source. Discover resources to compile a cross-platform build and troubleshoot UI assets. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Build Boundary - -Building Boundary from source requires: - -- [Go](https://golang.org/dl/). Boundary developers keep current with new - releases of Go in order to take advantage of new features and to ensure that - security issues within Go are addressed. If building Boundary yourself, always - use the latest version and keep current. -- `make` installed -- [Docker](https://docs.docker.com/get-docker/) installed -- Basic development environment (git, xcode if you're on Mac, etc) - -1. `$ git clone https://github.com/hashicorp/boundary` or if you're using SSH auth for - github, `$ git clone git@github.com:hashicorp/boundary` -2. `$ cd boundary` -3. `$ make install` - -The first time you run `make install` it will build UI assets, which will take a -long time. After the initial build, you can update those assets to the -currently-pinned version via `make build-ui`. - -Once you've built Boundary, the binary will be available at `/bin/boundary`. Move this -binary to somewhere in your `$PATH` such as `/usr/local/bin`. - -## Cross-platform build - -If you need to cross compile boundary for another OS or architecture, use the [GOOS and GOARCH](https://github.com/hashicorp/boundary/blob/master/scripts/build.sh#L26) -environment variable to set this. Example: `$ GOOS=linux GOARCH=amd64 make install` - -For more details, please consult the [Boundary project on GitHub](https://github.com/hashicorp/boundary#build-and-start-boundary-in-dev-mode). - -## Troubleshoot - -UI assets are built inside a Docker container. If this build step fails, try -increasing memory and swap available to Docker. diff --git a/website/content/docs/developing/index.mdx b/website/content/docs/developing/index.mdx deleted file mode 100644 index 0eee97e90..000000000 --- a/website/content/docs/developing/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: docs -page_title: Develop Boundary -description: >- - Discover resources to help you build and develop Boundary. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Develop Boundary - -The side-bar contains some common development tasks, but for the most up-to-date information about developing Boundary, please consult -our [project on GitHub](https://github.com/hashicorp/boundary) for more information. diff --git a/website/content/docs/developing/ui.mdx b/website/content/docs/developing/ui.mdx deleted file mode 100644 index 9f00af074..000000000 --- a/website/content/docs/developing/ui.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: docs -page_title: Develop the UI -description: >- - Learn how to develop the Boundary user interface locally for testing. Use dev mode to run a local fork of the UI without building it into the binary. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Develop the Boundary user interface - -For detailed instructions and the most up-to-date information on developing the -Boundary admin UI, please consult [the project README on GitHub](https://github.com/hashicorp/boundary-ui). - -## Run a local fork of the UI locally in dev mode - -If you're developing the Boundary UI locally you can point a dev mode server at a -local checkout of the repo without building it into the binary. We call this -directory a passthrough directory, and you can enable it using an env var while in -conjunction with running Boundary in dev mode: - -```bash -BOUNDARY_DEV_UI_PASSTHROUGH_DIR=../boundary-ui/ui/admin/dist boundary dev -``` diff --git a/website/content/docs/domain-model/accounts.mdx b/website/content/docs/domain-model/accounts.mdx deleted file mode 100644 index 14fd2e179..000000000 --- a/website/content/docs/domain-model/accounts.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -layout: docs -page_title: Account resource -description: >- - Learn about using the accounts resource to establish the identities of users. Understand how to configure general, password, and LDAP account attributes. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Accounts - -An account is a resource -that represents a unique set of credentials -issued from a configured [auth method][] -which can be used to establish the identity of a user. -A [user][] can have zero or more accounts -but an account can only belong to a single user. -An account can only be associated with a user -in the same scope as the account's [auth method][]. - -## Attributes - -All account types have the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the account's auth method. - -- `description` - (optional) - -### Password account attributes - -Password account types have the following additional attributes: - -- `login_name` - (required) - Must be unique within the account's auth method. - Can only contain lower case letters. - -- `password` - (optional) - Not setting the `password` disables the account. - -### LDAP account attributes - -LDAP account types have the following additional attributes: - -- `login_name` - (required) - Must be unique within the account's auth method. - Can only contain lower case letters. - -- `full_name` - (output only) - Maps to the name attribute for the authenticated user, and is updated every - time the user successfully authenticates. It is empty until the user's - first successful authentication. - -- `email` - (output only) - Maps to the email address attribute for the authenticated user, and is updated - every time the user successfully authenticates. It is empty until the - user's first successful authentication. - -- `dn` - (output only) - Maps to the distinguished name for the authenticated user, and is updated - every time the user successfully authenticates. It is empty until the - user's first successful authentication. - -- `member_of_groups` - (output only) - A list of the groups the authenticated user is a member of. It is empty - until the user's first successful authentication. - -## Referenced by - -- [Auth method][] -- [Managed group][] -- [User][] - -[auth method]: /boundary/docs/domain-model/auth-methods -[managed group]: /boundary/docs/domain-model/managed-groups -[user]: /boundary/docs/domain-model/users - -## Service API docs - -The following services are relevant to this resource: - -- [Account service](/boundary/api-docs/account-service) diff --git a/website/content/docs/domain-model/aliases.mdx b/website/content/docs/domain-model/aliases.mdx deleted file mode 100644 index f5a586318..000000000 --- a/website/content/docs/domain-model/aliases.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: docs -page_title: Alias resource -description: >- - Learn about using the alias resource to transparently connect to targets without having to provide the target ID or target name and scope ID. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Aliases - -An alias is a globally unique, DNS-like string that is associated with a destination resource. -Examples of valid aliases are `webserver` and `webserver.boundary`. -You can establish a session to a target by referencing its alias, instead of having to provide a target ID or target name and scope ID. -For example, if you have an alias `boundary.dev`, you can use it to connect to a target with the following command: `boundary connect ssh boundary.dev`. - -## Attributes - -Aliases have the following attributes: - -- `-description=` - Specifies the optional description you want to use to describe the alias for identification purposes. -- `-destination-id=` - Specifies the ID of the target that the alias points to. -- `-name=` - Specifies the optional name you want to use to describe the alias for identification purposes. -- `-scope-id=` - Scope in which to create the alias. The default is `global`. - You can also specify the scope using the BOUNDARY_SCOPE_ID environment variable. - At this time, aliases are only supported for the global scope. -- `-value=` - Specifies the string that you want to use as the alias to represent the target. - The `value` must comply with DNS naming rules. - -### Target subtypes - -The target subtype has the following additional attributes: - -- `-authorize-session-host-id=` - Indicates the host ID to use when you use the alias to authorize a session. - -## More information - -- [Aliases](/boundary/docs/concepts/aliases) diff --git a/website/content/docs/domain-model/auth-methods.mdx b/website/content/docs/domain-model/auth-methods.mdx deleted file mode 100644 index f1225e89e..000000000 --- a/website/content/docs/domain-model/auth-methods.mdx +++ /dev/null @@ -1,231 +0,0 @@ ---- -layout: docs -page_title: Auth method resource -description: >- - Learn about using the auth method resource to authenticate users. Understand which attributes you can configure for password, OIDC, and LDAP auth methods. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Auth methods - -An auth method is a resource that provides a mechanism for [users][] to -authenticate to Boundary. An auth method contains [accounts][] which link an -individual user to a set of credentials and [managed groups][] which groups -[accounts][] that satisfy criteria and can be used as principals in [roles][]. -Auth methods can be defined at either a [global][] or [organization][] -[scope][]. - -## Attributes - -All auth methods have the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the auth method's scope. - -- `description` - (optional) - -### Password auth method attributes - -The password auth method has the following additional attributes: - -- `min_login_name_length` - (required) The default is 3. - -- `min_password_length` - (required) The default is 8. - -### OIDC auth method attributes - -The OIDC auth method has the following additional attributes: - -- `account_claim_maps` (optional list) These are a map from custom - claims to the standard claims of sub, name, and email. These maps are - represented as key=value where the key equals the provider from-claim and the - value equals the Boundary to-claim. For example "oid=sub". You can specify this attribute - multiple times for different to-claims. - -- `allowed_audiences` (optional list) Audiences for which provider - responses are allowed. - -- `api_url_prefix` (required) The API prefix to use when generating callback URLs - for the provider. You should set the value to an address that allows the provider to reach - the controller. - -- `callback_url` (output read-only) The URL that should be provided to the IdP - for callbacks. - -- `claims_scopes` (optional list) The claims scope requested. You can specify this attribute - multiple times. - -- `client_id` (required) The OAuth 2.0 client identifier this auth method should - use with the provider. - -- `client-secret` (required) The corresponding client secret. - -- `client_secret_hmac` (output read-only) The HMAC of the client secret that the Boundary controller - returns. It is used for comparison to the value's initial setting. - -- `disable_discovered_config_validation` (optional) Disables validation logic - to ensure that the OIDC provider's information from its discovery endpoint - matches the information here. The validation is only performed at create or - update time. - -- `idp_ca_certs` - (optional) PEM-encoded X.509 CA certificate that can be used - as trust anchors when you connect to an OIDC provider. You can specify this attribute - multiple times. - -- `issuer` - (required) The provider's issuer URL. This value must match the issuer - field in generated tokens. - -- `max_age` (optional) The max age to send to the provider. This value indicates how - much time is allowed to have passed since the last authentication before the - user is challenged again. A value of `0` sets an immediate requirement for all - users to reauthenticate, and an unset `maxAge` results in a Terraform value of - -1 and the default TTL of the chosen OIDC is used. - - If you set a `max_age` value, it works in conjunction with the [`auth_token_time_to_live` parameter](/boundary/docs/configuration/controller#auth_token_time_to_live) set on the controller. Users are not challenged to authenticate again by the provider until the `auth_token_time_to_live` value has expired, even if the `max_age` expires first. - -- `prompt` (optional) If you configure this attribute, the OIDC authorization server prompts users for reauthentication, account selection, or consent when they log in. -You can optionally configure one or more of the following additional attributes to customize the behavior of the authentication process: - - `none` (optional) The authorization server does not display any authentication or consent prompts. - - `login` (optional) The authorization server prompts users for reauthentication before allowing them to log in. - - `consent` (optional) The authorization server prompts users for consent before returning any information to Boundary. - - `select_account` (optional) The authorization server prompts users to select a user account. - The `select_account` setting can be helpful if your users have multiple accounts. - - - -Cloud providers implement `prompt` in different ways. -You may notice differences in behavior if you configure OIDC authentication on multiple cloud providers. - - - -- `signing-algorithm` (required) The allowed signing algorithm. You can specify this attribute - multiple times for multiple values. - - -### LDAP auth method attributes - -The ldap auth method has the following additional attributes: - -- `state` - The state of the auth method; either `inactive`, `active-private`, or - `active-public`. - -- `start_tls` - (optional) If `true`, issues a StartTLS command after establishing - an unencrypted connection. Defaults to `false`. - -- `insecure_tls` - (optional) If `true`, skips LDAP server SSL certificate - validation, which is insecure and should be used with caution. Defaults to - `false`. - -- `discover_dn` - (optional) If `true`, use anon bind to discover the bind DN - (Distinguished Name) of a user. Defaults to `false`. - -- `anon_group_search` - (optional) If `true`, use anon bind when performing LDAP - group searches. Defaults to `false`. - -- `upn_domain` - (optional) If set, the `userPrincipalDomain` is used to construct - the UPN string for the authenticating user. The constructed UPN appears as - `[username]@UPNDomain`. Example: `example.com`, which causes Boundary to - bind as `username@example.com` when it authenticates the user. - -- `urls` - (required) The LDAP URLS that specify LDAP servers to connect to. - There must be at least one URL for each LDAP auth method. When attempting to - connect, the URLs are tried in the order specified. - -- `user_dn` - (optional) If set, the base DN under which to perform user - search. Example: `ou=Users,dc=example,dc=com`. - -- `user_attr` - (optional) If set, defines the attribute on a user's entry - matching the login-name passed when the user authenticates. Examples: cn, uid - -- `user_filter` - (optional) If set, the Go template used to construct an LDAP - user search filter. The template can access the following context variables: - [UserAttr, Username]. The default `user_filter` is - `({{.UserAttr}}={{.Username}})` or - `(userPrincipalName={{.Username}}@UPNDomain)` if the `upn-domain` parameter is - set. - -- `enable_groups` - (optional) If `true`, an authenticated user's groups are - found during authentication. Defaults to `false`. - -- `group_dn` - (optional) If set, the base DN under which to perform a group - search. Example: `ou=Groups,dc=example,dc=com`. - - Note: There is no default, so no base DN is used for group searches, if - it's not specified. - -- `group_attr` - (optional) If set, the LDAP attribute to follow on objects - returned by `group_filter` in order to enumerate user group membership. - Examples: for `group_filter` queries returning group objects, use: `cn`. For - queries returning user objects, use: `memberOf`. The default is `cn`. - -- `group_filter` - (optional) If set, the Go template used when constructing the - group membership query. The template can access the following context - variables: `UserDN`, `Username`. The default is - `(|(memberUid={{.Username}})(member={{.UserDN}})(uniqueMember={{.UserDN}}))`, - which is compatible with several common directory schemas. - -- `certificates` - (optional) If set, PEM encoded x509 certificates in ASN.1 - DER form that can be used as trust anchors when connecting to an LDAP - provider. - -- `client_certificate` - (optional) If set, a PEM encoded x509 certificate in - ASN.1 DER form to be used as a client certificate. It must be set, if you - specify the optional client_certificate_key. - -- `client_certificate_key` - (optional) If set, a PEM encoded certificate key in - PKCS #8, ASN.1 DER form. It must be set, if you specify the optional - client_certificate. - -- `bind_dn` - (optional) If set, the distinguished name of entry to bind when - performing user and group searches. Example: - `cn=vault,ou=Users,dc=example,dc=com`. - -- `bind_password` - (optional) If set, the password to use along with `bind_dn` - when performing user search. It must be set, if you specify the optional - `bind_dn`. - -- `use_token_groups` - (optional) If `true`, use the Active Directory `tokenGroups` - constructed attribute of the user to find the group memberships. This - finds all security groups, including nested ones. - -- `account_attribute_maps` - (optional) If set, the attribute maps from custom - attributes to the standard fullname and email account attributes. These - maps are represented as `key=value` where the key equals the `from_attribute`, and - the value equals the `to_attribute`. For example, `preferredName=fullName`. All - attribute names are case insensitive. - - - `maximum_page_size` - (optional) If set, it specifies a maximum ldap search - result size to use when retrieving the authenticated user's group - memberships. You can use this setting to avoid reaching the LDAP server's max result - size. - - - `dereference_aliases` - (optional) If set, it will control how aliases are - dereferenced when you search. - -## Referenced by - -- [Account][] -- [Global][] -- [Managed group][] -- [Organization][] - -[account]: /boundary/docs/domain-model/accounts -[accounts]: /boundary/docs/domain-model/accounts -[global]: /boundary/docs/domain-model/scopes#global -[managed group]: /boundary/docs/domain-model/managed-groups -[managed groups]: /boundary/docs/domain-model/managed-groups -[organization]: /boundary/docs/domain-model/scopes#organizations -[roles]: /boundary/docs/domain-model/roles -[scope]: /boundary/docs/domain-model/scopes -[users]: /boundary/docs/domain-model/users - -## Service API docs - -The following services are relevant to this resource: - -- [Auth method service](/boundary/api-docs/auth-method-service) -- [Auth token service](/boundary/api-docs/auth-token-service) diff --git a/website/content/docs/domain-model/credential-libraries.mdx b/website/content/docs/domain-model/credential-libraries.mdx deleted file mode 100644 index 105957cd1..000000000 --- a/website/content/docs/domain-model/credential-libraries.mdx +++ /dev/null @@ -1,161 +0,0 @@ ---- -layout: docs -page_title: Credential library resource -description: >- - Learn about using the credential library resource to provide credentials from a credential store. Understand the credential library attributes you can configure. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Credential libraries - -A credential library is a resource that provides [credentials][] of the same type and same access level from a single [credential store][]. - -## Attributes - -A credential library has the following configurable attributes: - -- `name` - (optional) If you set this attribute, the `name` must be unique within the credential library's parent credential store. - -- `description` - (optional) A user-defined description of the credential library for identification purposes. - -### Vault generic credential library attributes - -The generic Vault credential library has the following additional attributes: - -- `vault-path` - (required) The path in Vault to request credentials from. - -- `credential-type` - (optional) The type of credential this library issues. The default value is `unspecified`. - -- `credential-mapping-override` - (optional) If set, this value overrides the field attributes in the credential that is retrieved from Vault. - -- `vault-http-method` - (optional) The HTTP method the library uses when it requests credentials from Vault. -Can be either `GET` or `POST`. -The default value is `GET`. - -- `vault-http-request-body` - (optional) The body of the HTTP request the library sends to Vault when it requests credentials. -Only valid if `http_method` is set to `POST`. - -### Vault SSH certificate credential library attributes - -This feature requires HCP Boundary or Boundary Enterprise - -You can configure SSH credential injection using [Vault's SSH secrets engine](/vault/docs/secrets/ssh) to create the SSH certificate credentials. -SSH certificate-based authentication extends key-based authentication using digital signatures. -Your users' authenticity is determined by a certificate signed by a trusted certificate authority (CA). -You can configure Vault's SSH secrets engine to act as the CA. - -SSH certificates let you specify how long they are valid for, who can gain access to a target host, how users can log in, and what commands can be used on the target machine. -Unlike SSH key pairs, SSH certificates are short-lived and self-destructive. - -A Vault SSH certificate credential library has the following additional attributes: - - - -The certificate is issued for the entire session, so if the `ttl` value is shorter than the target's `session_max_seconds` value, later connections may fail. -To prevent failures, you should ensure that the `ttl` value is equal to or longer than the target's `session_max_seconds`. -Alternatively, you could set the `session_connection_limit` to `1` for any targets that use the credential library. - - - -- `vault-path` - (required) The path in Vault to request credentials from. - -- `username` - (required) The username to use with the SSH certificate. -You can create a template for this value using [Vault credential library parameter templating](#vault-generic-credential-library-parameter-templating). - -- `key_type` - (optional) The type of key to use for the generated SSH private key. -The key type is either `ed25519`, `ecdsa`, or `rsa`. -The default key type is `ed25519`. - -- `key_bits` - (optional) The number of bits used to generate the SSH private key. -The number of bits depends on the `key_type` value you select: - - For an `ed25519` key type, you should not set the `key_bits` value. - - For an `ecdsa` key type, you can select either `256`, `384`, or `521`. - - For an `rsa` key type, you can select either `2048`, `3072`, or `4096`. - -- `ttl` - (optional) The SSH certificate's time-to-live (TTL). - -- `key_id` - (optional) The key ID for the created SSH certificate. You can create a template for this value using [Vault credential library parameter templating](#vault-certificates-library-parameter-templating). - -- `critical_options` - (optional) Any critical options that the certificate should be signed for. -For more information, refer to the [list of critical options](https://github.com/openssh/openssh-portable/blob/5f93c4836527d9fda05de8944a1c7b4a205080c7/PROTOCOL.certkeys#L221-L269) supported by OpenSSH. - -- `extensions` - (optional) Any extensions that the certificate should be signed for. -For more information, refer to the [list of extensions](https://github.com/openssh/openssh-portable/blob/5f93c4836527d9fda05de8944a1c7b4a205080c7/PROTOCOL.certkeys#L270-L319) supported by OpenSSH. -Note that the `permit-pty` value should be set for an interactive shell to function properly. - -- `additional_valid_principals` - (optional) Valid Principals that the certificate should be signed for in addition to the provided username. -For more information, refer to OpenSSH's ["valid principals" definition](https://github.com/openssh/openssh-portable/blob/5f93c4836527d9fda05de8944a1c7b4a205080c7/PROTOCOL.certkeys#L176-L181) as well as Vault's documentation for the [SSH secrets engine](https://developer.hashicorp.com/vault/api-docs/secret/ssh#valid_principals). -Note that all SSH certificates issued by a Vault SSH certificate credential library use the `SSH_CERT_TYPE_USER` certificate type mentioned in the OpenSSH definition link. - -### Vault parameter templating - -Sometimes it can be useful to provide information about a Boundary user or account when making a call to Vault. For example, this can allow picking the correct role when asking for database credentials (if roles are separated per-user), or providing a value to encode in an X.509 certificate generated by Vault. You can template user and account information into either the path in Vault, the `POST` request body, or both. - -#### Vault generic credential library parameter templating - -The following Vault template parameters are supported in Boundary's Vault generic credential library. -Note that account values are tied to the account associated with the token used to make the call: - -- `{{.User.Id}}` - The user's ID. -- `{{.User.Name}}` - The user's name from the user resource. -- `{{.User.FullName}}` - The user's name from the account corresponding to the primary auth method in the user's scope. -This value may not be populated, or it may be different from the account name used in the template. -- `{{.User.Email}}` - The user's email address from the account corresponding to the primary auth method in the user's scope. -This value may not be populated, or it may be different from the account name used in the template. -- `{{.Account.Id}}` - The account's ID. -- `{{.Account.Name}}` - The name of the account from the account resource. -- `{{.Account.LoginName}}` - The account's login name, if a login name is used by that type of account. -- `{{.Account.Subject}}` - The account's subject, if a subject is used by that type of account. -- `{{.Account.Email}}` - The account's email, if email is used by that type of account. - -#### Vault certificates library parameter templating - -The following Vault template parameters are supported in Boundary's Vault certificate library. -Note that account values are tied to the account associated with the token used to make the call: - -- `{{.User.Name}}` - The user's name from the user resource. -- `{{.Account.Id}}` - The account's ID. - -#### Useful templating functions: - -The `truncateFrom` function strips the rest of a string after a specified -substring. This function is useful for pulling a user or account name from an -email address. The following example turns `foo@example.com` into `foo`: - -`{{truncateFrom .Account.Email "@"}}` - -The example above uses the account email, but it could be any other parameter. - -The `coalesce` function chooses the first non-empty value out of the list. This -is useful when using account names/login names since only one may be populated: - -`{{coalesce .Account.Name .Account.LoginName}}` - -## Tutorial - -Refer to the [SSH certificate injection with HCP Boundary](/boundary/tutorials/credential-management/hcp-certificate-injection) tutorial to learn how to configure credential injection with SSH certificates using Vault. - -## Referenced by - -- [Credential][] -- [Credential store][] -- [Target][] - -[credential store]: /boundary/docs/domain-model/credential-stores -[credential stores]: /boundary/docs/domain-model/credential-stores -[credential]: /boundary/docs/domain-model/credentials -[credentials]: /boundary/docs/domain-model/credentials -[project]: /boundary/docs/domain-model/scopes#projects -[projects]: /boundary/docs/domain-model/scopes#projects -[target]: /boundary/docs/domain-model/targets -[targets]: /boundary/docs/domain-model/targets - -## Service API docs - -The following services are relevant to this resource: - -- [Credential library service](/boundary/api-docs/credential-library-service) diff --git a/website/content/docs/domain-model/credential-stores.mdx b/website/content/docs/domain-model/credential-stores.mdx deleted file mode 100644 index f468e47ea..000000000 --- a/website/content/docs/domain-model/credential-stores.mdx +++ /dev/null @@ -1,221 +0,0 @@ ---- -layout: docs -page_title: Credential store resource -description: >- - Learn about using the credential store resource to store and retrieve credentials. Understand the Vault and static credential store attributes you can configure. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Credential stores - -A credential store is a resource -that can retrieve [credentials][] -of differing types and differing access levels. -It belongs to a [project][] and supports the -[principle of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege) -by providing mechanisms to limit the [credentials][] it can access -to the minimum necessary for the project it is in. - -Credential stores contain either credential libraries or credentials, depending on the type: - -- Vault credential stores contain [credential libraries][]. - Targets use credential libraries to issue credentials for sessions. - -- Static credential stores contain credentials, not credential libraries. - When you use static credential stores, the credentials are stored directly in Boundary. - -## Attributes - -A credential store has the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the credential store's project. - -- `description` - (optional) - -### Vault credential store attributes - -A Vault credential store has the following additional attributes: - -- `address` - (required) - The address of the Vault server. - This should be a complete URL such as `https://127.0.0.1:8200`. - -- `token` - (required) - A token used for accessing Vault. - This token must meet the [Vault token requirements][token_requirements] described below. - Each Vault credential store must be configured with a unique Vault token. - -- `ca_cert` - (optional) - A PEM-encoded CA certificate to verify the Vault server's TLS certificate. - -- `tls_server_name` - (optional) - Name to use as the SNI host when connecting to Vault via TLS. - -- `tls_skip_verify` - (optional) - Disable verification of TLS certificates. - Using this option is highly discouraged as it decreases the security of data - transmissions to and from the Vault server. - -- `client_certificate` - (optional) - A PEM-encoded client certificate to use for TLS authentication to the Vault server. - -- `client_certificate_key` - (optional) - A PEM-encoded private key matching the client certificate from `client_certificate`. - -- `namespace` - (optional) - A Vault [namespace][]. Requires Vault Enterprise. - -- `worker_filter` HCP/ENT - (optional) - A [filter] used to control which workers can handle Vault requests. - This allows the use of private Vault instances with Boundary. Workers - deployed in the same network as a private Vault instance can access and relay - Vault requests to Boundary controllers. - A worker that matches the worker filter must exist before defining the Vault credential store, as it - will perform the Vault calls needed to set up the credential store with Boundary. - -### Static credential store attributes - -A static credential store has no type-specific attributes. - -## Referenced by - -- [Credential library][] -- [Credential][] -- [Project][] - -## Service API docs - -The following services are relevant to this resource: - -- [Credential store service](/boundary/api-docs/credential-store-service) - -[credential library]: /boundary/docs/domain-model/credential-libraries -[credential libraries]: /boundary/docs/domain-model/credential-libraries -[credential]: /boundary/docs/domain-model/credentials -[credentials]: /boundary/docs/domain-model/credentials -[project]: /boundary/docs/domain-model/scopes#projects - -## Vault token requirements - -Each Vault credential store must be configured with a unique Vault token. -The Vault tokens for all credential stores -must be [periodic][], [renewable][], and an [orphan][]. -All tokens must also have the capabilities of the -[Vault Boundary controller policy][token_policy] described below. - -### Vault policies - -The credential store's token must have the capabilities to issue credentials for -each of its credential libraries plus the capabilities of the -[Vault Boundary controller policy][token_policy] described below. - -We recommend creating a unique Vault policy for each Vault credential store that -grants the minimum set of permissions needed by the credential store's -libraries. We also recommend the [Vault Boundary controller -policy][token_policy] be kept distinct from any other Vault policies. This -allows each credential store to have a token that is configured with two -polices: one shared by all credential stores and one unique to that credential -store. This also allows a credential store to be created with the minimum -permissions necessary at any point in time. The policy unique to a credential -store can then be updated as needed when credential libraries are added and -removed from the credential store. - -#### Vault Boundary controller policy - -The token Boundary receives must have the capabilities in the policy below. An explanation for each capability is documented above the written policy. - -```hcl -# Allow Boundary to read and verify the properties of the token. This is -# provided by the "default" policy. -path "auth/token/lookup-self" { - capabilities = ["read"] -} - -# Allow Boundary to renew the token. This is provided by the "default" -# policy. -path "auth/token/renew-self" { - capabilities = ["update"] -} - -# Allow Boundary to revoke the token when the credential store is updated -# to use a new token or the credential store is deleted. This is provided -# by the "default" policy. -path "auth/token/revoke-self" { - capabilities = ["update"] -} - -# Allow Boundary to renew the credentials in active sessions. This is -# provided by the "default" policy. -path "sys/leases/renew" { - capabilities = ["update"] -} - -# Allow Boundary to revoke the credentials issued for a session when the -# session is terminated. -path "sys/leases/revoke" { - capabilities = ["update"] -} - -# Allow Boundary to read and verify the token's capabilities for each Vault -# path used by the credential store. This is provided by the "default" -# policy. -path "sys/capabilities-self" { - capabilities = ["update"] -} -``` - -Follow the steps below to write this policy to Vault. - -Create the policy: - -```shell-session -$ cat > boundary-controller-policy.hcl <- - Learn about using the credential resource to define secrets for a host. Understand username password, SSH private key, SSH certificate, and JSON credential types. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Credentials - -A credential is a data structure containing one or more secrets that binds an identity to a set of permissions or capabilities on a [host][] for a [session][]. - -Optionally, credentials can be typed to indicate compliance with a specific format. -The following credential types are supported in Boundary: - -- [Username password](#username-password) -- [Username password domain](#username-password-domain) -- [SSH private key](#ssh-private-key) -- [SSH certificate](#ssh-certificate) -- [JSON](#json) - -## Username password - -`username_password` credentials contain the following fields: - -- `username` - The username field associated with the credential. - -- `password` - The password field associated with the credential. - -## Username password domain - -`username_password_domain` credentials contain the following fields: - -- `username` - The username field associated with the credential. - -- `password` - The password field associated with the credential. - -- `domain` - The domain field associated with the credential. - -## SSH private key - -`ssh_private_key` credentials contain the following fields: - -- `username` - The username field associated with the credential. - -- `private_key` - The private key field associated with the credential. - -## SSH certificate - -`ssh_certificate` credentials contain the following fields: - -- `username` - The username field associated with the credential. - -- `ssh_certificate` - The SSH certificate associated with the credential. - -## JSON - -You can provide credentials using a JSON blob. -JSON credentials are only brokered to users that connect to machines. -There is no required structure for the JSON blob, other than it must be a key value map. -Refer to the example below: - - - -```JSON -{ - "type": "service_account", - "project_id": "", - "private_key_id": "", - "private_key": "-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----\n", - "client_email": "", - "client_id": "", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "" -} -``` - - - -## Referenced by - -- [Credential store][] -- [Credential library][] -- [Session][] -- [Target][] - -[credential library]: /boundary/docs/domain-model/credential-libraries -[credential libraries]: /boundary/docs/domain-model/credential-libraries -[credential store]: /boundary/docs/domain-model/credential-stores -[credential stores]: /boundary/docs/domain-model/credential-stores -[host]: /boundary/docs/domain-model/hosts -[session]: /boundary/docs/domain-model/sessions -[target]: /boundary/docs/domain-model/targets diff --git a/website/content/docs/domain-model/groups.mdx b/website/content/docs/domain-model/groups.mdx deleted file mode 100644 index 3102b2cdf..000000000 --- a/website/content/docs/domain-model/groups.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -layout: docs -page_title: Group resource -description: >- - Learn about using the group resource to create collections of users with the same access control. Any role assigned to a group is assigned to the group's users. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Groups - -A group is a resource -that represents a collection of [users][] -which can be treated equally -for the purposes of access control. -A group is a principal -which allows it to be assigned to [roles][]. -Any role assigned to a group is indirectly assigned to the users in the group. -This assignment is a transitive property. -A user in a group receives all [permissions][] of the roles assigned to the group. -Groups can be defined at the [global][], [organization][], or [project][] [scope][]. - -## Attributes - -A group has the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the group's immediate parent scope. - -- `description` - (optional) - -## Referenced by - -- [Global][] -- [Organization][] -- [Role][] -- [User][] - -[global]: /boundary/docs/domain-model/scopes#global -[group]: /boundary/docs/domain-model/groups -[groups]: /boundary/docs/domain-model/groups -[organization]: /boundary/docs/domain-model/scopes#organizations -[permissions]: /boundary/docs/rbac -[project]: /boundary/docs/domain-model/scopes#projects -[role]: /boundary/docs/domain-model/roles -[roles]: /boundary/docs/domain-model/roles -[scope]: /boundary/docs/domain-model/scopes -[user]: /boundary/docs/domain-model/users -[users]: /boundary/docs/domain-model/users - -## Service API docs - -The following services are relevant to this resource: - -- [Group service](/boundary/api-docs/group-service) - -## Tutorial - -Refer to the [Manage Users and Groups with HCP Boundary](/boundary/tutorials/hcp-administration/hcp-manage-users-groups) tutorial to learn how to complete user management related tasks. diff --git a/website/content/docs/domain-model/host-catalogs.mdx b/website/content/docs/domain-model/host-catalogs.mdx deleted file mode 100644 index ae3be848d..000000000 --- a/website/content/docs/domain-model/host-catalogs.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: docs -page_title: Host catalog resource -description: >- - Learn about using the host catalog resource to organize and manage hosts and host sets within a project based on their function, environment, or other criteria. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Host catalogs - -A host catalog is a resource -that contains [hosts][] and [host sets][]. -A host catalog can only be defined within a [project][]. - -## Attributes - -A host catalog has the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the host catalog's project. - -- `description` - (optional) - -### Plugin host catalog information and attributes - -- `plugin_id` - (required) - Must reference an installed plugin. - -- `attributes` - (optional) - A collection of fields which the plugin uses to interface with the backing - service. - -- `secrets` - (optional) - A collection of sensitive fields, like credentials, which the plugin uses to - interface with the backing service. These fields are write-only. - -## Referenced by - -- [Host][] -- [Host set][] -- [Project][] - -[host set]: /boundary/docs/domain-model/host-sets -[host sets]: /boundary/docs/domain-model/host-sets -[host]: /boundary/docs/domain-model/hosts -[hosts]: /boundary/docs/domain-model/hosts -[project]: /boundary/docs/domain-model/scopes#projects - -## Service API docs - -The following services are relevant to this resource: - -- [Host catalog service](/boundary/api-docs/host-catalog-service) diff --git a/website/content/docs/domain-model/host-sets.mdx b/website/content/docs/domain-model/host-sets.mdx deleted file mode 100644 index 6a4e6a9f0..000000000 --- a/website/content/docs/domain-model/host-sets.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -layout: docs -page_title: Host set resource -description: >- - Learn about using the host set resource to organize and manage hosts that have the same level of access control and belong to the same host catalog. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Host sets - -A host set is a resource -that represents a collection of [hosts][] -which are considered equivalent -for the purposes of access control. -A host set can only include hosts -from the same [host catalog][] as the host set. -A [target][] can reference host sets from host catalogs -which belong to the same [project][] as the target. - -## Attributes - -A host set has the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the host set's parent host catalog. - -- `description` - (optional) - -- `preferred_endpoints` - (optional) - A list of selector strings in the format of either `cidr:` - or `dns:` used to select the addresses of hosts when - establishing a [session][] with a target. - -### Plugin host set attributes - -- `attributes` - (optional) - A collection of fields which the plugin uses to lookup which hosts should be - members of this host set. Often this includes a type of filter using a - syntax which is usable by the backing service. - -- `sync_interval_seconds` - (optional) - The number of seconds between the time boundary syncs the hosts in this - set using this host set's plugin. Defaults to `600` seconds, or 10 minutes. - -## Referenced by - -- [Host][] -- [Host catalog][] -- [Target][] - -[host catalog]: /boundary/docs/domain-model/host-catalogs -[host catalogs]: /boundary/docs/domain-model/host-catalogs -[host]: /boundary/docs/domain-model/hosts -[hosts]: /boundary/docs/domain-model/hosts -[project]: /boundary/docs/domain-model/scopes#projects -[projects]: /boundary/docs/domain-model/scopes#projects -[session]: /boundary/docs/domain-model/sessions -[sessions]: /boundary/docs/domain-model/sessions -[target]: /boundary/docs/domain-model/targets -[targets]: /boundary/docs/domain-model/targets - -## Service API docs - -The following services are relevant to this resource: - -- [Host set service](/boundary/api-docs/host-set-service) diff --git a/website/content/docs/domain-model/hosts.mdx b/website/content/docs/domain-model/hosts.mdx deleted file mode 100644 index 7f7073c1c..000000000 --- a/website/content/docs/domain-model/hosts.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: docs -page_title: Host resource -description: >- - Learn about using host resources to represent computing elements that are reachable from Boundary. You can organize hosts in host sets and host catalogs. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Hosts - -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. - -## Plugin-based host information - -Plugin-based hosts are read-only. They are synced by an installed plugin on -the boundary system using the configuration provided it from the -host catalog and host set at an interval (configurable in the -host set). - -## Attributes - -A host has the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the host's parent host catalog. - -- `description` - (optional) - -### Static host attributes - -Static host types have the following additional attribute: - -- `address` - (required) - Must be at least 3 characters long and not greater than 255 characters. - -## Referenced by - -- [Host catalog][] -- [Host set][] - -[host catalog]: /boundary/docs/domain-model/host-catalogs -[host catalogs]: /boundary/docs/domain-model/host-catalogs -[host set]: /boundary/docs/domain-model/host-sets -[host sets]: /boundary/docs/domain-model/host-sets - -## Service API docs - -The following services are relevant to this resource: - -- [Host service](/boundary/api-docs/host-service) diff --git a/website/content/docs/domain-model/index.mdx b/website/content/docs/domain-model/index.mdx deleted file mode 100644 index 75b901701..000000000 --- a/website/content/docs/domain-model/index.mdx +++ /dev/null @@ -1,229 +0,0 @@ ---- -layout: docs -page_title: Domain model overview -description: >- - Learn about using the domain model to organize identity and access management and target resources for secure access. Understand how resources work together. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary domain model overview - -HashiCorp Boundary has an extensible domain model that allows administrators to organize IAM (Identity and Access Management) and target resources in a way that best compliments how their organization manages its computing infrastructure. This concept page is a high-level look at scopes, how they work, and their role in the domain model. We will also explore how Boundary approaches IAM and granting access to Targets. For more information about Boundary’s resource types, see the subpages of the Domain Model section. - -## Scopes - -When conducting threat modeling exercises, it is common practice to mitigate identified risks by reducing their potential blast radius and attack surface. Boundary uses the concept of scopes to help security operators achieve this type of mitigation. A [scope](/boundary/docs/domain-model/scopes) can be considered as a container for resources and permissions. Each scope has a permissions boundary that is isolated from other scopes on the same level, creating a defined blast radius. -The diagram below illustrates the relationship between the different levels of scopes. - - -![](/img/boundary-domain-model-overview.jpg) - -The highest-level scope is the [global scope](/boundary/docs/domain-model/scopes#global). Boundary administrators operate on this level to configure and manage Boundary for the entire business. Boundary administrators can also manage child scopes, auth methods, users, groups, roles, and grants. - -The intermediate scope level is [organizations](/boundary/docs/domain-model/scopes#organizations), also referred to as orgs, which are a child scope of global. Though the implementation may be flexible for organization scopes, we recommend scoping by business units in this case. Scoping by business unit provides a clear separation of concerns for each business unit. Creating organizations for the development, operations, and support teams would be an example. - -The lowest scope level is the [project](/boundary/docs/domain-model/scopes#projects). An organization’s scope may have as many projects as required based on its business workflows. To expand on the example used earlier, the development team’s organization can also have project scopes for their different products. - -For example, they could have the following project scopes: - -- Product 1 -- Product 2 -- Product 3 - -## Identity and access management - -As mentioned earlier, IAM is handled at the organization and global scope levels. Here, operators can create and manage principals. Principals are entities in Boundary that are either [users](/boundary/docs/domain-model/users) or [groups](/boundary/docs/domain-model/groups) that may be assigned capabilities. - -Users are associated with either the global or an organization’s scope. For better access control management, users may be positioned into groups to ease access control demands. Groups can also contain users from different organizations or global scopes without creating multiple users for a single entity, making permissioning less complicated to implement. - -An [auth method](/boundary/docs/domain-model/auth-methods) is the mechanism in Boundary used for authentication. An organization may use numerous authentication methods. Boundary supports Open ID Connect (OIDC) auth methods to delegate authentication to an external identity provider (IDP) - such as Azure Active Directory, Okta, and other OIDC providers - as well as a Boundary-native password auth method. Within an auth method, [accounts](/boundary/docs/domain-model/accounts) may be created and associated with users. Once associated with a user, the principal may authenticate in Boundary using the method specified by their auth method. An account for the password auth method consists of a login name and password. A user may be associated with accounts from different auth methods, where they can have both an Azure Active Directory account and an Okta account, for example. In such cases, the user could authenticate with either provider. - -## Access management - -Boundary’s method of access management starts at the lowest level with Actions. Actions are capabilities that can be performed against Boundary resources. Boundary supports generic Actions such as, Create, Read, Update, Delete, and List. However, there are many more that are resource-type-specific actions that can be used in grants. - -The next level of access management is a [grant](/boundary/docs/rbac#grant-strings). A grant in Boundary contains an action(s) and the resource(s) that the action(s) are permitted to be performed against. This can be thought of like a rule. - -For example, a grant can specify the List Action against a specific resource. Grants can specify resource types or resource IDs and may also be implemented as a rule. - -The highest-level in Boundary utilizes the concepts of [roles](/boundary/docs/domain-model/roles). Roles are a collection of zero or more grants. Roles are assigned to principals (users and groups) and govern what actions they are authorized to perform. Roles belong to a single scope and their lifecycle is dependent on the existence of that scope. Should the scope be deleted, the role would be deleted too. The diagram below illustrates the relationship between the different IAM components within Boundary. - -![](/img/component-relationship.png) - -## Target and host resources - -Boundary exposes endpoints to users as [targets](/boundary/docs/domain-model/targets). A target is a resource representing a networked service, with an associated set of permissions, that allows a user to connect and interact with Boundary within a single session. A target may contain references to [host](/boundary/docs/domain-model/hosts) sources or an address, and [credential](/boundary/docs/domain-model/credentials) sources. Users who access a target create an authorized session to its address or one of its host sources with returned credentials from the target’s credential source. - -A target exposes two distinct and mutually exclusive configuration paths for its -representation of a networked service: - -- Target with an address -- Target with host sources - -A target with an address represents a target that is set up with a single IP -address or DNS name directly on the target resource. This mechanism provides -benefits for new Boundary users and users who do not need the flexibility -provided by hosts, host sets, and host catalogs. It is well suited for cases -where there are stand-alone hosts that should not be grouped together and -treated as equal from an access control point of view. Because of its -simplicity, using targets with an address is not recommended when there are a -either a large number of hosts and/or dynamic hosts. - -A target with host sources represents a target that has one or more [host -sets][] associated with it. It trades off the simplicity of directly setting an -address on a target with the flexibility and scalability of Hosts, Host Sets and -Host Catalogs for discovering and categorizing networked resources. We recommend -using targets with host sources for setting up Boundary in environments where a -significant number of resources exist. - -### Summary of resources - -- **[Account][]** : - A resource - that represents a unique set of credentials - issued from a configured [authentication method][] - which can be used to establish the identity of a [user][]. - -- **[Alias][]** : - A resource - that represents a globally unique, DNS-like string that is - associated with a destination resource, such as a [target][]. - -- **[Authentication method][]** : - A resource - that provides a mechanism - for [users][] to authenticate to Boundary. - -- **[Credential][]** : - A data structure containing one or more secrets - that binds an identity to a set of permissions or capabilities - on a [host][] for a [session][]. - -- **[Credential library][]** : - A resource - that provides [credentials][] - of the same type and same access level - from a single [credential store][]. - -- **[Credential store][]** : - A resource - that can retrieve, store, and potentially generate [credentials][] - of differing types and differing access levels. - It may also contain [credential libraries][]. - -- **[Group][]** : - A resource - that represents a collection of [users][] - which can be treated equally - for the purposes of access control. - -- **[Host][]** : - A resource - that represents a computing element with a network address - reachable from Boundary. - -- **[Host catalog][]** : - A resource - that contains [hosts][] and [host sets][]. - -- **[Host set][]** : - A resource - that represents a collection of [hosts][] - which are considered equivalent - for the purposes of access control. - -- **[Managed group][]** : - A resource that groups [accounts][] based on criteria - established by a third-party service backing the [authentication method][]. It - can be used as a principal in [roles][]. - -- **[Role][]** : - A resource - that contains a collection of [permissions][] - which are granted to any principal assigned to the role. - -- **[Session][]** : - A set of related connections between a [user][] and a [host][]. - A session may include a set of [credentials][] - which define the permissions granted to the [user][] on the [host][] for the duration - of the session. - -- **[Session recordings][]** : - A session recording represents a directory structure of files in an external object store that together are the recording of a single [session][] between a [user][] and a [target][]. - -- **[Scope][]** : - A [permission][] boundary modeled as a container. - -- **[Storage bucket][]** : - A storage bucket is used to store [session recordings][]. - The storage bucket represents a bucket in an external object store. - -- **[Storage policy][]** : - A storage policy defines the rules for storing - [session recordings][] in a [storage bucket][]. - The storage policy may specify the retention period for the recordings. - -- **[Target][]** : - A resource - that represents a networked service - with an associated set of permissions - a [user][] can connect to - and interact with - through Boundary - by way of a [session][]. - -- **[User][]** : - A resource - that represents an individual person or entity - for the purposes of access control. - -## Next steps - -When getting started with Boundary, -the first resource to look at should be [scopes][]. -Every other resources is either contained within a scope, -or contained within another resource -that is itself contained within a scope. -Refer to the [scopes] section to help you understand the structure of resources within Boundary. - -[iam]: https://en.wikipedia.org/wiki/Identity_management -[account]: /boundary/docs/domain-model/accounts -[accounts]: /boundary/docs/domain-model/accounts -[alias]: /boundary/docs/concepts/domain-model/aliases -[authentication method]: /boundary/docs/domain-model/auth-methods -[authentication methods]: /boundary/docs/domain-model/auth-methods -[credential library]: /boundary/docs/domain-model/credential-libraries -[credential libraries]: /boundary/docs/domain-model/credential-libraries -[credential store]: /boundary/docs/domain-model/credential-stores -[credential stores]: /boundary/docs/domain-model/credential-stores -[credential]: /boundary/docs/domain-model/credentials -[credentials]: /boundary/docs/domain-model/credentials -[group]: /boundary/docs/domain-model/groups -[groups]: /boundary/docs/domain-model/groups -[host catalog]: /boundary/docs/domain-model/host-catalogs -[host catalogs]: /boundary/docs/domain-model/host-catalogs -[host set]: /boundary/docs/domain-model/host-sets -[host sets]: /boundary/docs/domain-model/host-sets -[host]: /boundary/docs/domain-model/hosts -[hosts]: /boundary/docs/domain-model/hosts -[managed group]: /boundary/docs/domain-model/managed-groups -[role]: /boundary/docs/domain-model/roles -[roles]: /boundary/docs/domain-model/roles -[scope]: /boundary/docs/domain-model/scopes -[scopes]: /boundary/docs/domain-model/scopes -[project]: /boundary/docs/domain-model/scopes#projects -[session]: /boundary/docs/domain-model/sessions -[session recordings]: /boundary/docs/domain-model/session-recordings -[sessions]: /boundary/docs/domain-model/sessions -[storage bucket]: /boundary/docs/domain-model/storage-buckets -[storage policy]: /boundary/docs/concepts/domain-model/storage-policy -[target]: /boundary/docs/domain-model/targets -[targets]: /boundary/docs/domain-model/targets -[user]: /boundary/docs/domain-model/users -[users]: /boundary/docs/domain-model/users -[permission]: /boundary/docs/rbac -[permissions]: /boundary/docs/rbac diff --git a/website/content/docs/domain-model/managed-groups.mdx b/website/content/docs/domain-model/managed-groups.mdx deleted file mode 100644 index cf2d88cbe..000000000 --- a/website/content/docs/domain-model/managed-groups.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: docs -page_title: Managed group resource -description: >- - Learn about using the managed group resource to organize identity provider accounts and assign them grants. Understand how to configure OIDC and LDAP attributes. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Managed groups - -A managed group is a resource that represents a collection of [accounts][]. The -collection is formed by evaluating account information defined by the [auth -method][]'s identity provider against the managed group's configuration; members -cannot be managed manually. An account can be associated with zero or more -managed groups within the same [auth method][]. The managed group can be used as -a principal within [roles][] to assign grants. - -## Attributes - -All managed group types have the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the account's auth method. - -- `description` - (optional) - -### OIDC managed group information and attributes - -Membership in OIDC managed groups is evaluated when the auth method is used for -authentication, based on information contained within the OIDC ID token and the -OIDC User Info endpoint. Every authentication will result in a new evaluation of -managed group membership. - -OIDC managed groups have the following additional attributes: - -- `filter` - (required) - A boolean expression defining a filter run against the provided information. - For general syntax information refer to the [filtering concepts][] page; for more specific information on the data available for this purpose refer to the [managed groups filtering][] page. - -[filtering concepts]: /boundary/docs/filtering -[managed groups filtering]: /boundary/docs/rbac/users/managed-groups - -### LDAP managed group information and attributes - -Membership in LDAP managed groups is evaluated when the auth method is used for -authentication, based on information contained within the LDAP server. Every -authentication results in a new evaluation of managed group membership. -LDAP managed groups have the following additional attributes: - -- `group-names` - (required) - A list of group names. - -## Referenced by - -- [Accounts][] -- [Auth method][] - -[accounts]: /boundary/docs/domain-model/accounts -[auth method]: /boundary/docs/domain-model/auth-methods -[roles]: /boundary/docs/domain-model/roles - -## Service API docs - -The following services are relevant to this resource: - -- [Managed group service](/boundary/api-docs/managed-group-service) - -## Tutorial - -Refer to the [Manage users and groups with HCP Boundary](/boundary/tutorials/hcp-administration/hcp-manage-users-groups) tutorial to learn how to complete user management related tasks. - -Refer to the [Identity management](/boundary/tutorials/identity-management) tutorials to learn about OIDC, LDAP, and managed groups. \ No newline at end of file diff --git a/website/content/docs/domain-model/roles.mdx b/website/content/docs/domain-model/roles.mdx deleted file mode 100644 index 11223db93..000000000 --- a/website/content/docs/domain-model/roles.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: docs -page_title: Role resource -description: >- - Learn about using the role resource to group permissions which are then granted to any principal assigned to the role. Understand role attributes. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Roles - -A role is a resource -that contains a collection of [permissions][] -which are granted to any principal assigned to the role. -[Users][], [groups][], and [managed groups][] are principals -which allows either to be assigned to a role. -A role can be defined within any [scope][]. -A role can be assigned to principals from any scope. - -## Attributes - -A role has the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the role's [project][]. - -- `description` - (optional) - -## Referenced by - -- [Group][] -- [Managed group][] -- [Project][] -- [User][] - -[group]: /boundary/docs/domain-model/groups -[groups]: /boundary/docs/domain-model/groups -[managed group]: /boundary/docs/domain-model/managed-groups -[managed groups]: /boundary/docs/domain-model/managed-groups -[permissions]: /boundary/docs/rbac -[project]: /boundary/docs/domain-model/scopes#projects -[scope]: /boundary/docs/domain-model/scopes -[user]: /boundary/docs/domain-model/users -[users]: /boundary/docs/domain-model/users - -## Service API docs - -The following services are relevant to this resource: - -- [Role service](/boundary/api-docs/role-service) - -## Tutorial - -Refer to the [Managed Roles and Permissions with HCP Boundary](/boundary/tutorials/hcp-administration/hcp-manage-roles) tutorial to learn how to create a role in Boundary. diff --git a/website/content/docs/domain-model/scopes.mdx b/website/content/docs/domain-model/scopes.mdx deleted file mode 100644 index f0dc324a5..000000000 --- a/website/content/docs/domain-model/scopes.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -layout: docs -page_title: Scope resource -description: >- - Learn about using the scope resource to organize and manage resources. Understand how to configure global, org, and project scopes to logically group resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Scopes - -A scope is a [permission][] boundary modeled as a container. -Scopes are groupings of resources. -Each scope is also a resource. -You create scopes to partition resources and then assign ownership of those resources to principals (users and groups). - -There are three types of scopes in Boundary: - -- A single [global][] scope is the outermost container. -- [Organizations][] (orgs) are contained by the `global` scope. -- [Projects][] are contained by orgs. - - -Within the software itself and elsewhere in the documentation, Boundary reliably uses "org" instead of "organization". Among other reasons, this removes ambiguity between different regional spellings of the word. It is spelled out here in the domain model for completeness and to ensure its intent is clear. - - -You can only associate certain resources with specific levels of scopes. -For example, while you can create users at the global or org level, you can only create targets within a project. -Refer to the table below for a list of resources and their valid scope types: - -| Resource | Valid scope types | -| -------------------- | -------------------- | -| Accounts | Global, org | -| Aliases | Global | -| Auth methods | Global, org | -| Auth tokens | Global, org | -| Billing | Global | -| Credential libraries | Project | -| Credentials | Project | -| Credential stores | Project | -| Groups | Global, org, project | -| Host catalogs | Project | -| Host sets | Project | -| Hosts | Project | -| Managed groups | Global, org | -| Storage policies | Global, org | -| Roles | Global, org, project | -| Scopes | Global, org, project | -| Session recordings | Global, org | -| Sessions | Project | -| Storage buckets | Global, org | -| Targets | Project | -| Users | Global, org | -| Workers | Global | - -You can nest projects within orgs to configure access to resources. - -For example, you may create an org scope called `IT-Support` that contains the users or groups that make up your IT department. -Then, you might create a project called `QA-Tests` that is contained within the`IT-Support` org. -You can add hosts, host sets, and targets to the `QA-Tests` project to control the resources your IT department can access. - -To more granularly control what resources your users can access, you can separate resources out into additional projects. -You can also assign permissons across scopes, if you want a user from one scope to have access to a resource that is not normally granted to that user's scope. - -## Global - -The global scope is the outermost scope. -There is always a single global scope -and it cannot be deleted. -You use the global scope for the initial administration, setup, and management of any org scopes. -The global scope can directly contain: -[users][], [groups][], [auth methods][], and [organizations][]. - -## Organizations - -An org is a scope directly contained by the global scope. -You can create multiple orgs within the global scope. -Orgs are used to contain identity and access management-related resources and projects. -An org can directly contain: -[users][], [groups][], [auth methods][], [roles][], and [projects][]. - -## Projects - -A project is a scope directly contained by an org scope. -You can create multiple projects within an org scope. -Projects are used to contain infrastructure-related resources. -A project can directly contain: -[roles][], [targets][], [host catalogs][], and [credential stores][]. - -## Attributes - -A scope has the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the scope's parent scope. - -- `description` - (optional) - -## Storage policy association - -This feature requires HCP Boundary or Boundary Enterprise - -[Storage policies][] that are created in the global scope can be associated with any org scope. -However, a storage policy created in an org scope can only be associated with that org scope. -Changing the storage policy assigned to a scope can impact the resultant set of policy, but such a change only affects future recordings that you create within that scope or using that storage policy. - -## Referenced by - -- [Auth method][] -- [Credential store][] -- [Group][] -- [Host catalog][] -- [Role][] -- [Storage policies][] -- [Target][] -- [User][] - -[auth method]: /boundary/docs/domain-model/auth-methods -[auth methods]: /boundary/docs/domain-model/auth-methods -[credential store]: /boundary/docs/domain-model/credential-stores -[credential stores]: /boundary/docs/domain-model/credential-stores -[global]: /boundary/docs/domain-model/scopes#global -[group]: /boundary/docs/domain-model/groups -[groups]: /boundary/docs/domain-model/groups -[host catalog]: /boundary/docs/domain-model/host-catalogs -[host catalogs]: /boundary/docs/domain-model/host-catalogs -[organization]: /boundary/docs/domain-model/scopes#organizations -[organizations]: /boundary/docs/domain-model/scopes#organizations -[permission]: /boundary/docs/rbac -[permissions]: /boundary/docs/rbac -[project]: /boundary/docs/domain-model/scopes#projects -[projects]: /boundary/docs/domain-model/scopes#projects -[role]: /boundary/docs/domain-model/roles -[roles]: /boundary/docs/domain-model/roles -[storage policies]: /boundary/docs/domain-model/storage-policy -[target]: /boundary/docs/domain-model/targets -[targets]: /boundary/docs/domain-model/targets -[user]: /boundary/docs/domain-model/users -[users]: /boundary/docs/domain-model/users - -## Service API docs - -The following services are relevant to this resource: - -- [Scope service](/boundary/api-docs/scope-service) - -## Tutorial - -Refer to the [Manage Scopes with HCP Boundary](/boundary/tutorials/hcp-administration/hcp-manage-scopes) tutorial to learn how to create an org scope and a project scope. diff --git a/website/content/docs/domain-model/session-connections.mdx b/website/content/docs/domain-model/session-connections.mdx deleted file mode 100644 index 9e37dddd5..000000000 --- a/website/content/docs/domain-model/session-connections.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: docs -page_title: Session connection resource -description: >- - Learn how the session connection resource represents the proxy Boundary creates between user and host. Understand how connections are established and terminated. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Session connections - -A session connection represents an authorized proxy between a [user][] and a [host][]. After the creation of a -[session][], a user initiates a connection to a [target][] using the Boundary-provided -proxy information and [credentials][] (if applicable). - -Users can create multiple connections to a target, so long as the session has not expired or reached its maximum -number of connections. - -Session connections terminate on user exit from the proxy, or on termination of the session. - -## Referenced by - -- [Session][] - -[credentials]: /boundary/docs/domain-model/credentials -[host]: /boundary/docs/domain-model/hosts -[session]: /boundary/docs/domain-model/sessions -[target]: /boundary/docs/domain-model/targets -[user]: /boundary/docs/domain-model/users diff --git a/website/content/docs/domain-model/session-recordings.mdx b/website/content/docs/domain-model/session-recordings.mdx deleted file mode 100644 index 479d9d703..000000000 --- a/website/content/docs/domain-model/session-recordings.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -layout: docs -page_title: Session recording resource -description: >- - Learn about using the session recording resource to audit user sessions. Understand how storage policy retention periods help you meet your compliance needs. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Session recordings - -This feature requires HCP Boundary or Boundary Enterprise - -A session recording represents a directory structure of -files in an external object store that together are the -recording of a single [session][] between a [user][] and a [target][]. - -The lifecycle of a session recording does not affect the -lifecycle of any files stored in the external object store. - -A session recording belongs to one and only one [storage bucket][]. -It is deleted when you delete the storage bucket it belongs to. - -A session recording is associated with the -target that the recorded session was against. -However, the lifecycle of a session recording is not tied to -the lifecycle of the target it is associated with. -If the target associated wtih a session recording is deleted, -the association to the target is deleted, not the session recording itself. - -Deleting a session recording does not delete or modify -any of the files in the external object store that the session recording represents. - -The session recording captures all interactions that take place during -the session, including metadata about the user, target and any -[hosts][], [host sets][], [host catalogs][], or [credentials][] used. - -A session recording represents [connections][] as separate -entities within the recording. Each recorded connection may also contain a recorded channel. This represents a single channel -in which the user interacted with the target in protocols that -multiplex user interactions over single connections. For example, -the SSH protocol multiplexes user interactions in a single -connection, so a user's interactions over SSH are recorded -in a channel. - -A session recording belongs to the scope of the storage bucket -it is stored in. The scope can be either the global scope or an [organization][] -scope. - -## Resultant set of policy calculation - -[Storage policies][] codify how long session recordings must be kept and when they should be deleted. -The resultant set of policy (RSoP) refers to the set of policy attributes that apply to a resource. -When you apply policies on multiple levels, the results can conflict. -Boundary evaluates each storage policy attribute individually, starting at the global scope and then evaluating any storage policies assigned to org scopes. - -In accordance with the RSoP, Boundary considers the following principles in order: - -1. Retention wins over deletion. The retention duration parameter guarantees that a session recording is retained for at least that duration. Before the retention duration has transpired, manual deletes will fail and Boundary will not attempt to automatically delete any session recordings. -2. Longest retention wins. When Boundary evaluates multiple storage policies, the longer retention duration parameter applies to the session recording. -3. The shortest deletion wins. When Boundary evaluates multiple storage policies, the shorter delete after duration parameter applies to the session recording. - -Each storage policy attribute also indicates whether the attribute can be overridden or not. -If the attribute cannot be overridden, Boundary stops evaluating the RSoP for that attribute at lower scopes. - -Changing the policy assigned to a scope or changing an attribute of a storage policy can impact the RSoP. -Such a change only affects future session recordings created in that scope or using that storage policy. -If a session recording is not in compliance with the current RSoP, the session recording API indicates that it is out of compliance with the current policy. - -### Examples - -In the following examples, Boundary determines the resultant set of policies using the `retain_for_days_overridable` and `delete_after_days_overridable` attributes. -A value of `true` indicates the number of days can be overridden, while a value of `false` indicates that it cannot be overridden. - -#### Example 1 -In this case, the retention value is derived from the org policy and the deletion value is derived from the global policy. - -| | Global policy | Org policy | Result policy | -| ------------------------------ | ------------- | ---------- | ------------- | -| Retain for days (Overridable) | 10 (True) | 20 (True) | 20 | -| Delete after days (Overridable) | 30 (True) | 40 (True) | 30 | - -#### Example 2 -In this case, Boundary ignores the org policy values because the global policy values are not overridable. - -| | Global policy | Org policy | Result policy | -| ------------------------------ | ------------- | ---------- | ------------- | -| Retain for days (Overridable) | 10 (False) | 20 (True) | 10 | -| Delete after days (Overridable) | 30 (False) | 40 (True) | 30 | - -#### Example 3 -In this case, the longest retention value is 30, and the shortest deletion value is 20. -However, the `delete_after_days` value cannot be less than the `retain_for_days` value. -Therefore, Boundary sets the deletion value to the retention value. - -| | Global policy | Org policy | Result policy | -| ------------------------------ | ------------- | ---------- | ------------- | -| Retain for days (Overridable) | 30 (True) | 20 (True) | 30 | -| Delete after days (Overridable) | 50 (True) | 20 (True) | 30 | - -For more information, refer to the [storage policy attributes](/boundary/docs/domain-model/storage-policy#attributes) documentation. - -## Service API docs - -The following services are relevant to this resource: - -- [Session recording service](/boundary/api-docs/session-recording-service) - -[connections]: /boundary/docs/domain-model/session-connections -[credentials]: /boundary/docs/domain-model/credentials -[host catalogs]: /boundary/docs/domain-model/host-catalogs -[host sets]: /boundary/docs/domain-model/host-sets -[hosts]: /boundary/docs/domain-model/hosts -[target]: /boundary/docs/domain-model/targets -[user]: /boundary/docs/domain-model/users -[organization]: /boundary/docs/domain-model/scopes#organizations -[session]: /boundary/docs/domain-model/sessions -[storage bucket]: /boundary/docs/domain-model/storage-buckets -[storage policies]: /boundary/docs/domain-model/storage-policy \ No newline at end of file diff --git a/website/content/docs/domain-model/sessions.mdx b/website/content/docs/domain-model/sessions.mdx deleted file mode 100644 index a2044c305..000000000 --- a/website/content/docs/domain-model/sessions.mdx +++ /dev/null @@ -1,113 +0,0 @@ ---- -layout: docs -page_title: Session resource -description: >- - Learn how the session resource is a set of connections between users and hosts that may include credentials. Understand how sessions are created and terminated. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Sessions - -A session is -a set of related [connections][] -between a [user][] and a [host][]. -A session may include a set of [credentials][] -which define the permissions granted to the [user][] on the [host][] for the duration -of the session. - -A user initiates a session -by requesting access to a [target][]. -If a user has the proper [permissions][], -a session is created -and the [expiration time][] and [connection limit][] -are set based on the [target's attributes][]. -If the target is associated with [credential libraries][], -credentials are retrieved and returned from each -credential library. -A snapshot of the data -relevant to authorizing the session -is also captured and stored in the Boundary data warehouse -when the session is created. - -Sessions are created in the [project][] of the corresponding target. -Deleting a project will terminate all of the active sessions in the project -but will not effect any session data in the data warehouse. -Historical data in the data warehouse is never deleted. - -## Termination - -A session is forcefully terminated when one of the following occurs: - -- The session reaches the time limit and expires. - -- An authorized user manually cancels the session. - -- Any resource associated with the session is deleted - or removed from the target. - This includes: the host, the [host set][], the [host catalog][], - a credential, a credential library, a [credential store][], - the target itself, the project, the [organization][], - the user, the user's [account][], or the account's [authentication method][]. - -In addition to the above, -a session terminates non-forcefully -when the user closes all connections -and no additional connections are allowed -because of a connection limit. - -Any credentials associated with the session are revoked when the session is -terminated. - -Permissions are only evaluated at session establishment. -Changes to a user's permissions do not effect existing sessions. - -## Referenced by - -- [Project][] -- [Credential][] -- [Host set][] -- [Target][] - -[expiration time]: /boundary/docs/domain-model/targets#session_max_seconds -[connection limit]: /boundary/docs/domain-model/targets#session_connection_limit -[target's attributes]: /boundary/docs/domain-model/targets#tcp-target-attributes -[account]: /boundary/docs/domain-model/accounts -[accounts]: /boundary/docs/domain-model/accounts -[authentication method]: /boundary/docs/domain-model/auth-methods -[authentication methods]: /boundary/docs/domain-model/auth-methods -[connections]: /boundary/docs/domain-model/session-connections -[credential library]: /boundary/docs/domain-model/credential-libraries -[credential libraries]: /boundary/docs/domain-model/credential-libraries -[credential store]: /boundary/docs/domain-model/credential-stores -[credential stores]: /boundary/docs/domain-model/credential-stores -[credential]: /boundary/docs/domain-model/credentials -[credentials]: /boundary/docs/domain-model/credentials -[host catalog]: /boundary/docs/domain-model/host-catalogs -[host catalogs]: /boundary/docs/domain-model/host-catalogs -[host set]: /boundary/docs/domain-model/host-sets -[host sets]: /boundary/docs/domain-model/host-sets -[host]: /boundary/docs/domain-model/hosts -[hosts]: /boundary/docs/domain-model/hosts -[target]: /boundary/docs/domain-model/targets -[targets]: /boundary/docs/domain-model/targets -[user]: /boundary/docs/domain-model/users -[users]: /boundary/docs/domain-model/users -[organization]: /boundary/docs/domain-model/scopes#organizations -[organizations]: /boundary/docs/domain-model/scopes#organizations -[project]: /boundary/docs/domain-model/scopes#projects -[projects]: /boundary/docs/domain-model/scopes#projects -[permissions]: /boundary/docs/rbac - -## Service API docs - -The following services are relevant to this resource: - -- [Session service](/boundary/api-docs/session-service) - -## Tutorial - -Refer to the [Manage Sessions with HCP Boundary](/boundary/tutorials/hcp-administration/hcp-manage-sessions) tutorial to learn how to start, view, and cancel a session. diff --git a/website/content/docs/domain-model/storage-buckets.mdx b/website/content/docs/domain-model/storage-buckets.mdx deleted file mode 100644 index ab09de876..000000000 --- a/website/content/docs/domain-model/storage-buckets.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: docs -page_title: Storage bucket resource -description: >- - Learn how to use the storage bucket resource to retain session recordings for compliance. Understand storage bucket attributes and how scopes affect storage. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Storage buckets - -This feature requires HCP Boundary or Boundary Enterprise - -A resource known as a storage bucket is used to store the [session recordings][]. -The storage bucket represents a bucket in an external object store. -A storage bucket's name is optional, but it must be unique if you define one. -Storage buckets can be associated with zero to many [targets][]. - -A storage bucket exists in either the Global scope or an Org scope. -A storage bucket that is associated with the Global scope can be associated with any target. -However, a storage bucket in an Org scope can only be associated with targets in a project from the same Org scope. -Any storage buckets associated with an Org scope are deleted when the Org itself is deleted. - -Deleting a storage bucket in Boundary does not delete the bucket in the external object store, nor does it delete the recorded sessions in the bucket. -The storage bucket's lifecycle does not affect the lifecycle of the bucket in the external object store. -Any session recording metadata that is attached to the storage bucket is deleted, when the storage bucket is deleted. - -## Attributes - -A storage bucket has the following configurable attributes: - -- `name` - (Optional) The name of the resource in Boundary. -The name is optional, but if you set it, it must be unique within the scope ID. -- `description` - (Optional) A description of the resource. -- `bucket_name` - (Required) The name of the bucket in the external object store. -You must provide a name for the bucket in the external object store. -- `bucket_prefix` - (Optional) The prefix used to organize the data that is stored in the external object store. -- `plugin_name` - (Required) The plugin name must reference an installed plugin. -- `worker_filter` - (Required) A filter to identify the worker or workers that can process requests for the storage bucket. -- `attributes` - (Optional) A collection of fields the plugin uses to interface with the backing service. -- `secrets` - (Optional) A collection of sensitive fields, like [credentials][], which the plugin uses to interface with the backing service. -These fields are write only. - -## AWS S3 attributes and secrets - -At this time, the only supported storage for storage buckets is AWS S3. -In AWS S3, a storage bucket contains the bucket name, region, and optional prefix, as well as any credentials needed to access the bucket, such as the secret key. - -The AWS S3 storage bucket can use static or dynamic credentials. -You can configure static credentials using an access key and secret key or dynamic credentials using the AWS [`AssumeRole` API](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole). - -### Attributes - -AWS S3 buckets have the following attributes: - -- `region` - (Required) The S3 region to configure the storage bucket in. -- `disable_credential_rotation` - (Optional for static credentials, Required for dynamic credentials) If set to `true`, credential rotation is not performed. -By default, the AWS plugin [rotates credentials](https://github.com/hashicorp/boundary-plugin-aws/blob/main/README.md#credential-rotation). -Note that this attribute is required, if you use dynamic credentials. -- `role_arn` - (Optional) The ARN (Amazon Resource Name) role that is attached to the EC2 instance that the self-managed worker runs on. -The Role ARN is required if the AWS S3 bucket is configured to use dynamic credentials using `AssumeRole`. -- `role_external_id` - (Optional) A required value if you delegate third party access to your AWS resources. -You can configure this value if your AWS S3 bucket is configured to use dynamic credentials. -For more information, refer to the AWS documentation for [How to use an external ID when granting access to your AWS resources to a third party](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html). -- `role_session_name`: (Optional) A unique identifier for the AWS session. -You can use this value to control how IAM principals and applications name their role sesions when they assume an IAM role. -By providing a session name, you enable tracking session actions in AWS CloudTrail logs. -You can configure this value if your AWS S3 bucket is configured to use dynamic credentials. -For more information, refer to the AWS documentation for [Logging IAM and AWS STS API calls with AWS CloudTrail](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html). -- `role_tags`: (Optional) An object with key-value pair attributes that is passed when you assume an IAM role. -For more information, refer to the AWS documentation for [Passing session tags in AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html). - -### Secrets - -AWS S3 buckets can have the following secrets: - -- `access_key_id` - (Optional) The access key ID for the IAM user to use with this storage bucket. -Access keys are required if the AWS S3 bucket is configured to use static credentials. -- `secret_access_key` - (Optional) The secret access key for the IAM user to use with this storage bucket. -Secret access keys are required if the AWS S3 bucket is configured to use static credentials. - -## Referenced by - -- [Session recordings](/boundary/docs/domain-model/session-recordings) -- [Create a storage bucket](/boundary/docs/session-recording/configuration/create-storage-bucket) - -## Service API docs - -The following services are relevant to this resource: - -- [Session recording service](/boundary/api-docs/session-recording-service) - -[session recordings]: /boundary/docs/domain-model/session-recordings -[credentials]: /boundary/docs/domain-model/credentials -[targets]: /boundary/docs/domain-model/targets -[scope]: /boundary/docs/domain-model/scopes \ No newline at end of file diff --git a/website/content/docs/domain-model/storage-policy.mdx b/website/content/docs/domain-model/storage-policy.mdx deleted file mode 100644 index ad9219f07..000000000 --- a/website/content/docs/domain-model/storage-policy.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -layout: docs -page_title: Storage policy resource -description: >- - Learn about using the storage policy resource to manage session recording retention. Understand how to configure policies for scopes and specify retention. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Storage policies - -This feature requires HCP Boundary or Boundary Enterprise - -A resource known as a storage policy is used to codify how long [session recordings][] must be kept and when they should be deleted. -A storage policy's name is optional, but it must be unique if you define one. -Storage policies can only be assigned to the global [scope][] or an org scope. -You must [attach][] storage policies to a scope (global or a specific org) to take effect. - -A storage policy exists in either the global scope or an org scope. -Storage policies that are created in the global scope can be associated with any org scope. -However, a storage policy created in an org scope can only be associated with that org scope. -Any storage policies associated with an org scope are deleted when you delete the org itself. - -## Attributes - -A storage policy has the following configurable attributes: - -- `name` - (Optional) The name of the resource in Boundary. -The name is optional, but if you set it, it must be unique within the scope ID. -If you do not provide a name, Boundary uses the storage policy ID as the default name. -- `description` - (Optional) A description of the resource. -- `retain_for_days` - (Optional) The number of days a session recording must be kept. -A value of `-1` indicates an infinite retention. -- `retain_for_days_overridable` - (Optional) Indicates that a lower scope can override the `retain_for_days` attribute value. -The default value is `true`. -- `delete_after_days` - (Optional) The number of days after which a session recording should be deleted. -- `delete_after_days_overridable` - (Optional) Indicates that a lower scope can override the `delete_after_days` attribute value. -The default value is `true`. - -## Retention and deletion guidelines - -- Setting the `retain_for_days` value to `-1` (infinity) requires the `delete_after_days` value to be set to `0`. -- If you set the `delete_after_days` value, it must be greater than or equal to 0. -- The `delete_after_days` value must be greater than or equal to the `retain_for_days` value, unless you set `delete_after_days` to `0`. -- You cannot set the `retain_for_days` and `delete_after_days` values to 0. -- Changing an attribute of a storage policy that is assigned to a scope can impact the resultant set of policy. -However, such a change only affects future recordings created within that scope or using that storage policy. - -## Referenced by - -- [Scopes](/boundary/docs/domain-model/scopes) -- [Session recordings](/boundary/docs/domain-model/session-recordings) - -## Service API docs - -The following services are relevant to this resource: - -- [Scope service](/boundary/api-docs/scope-service) -- [Policy service](/boundary/api-docs/policy-service) - -[attach]: /boundary/docs/session-recording/compliance/configure-storage-policy#attach-storage-policies-to-a-scope -[session recordings]: /boundary/docs/domain-model/session-recordings -[scope]: /boundary/docs/domain-model/scopes diff --git a/website/content/docs/domain-model/targets.mdx b/website/content/docs/domain-model/targets.mdx deleted file mode 100644 index d1c77b9ff..000000000 --- a/website/content/docs/domain-model/targets.mdx +++ /dev/null @@ -1,196 +0,0 @@ ---- -layout: docs -page_title: Target resource -description: >- - Learn about using the target resource to configure a networked service a user can connect to. Understand the TCP and SSH target type requirements and attributes. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Targets - -A target is a resource -that represents a networked service -with an associated set of permissions -a [user][] can connect to -and interact with -through Boundary -by way of a session. - -A target can only be defined within a [project][]. -A target can contain references to [host sets][] from [host catalogs][] -which belong to the same project as the target. -A target can contain references to [credential libraries][] -from [credential stores][] which belong to the same project as the target. - -A target can contain an address -which is used by a session to connect to a networked resource. -A target cannot have an address and also reference host sources. - -A user must be assigned a [role][] with the `authorize-session` [permission][] -for the target to -establish a session with a networked resource by way of an address, -or host in any host set referenced by the target. - -## Attributes - -A target has the following configurable attributes: - -- `name` - (required) - The `name` must be unique within the target's project. - -- `description` - (optional) - An optional description of the target for identificaiton purposes. - -- `address` - (optional) - This value represents a network resource address and is used when establishing a session. - It does not accept a port, only an IP address or DNS name. - - If you set a target address for RDP targets that use Kerberos authentication, use the target's hostname and append the domain to it, for example `target-hostname.mydomain.com`. For RDP targets that use NTLM authentication, set the target address to the target's IP address. - -- `default_client_port` - (optional) - Represents a local port that you want Boundary to listen to by default when someone initiates a session on the client. - -- `egress_worker_filter` - (optional) - A boolean expression to [filter][] which egress workers can handle sessions - for this target. - Egress worker filters determine which workers are used to access targets. - You can configure an egress filter to enable [multi-hop](/boundary/docs/workers/multi-hop) connections. - If you do not configure an egress filter, then Boundary uses a single worker to connect to the controller. - -- `ingress_worker_filter` - (optional) HCP/ENT - A boolean expression to [filter][] which ingress workers can handle sessions - for this target. - Ingress worker filters determine which workers you connect with to initiate a session. - If you do not configure an ingress filter, Boundary selects a front line worker for the session. - A front line worker is any worker directly connected to the control plane; for HCP Boundary this will be an HCP worker. - -- `session_connection_limit` - (required) - The cumulative number of connections allowed during a session. - A -1 value means no limit. - The default is -1. - The value must be greater than 0 or exactly -1. - -- `session_max_seconds` - (required) - The maximum duration of an individual session between the user and the target. - All connections for a session are closed - and the session is terminated - when a session reaches the maximum duration. - The default is 8 hours (28800 seconds). - This value must be greater than 0. - If you do not specfiy a maximum duration, Boundary uses the default value. - -- `with-alias-authorize-session-host-id` (Optional) - The authorize session host ID flag that an alias uses when you create the alias at the same time as you create the target. - -- `with-alias-scope-id` (Optional) - The scope ID for the alias to be created in, when you create it at the same time as you create the target. - The default scope is global. - -- `with-alias-value` (Optional) - The string that you want to use as the alias to represent the target, when you create an alias at the same time as you create the target. - -## Target types - -Boundary supports RDP, SSH, and TCP target types. -RDP and SSH targets **must** have at least one injected application credential to establish the connection. -A TCP target **cannot** have any injected application credentials. - -Note the following target type requirements: - -- **To use brokered credentials to connect to a target that runs SSH**: you must use a `tcp` target type. -- **To use injected application credentials to connect to a target that runs SSH**: you must use an `ssh` target type. -- **To enable session recording for a target that runs SSH**: you must use injected application credentials and an `ssh` target type. - -You can configure brokered credentials for use with SSH targets for purposes other than establishing the initial SSH connection. - -### RDP target attributes - -This feature requires HCP Boundary or Boundary Enterprise - -RDP targets use injected application credentials to authenticate an RDP session between the client and end host in Windows environments that use Active Directory authentication. -Injected credentials allow users to securely connect to remote hosts using RDP, while never being in the possession of a valid credential for that target host. - -For more information about known limitations, configuration requirements, and software compatibility for the RDP credential injection beta, refer to [RDP credential injection compatibiity](/boundary/docs/credentials/rdp-testing-and-compatibility-matrix). - -RDP targets have the following additional attribute: - -- `default_port` - (optional) - The default port to set on this target. - If this is not specified the default port will be 3389. - -### SSH target attributes - -This feature requires HCP Boundary or Boundary Enterprise - -SSH targets use injected application credentials to authenticate an SSH session between the client and end host. -Injected credentials allow users to securely connect to remote hosts using SSH, while never being in the possession of a valid credential for that target host. -The injected credentials can be a username/password or username/private key credential from Vault credential libraries or they can be static [credentials][] or an SSH certificate from Vault SSH credential libraries. - -SSH targets require you to configure injected credentials to create a session. -If you attempt to create a session against an SSH target without configuring injected credentials, it results in an error. -However, you can use brokered credentials with SSH targets for purposes other than establishing the initial SSH connection. - -SSH targets have the following additional attributes: - -- `default_port` - (optional) - The default port to set on this target. - If this is not specified the default port will be 22. - -- `enable_session_recording` - (optional) - Set to `true` to enable [session recordings][] for a target. - If you enable session recording, the `storage_bucket_id` is required. - -- `storage_bucket_id` - (optional) - Designates the storage bucket to be used for session recording. - This attribute is required if you set `enable_session_recording` to `true`. - -### TCP target attributes - -TCP targets have the following additional attribute: - -- `default_port` - (required) - The default port to set on this target. - -## Referenced by - -- [Credential library][] -- [Host set][] -- [Project][] -- [Session][] -- [Session recordings][] -- [Worker filtering][] - -[credentials]: /boundary/docs/domain-model/credentials -[credential library]: /boundary/docs/domain-model/credential-libraries -[credential libraries]: /boundary/docs/domain-model/credential-libraries -[credential store]: /boundary/docs/domain-model/credential-stores -[credential stores]: /boundary/docs/domain-model/credential-stores -[host catalog]: /boundary/docs/domain-model/host-catalogs -[host catalogs]: /boundary/docs/domain-model/host-catalogs -[host set]: /boundary/docs/domain-model/host-sets -[host sets]: /boundary/docs/domain-model/host-sets -[host]: /boundary/docs/domain-model/hosts -[hosts]: /boundary/docs/domain-model/hosts -[permission]: /boundary/docs/rbac -[permissions]: /boundary/docs/rbac -[project]: /boundary/docs/domain-model/scopes#projects -[projects]: /boundary/docs/domain-model/scopes#projects -[role]: /boundary/docs/domain-model/roles -[roles]: /boundary/docs/domain-model/roles -[session]: /boundary/docs/domain-model/sessions -[sessions]: /boundary/docs/domain-model/sessions -[session recordings]: /boundary/docs/domain-model/session-recordings -[filter]: /boundary/docs/workers/worker-tags -[worker filtering]: /boundary/docs/workers/worker-tags -[user]: /boundary/docs/domain-model/users -[users]: /boundary/docs/domain-model/users - -## Service API docs - -The following services are relevant to this resource: - -- [Target service](/boundary/api-docs/target-service) diff --git a/website/content/docs/domain-model/users.mdx b/website/content/docs/domain-model/users.mdx deleted file mode 100644 index 84da1c648..000000000 --- a/website/content/docs/domain-model/users.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -layout: docs -page_title: User resource -description: >- - Learn how the user resource identifies a person or entity for access control purposes. Understand how to assign groups and roles so users inherit permissions. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Users - -A user is a resource -that represents an individual person or entity -for the purposes of access control. -A user can be associated with zero or more [accounts][]. -A user authenticates to Boundary through an associated account -and must be associated with at least one account before they can access Boundary. - -A user is also a principal -which allows it to be assigned to [roles][]. -A user receives all the [permissions][] -of the roles assigned directly to the user -and all the permissions of roles assigned to [groups][] the user is in. - -Users can be defined at either a [global][] or [organization][] [scope][]. -A user can only be associated with accounts from an [auth method][] -configured in the same scope. - -## Attributes - -A user has the following configurable attributes: - -- `name` - (optional) - If set, the `name` must be unique within the user's immediate parent scope. - -- `description` - (optional) - -## Referenced by - -- [Account][] -- [Global][] -- [Group][] -- [Organization][] -- [Role][] - -[account]: /boundary/docs/domain-model/accounts -[accounts]: /boundary/docs/domain-model/accounts -[auth method]: /boundary/docs/domain-model/auth-methods -[global]: /boundary/docs/domain-model/scopes#global -[group]: /boundary/docs/domain-model/groups -[groups]: /boundary/docs/domain-model/groups -[organization]: /boundary/docs/domain-model/scopes#organizations -[permissions]: /boundary/docs/rbac -[role]: /boundary/docs/domain-model/roles -[roles]: /boundary/docs/domain-model/roles -[scope]: /boundary/docs/domain-model/scopes - -## Service API docs - -The following services are relevant to this resource: - -- [User service](/boundary/api-docs/user-service) diff --git a/website/content/docs/enterprise/automated-license-reporting.mdx b/website/content/docs/enterprise/automated-license-reporting.mdx deleted file mode 100644 index 60c7eeb6a..000000000 --- a/website/content/docs/enterprise/automated-license-reporting.mdx +++ /dev/null @@ -1,160 +0,0 @@ ---- -layout: docs -page_title: Automated license utilization reporting -description: >- - Learn what data HashiCorp collects to meter Enterprise license utilization. Enable reporting or opt out. Review sample payloads and logs. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Automated license utilization reporting - -Automated license utilization reporting sends license utilization data to HashiCorp without requiring you to manually collect and report them. It also lets you review your license usage with the monitoring solution you already use (for example Splunk, Datadog, or others) so you can optimize and manage your deployments. Use these reports to understand how much more you can deploy under your current contract, protect against overutilization, and budget for predicted consumption. - -Automated reporting shares the minimum data required to validate license utilization as defined in our contracts. They consist of mostly computed metrics and will never contain Personal Identifiable Information (PII) or other sensitive information. Automated reporting shares the data with HashiCorp using a secure, unidirectional HTTPS API and makes an auditable record in the product logs each time it submits a report. The reporting process is GDPR compliant and submits reports roughly once every 24 hours. - -## Enable automated reporting - -To enable automated reporting, you need to make sure that outbound network traffic is configured correctly and [upgrade](#2-upgrade) your enterprise product to a version that supports it. If your installation is air-gapped or network settings are not in place, automated reporting will not work. - -### 1. Allow outbound HTTPS traffic on port 443 - -Make sure that your network allows HTTPS egress on port 443 from https://reporting.hashicorp.services by allow-listing the following IP addresses: - -- 100.20.70.12 -- 35.166.5.222 -- 23.95.85.111 -- 44.215.244.1 - -### 2. Upgrade - -Upgrade to a release that supports license utilization reporting. These releases include: Release 0.13.0 and later. - -### 3. Check logs - -Automatic license utilization reporting will start sending data within roughly 24 hours. Check the product logs for records that the data sent successfully. -The records are sent as system events. -You can use [`file sync`](/boundary/docs/configuration/events/file) to configure a file where Boundary logs events. - -```json -{ - "id": "ZWqRK7XlnN", - "source": "https://hashicorp.com/boundary/Test_InitSysEventer", - "specversion": "1.0", - "type": "system", - "data": { - "version": "v0.1", - "op": "census.(censusJob).Run", - "data": { - "msg": "the following snapshot has been generated {\"snapshot_version\":1,\"id\":{\"ULID\":\"0001J50MM0QGR5KN21FVGYJVP9\",\"Timestamp\":\"2023-05-02T00:00:00Z\"},\"schema_version\":\"1.0.0\",\"service\":\"boundary\",\"process_id\":\"01H2B2KY823KYPVAVC02V65TZV\",\"metrics\":{\"boundary.sessions\":{\"key\":\"boundary.sessions\",\"value\":2,\"kind\":\"counter\",\"mode\":\"write\",\"description\":\"Number of pending sessions from previous day\"}}}" - } - }, - "datacontentype": "application/cloudevents", - "time": "2023-06-07T10:01:53.158933-04:00" -} -``` - -If your installation is air-gapped or your network doesn’t allow the correct egress, logs will show an error. - -```json -{ - "id": "VQyF5VzbTT", - "source": "https://hashicorp.com/boundary/Test_InitSysEventer", - "specversion": "1.0", - "type": "error", - "data": { - "error": "census.(censusJob).Run: unable to export snapshot through agent: unknown: error #0", - "error_fields": { - "Code": 0, - "Msg": "unable to export snapshot through agent", - "Op": "census.(censusJob).Run", - "Wrapped": null - }, - "id": "e_BgPs9hUMxw", - "version": "v0.1", - "op": "census.(censusJob).Run" - }, - "datacontentype": "application/cloudevents", - "time": "2023-06-07T10:21:48.221494-04:00" -} -``` - -In this case, reconfigure your network to allow egress and check back in roughly 24 hours. - -## Opt out - -If your installation is air-gapped or you want to manually collect and report on the same license utilization metrics, you can opt-out of automated reporting. - -Manually reporting these metrics can be time consuming. Opting out of automated reporting does not mean that you also opt out from sending license utilization metrics. Customers who opt out of automated reporting will still be required to manually collect and send license utilization metrics to HashiCorp. - -If you are considering opting out because you’re worried about the data, we strongly recommend that you review the [example payloads](#example-payloads) before opting out. If you have concerns with any of the automatically-reported data please bring them to your account manager. - -You have two options to opt out of automated reporting: -HCL configuration (recommended) -Environment variable (requires restart) - -Opting out in your product’s configuration file doesn’t require a system restart, and is the method we recommend. Add the following block to your `configuration.hcl` file. - -```hcl -reporting { - license { - enabled = false - } -} -``` - -If you need to, you can also opt out using an environment variable, which will provide a startup message confirming that you have disabled automated reporting. This option requires a system restart. - -Set the following environment variable. - -``` -$ export OPTOUT_LICENSE_REPORTING=true -``` - -Now restart your system. - -Check your product logs roughly 24 hours after opting out to make sure that the system isn’t trying to send reports. - -If your configuration file and environment variable differ, the environment variable setting will take precedence. - -## Example payloads - -HashiCorp collects the following utilization data as JSON payloads: -`exporter_version` - The version of the licensing exporter. - -Product payload description: - -Sessions is queried from the Boundary store, counts over the last X days. - -```json -"metrics": { - "boundary.sessions": { - "key": "boundary.sessions", - "value": 0, - "mode": "write" - } -} -``` -Product payload description: - -Monthly active users tracks the number of unique, active users in a month. -It is a cumulative value for the entire month. -The start time is included in the value, the end time is excluded. - -```json -"metrics": { - "boundary.monthly_active_users": { - "key": "boundary.monthly_active_users", - "value": 8, - "mode": "write", - } -}, -"metadata": { - "complete": "true", - "end_time": "2023-04-01T00:00:00Z", - "start_time": "2023-03-01T00.00:00Z" -} -``` \ No newline at end of file diff --git a/website/content/docs/enterprise/index.mdx b/website/content/docs/enterprise/index.mdx deleted file mode 100644 index d08165b5b..000000000 --- a/website/content/docs/enterprise/index.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: docs -page_title: Boundary Enterprise overview -description: >- - Learn about Boundary Enterprise. Discover resources to upgrade from Community Edition or request assistance. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary Enterprise - -Boundary Enterprise has features that are not available in the Community Edition of the product, as well as support. -The Enterprise version is self-managed in your environment, making it the perfect choice for agencies that are not able to use SaaS products for compliance or regulatory reasons. -The [Deploy Boundary](/boundary/docs/deploy/self-managed) section can help you build a self-managed production environment using Boundary Enterprise. - -You must obtain a [license](/boundary/docs/enterprise/licensing) to use Boundary Enterprise. - -You can enable or opt out of automated license reporting. -Refer to [Automated license utilization reporting](/boundary/docs/enterprise/automated-license-reporting) for more information. - -## Upgrade from Boundary Community Edition - -To upgrade from the Community Edition of Boundary to Boundary Enterprise, complete the following steps: - -1. [Contact sales](https://hashicorp.com/contact-sales) to procure a Boundary Enterprise license. -1. [Upgrade Boundary](/boundary/tutorials/self-managed-deployment/upgrade-version) using a Boundary Enterprise binary. -1. [Activate the license](/boundary/docs/enterprise/licensing). - -## Support - -The best way to get assistance is to open a ticket through our [support portal](https://support.hashicorp.com). -Sign in or create an account to create a ticket. - -For further assistance, scroll down the support page to find other resources including reference guides, deployment guides, tutorials, and a community forum. \ No newline at end of file diff --git a/website/content/docs/enterprise/licensing.mdx b/website/content/docs/enterprise/licensing.mdx deleted file mode 100644 index 201ab4094..000000000 --- a/website/content/docs/enterprise/licensing.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -layout: docs -page_title: License Boundary Enterprise -description: >- - Learn how to enable Boundary Enterprise with a valid license. Request access from an account team to enable enterprise features. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# License Boundary Enterprise - -The Boundary Enterprise binaries require a license key to enforce entitlements and time restrictions according to your contractual agreement. -Once purchased, your HashiCorp account team send you a valid Boundary license for environment activation. -If you don't yet have an acccount team, but are interested in Boundary Enterprise, you can [contact sales](https://www.hashicorp.com/contact-sales). - -Once you have received your valid Boundary license, there are two options for enabling Boundary Enterprise: - -1. You may set the enterprise license for Boundary using an environment variable. -Set the `BOUNDARY_LICENSE` environment variable to the license key value you received: - - `$ export BOUNDARY_LICENSE=02MV4UU43BK5...` - - or - - `$ BOUNDARY_LICENSE=file:///folder_path/license.hclic` - -1. You may specify the enterprise license key in the Boundary controller configuration using the `license` attribute in the `controller` block. -You can either specify the raw license key or the path to a file containing the license key. -Refer to the sample configurations below: - - **Sample #1** - - ```hcl - controller { - name = "controller" - description = "controller" - database { - url = "postgresql://boundary:PASSWORD@127.0.0.1:5432/boundary" - } - public_cluster_addr = "boundary.domain" - license = "file:///folder_path/license.hclic" - } - ``` - **Sample #2** - - ```hcl - controller { - name = "controller" - description = "controller" - database { - url = "postgresql://boundary:PASSWORD@127.0.0.1:5432/boundary" - } - public_cluster_addr = "boundary.domain" - license = "02MV4UU43BK5..." - } - ``` - - Refer to the [controller](/boundary/docs/configuration/controller) configuration documentation for more information. \ No newline at end of file diff --git a/website/content/docs/enterprise/supported-versions.mdx b/website/content/docs/enterprise/supported-versions.mdx deleted file mode 100644 index f2e35ddde..000000000 --- a/website/content/docs/enterprise/supported-versions.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -layout: docs -page_title: Boundary Enterprise supported version policies -description: >- - Learn about Enterprise support policies. Includes information about support periods, control plane and worker compatibility, and PostgreSQL database versions. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary Enterprise supported versions policy - -Self-managed Boundary Enterprise environments function optimally when workers and controllers are running the same version. -The following sections outline support periods, control plane & worker compatibility and Postgres DB version support. - -## Support periods - -Generally Available (GA) releases of Boundary Enterprise are consistent with [HashiCorp’s Support Period and End-of-Life (EOL) Policy](https://support.hashicorp.com/hc/en-us/articles/360021185113-Support-Period-and-End-of-Life-EOL-Policy). -Boundary Enterprise releases will be supported for up to two (2) years since release. -Eligible code-fixes and hot-fixes are provided via a new minor release (Z) on top of the latest “major release” branch, for up to two (2) releases from the most current major release. -A major release is identified by a change in the first (X) or second (Y) digit in the following versioning nomenclature: Version X.Y.Z. - -As a best practice, HashiCorp expects customers to stay current within two (2) releases from the latest major release in order to receive optimal support. -Release updates for Boundary Enterprise can be found at https://releases.hashicorp.com. - -## Control plane and worker compatibility - -Although major releases are supported as outlined within the support periods section above, within a Boundary Enterprise deployment API backwards compatibility is only supported between the control plane and workers from the prior “major release”. Using a worker with version that is newer than the control plane they connect to is not supported. -All workers within an environment must be on the same version. - -For example, Boundary workers version 0.17.0 are compatible with a Boundary control plane running Boundary 0.18.0. -However, they will not have compatibility once the control plane is updated to version 0.19.0 or above. -Customers are recommended to run the latest versions of Boundary in order to leverage the newest features and bug fixes. - -## Control plane and client/cli compatibility - -The supported version compatibility between Boundary's control plane and Boundary clients/CLI is the same as control plane and worker compatibility. Within a Boundary Enterprise deployment API backwards compatibility is only supported between the control plane and clients from the prior “major release”. Using clients on newer versions than the control plane they are registered with is not supported. - -For example, Boundary clients version 0.17.0 are compatible with a Boundary control plane running Boundary 0.18.0. -However, they will not have compatibility once the control plane is updated to version 0.19.0 or above. -Boundary clients version 0.19.0 are not compatible with a Boundary control plane running Boundary 0.18.0 or lower. -Customers are recommended to run the latest versions of Boundary in order to leverage the newest features and bug fixes. - -The Desktop client uses a different numbering scheme than the CLI and control plane. -Refer to the table for the Desktop version that corresponds to the control plane version. - -| Desktop version | Control plane version | -| --------------- | ----------- | -| 2.3.0 | 0.19.0 | -| 2.2.0 | 0.18.0 | -| 2.1.0 | 0.17.0 | -| 2.0.3 | 0.16.0 | -| 2.0.2 | 0.15.3 | -| 2.0.1 | 0.15.1 | -| 2.0.0 | 0.15.0 | - -For example, the Desktop version 2.1.0 is compatible with version 0.18.0 of the control plane. -But when the control plane is upgraded to 0.19.0, version 2.1.0 is no longer officially supported. - -To view the Desktop version along with the corresponding CLI and control plane version, click **Boundary**, and then click **About Boundary** in the Desktop client. - -## PostgreSQL support policy - -Boundary Enterprise will only support PostgreSQL version 13 and above at launch. -On an ongoing basis, Boundary will end support for a PostgreSQL version one (1) year prior to its EOL as documented on PostgreSQL’s versioning policy website. diff --git a/website/content/docs/errors/index.mdx b/website/content/docs/errors/index.mdx deleted file mode 100644 index f1c2c4a04..000000000 --- a/website/content/docs/errors/index.mdx +++ /dev/null @@ -1,124 +0,0 @@ ---- -layout: docs -page_title: Common error messages -description: >- - View common Boundary error messages and learn how to troubleshoot them. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Common error messages - -When installing and running Boundary, there are some common messages you might see. Usually they indicate an issue in your network or in your IAM -configuration. Some of the more common errors and their solutions are listed below. If you think you have found a bug, please report the issue on -[github](https://github.com/hashicorp/boundary/issues/new/choose). - -To troubleshoot specific issues with the Client Agent or transparent sessions, refer to the following topics: - -- [Troubleshoot issues with the Client Agent](/boundary/docs/client-agent/troubleshoot) -- [Client Agent software conflicts](/boundary/docs/client-agent/conflicting-software) -- [Transparent sessions interoperability matrix](/boundary/docs/interoperability-matrix) - -## Cannot connect to target: error from controller when performing authorize-session action against given target - -``` -$ boundary targets authorize-session -Error from controller when performing authorize-session action against given target - -Error information: - Kind: PermissionDenied - Message: Forbidden. - Status: 403 - context: Error from controller when performing authorize-session action against given target -``` - -This error message indicates the user does not have permission to access the requested target. Ensure the right IAM policies are configured for the -user attempting to create a session. Users need to belong to a role in the target's scope with an authorize-session grant to access the target. -The [Resource tables](/boundary/docs/rbac/resource-table) page is a great reference for how to configure -the right permission grants for Boundary roles. - -## Error from controller when performing authorize-session action against given target - -``` -$ boundary connect -target-id $TARGET_ID -Error from controller when performing authorize-session action against given target - -Error information: - Kind: FailedPrecondition - Message: No workers are available to handle this session, or all have been filtered. - Status: 400 - context: Error from controller when performing authorize-session action against given target -``` - -This error message indicates the worker is unable to proxy connections to the target. This could be caused by a number of issues. - -**Network misconfiguration:** ensure that worker, target, and clients have the required network configurations -- Targets - - Need to allow inbound connections from workers -- Workers - - Need to allow outbound connections to a Boundary trusted control point (either the Boundary control plane or another trusted worker) - - Need to allow outbound connections to targets - - Need to allow inbound connections from clients -- Client devices - - Need to allow outbound (client->worker) connections to workers - - The target is accessible by the Worker. The same error message is thrown if the target IP is either misconfigured or inaccessible by the worker - -**Worker tag and filter misconfiguration:** If your target is using a worker filter -- Ensure the worker filter selects the intended worker(s) to proxy connections to the target. -- Ensure your intended worker(s) have the intended tags to match your target's filter - -## Error from controller when performing authorize-session action against given target: unsupported credential *vault.baseCred - -``` -$ boundary connect ssh -target-id tssh_dmcFiVIakM -Error from controller when performing authorize-session action against given target - -Error information: - Kind: Internal - Message: targets.(Service).AuthorizeSession: targets.dynamicToWorkerCredential: unsupported credential *vault.baseCred: - parameter violation: error #100 - Status: 500 - context: Error from controller when performing authorize-session action against given target -``` -You may experience this error when attempting credential injection via Vault. Currently username_password and ssh_private_key credential -types are supported for credential injection, but only username_password can be set up using the Web UI. If you experience this error, -attempt to create the Vault ssh_private_key credential library using the CLI instead of the UI. - -## Error from controller when performing authorize-session action against given target: No ingress workers with valid next-hop paths could be found for this multi-hop session - -``` -boundary connect ssh -target-id ttcp_3DxjpP9Y3o Error from controller when performing authorize-session action against given target - -Error information: - Kind: FailedPrecondition - Message: No ingress workers with valid next-hop paths could be found for this multi-hop session. - Status: 400 - context: Error from controller when performing authorize-session action against given target -``` - -You may experience this error when deploying multiple Boundary controllers in high availability (HA) mode if you have not assigned a unique name to each controller. Ensure each controller has a [unique name](/boundary/docs/configuration/controller#name) in the controller stanza. - -## Error from worker when attempting to run worker in docker container on AWS: Error issuing command - -``` -Error: error creating storage bucket: {"kind":"Internal","message":"storage_buckets.(EntService).createInRepo: unable to create storage bucket: plugin.(Repository).CreateStorageBucket: in scope: global: db.DoTx: plugin.(Repository).CreateStorageBucket: storage.(ProxyClient).OnCreateStorageBucket: routing.(CommandClientProducer).IssueCommand: unknown, - unknown: error #0: rpc error: code = InvalidArgument desc = from worker w_xxx: from worker w_xxx: Error issuing command: storage_bucket.(storageService).OnCreateStorageBucket: plugin error, - external system issue: error #3001: rpc error: code = InvalidArgument desc = error getting S3 client: failed to retrieve credentials: failed to refresh cached credentials, no EC2 IMDS role found, operation error ec2imds: GetMetadata, canceled, context deadline exceeded\n"} -``` - -You may experience this error when deploying Boundary controllers in Docker when enabling IMDSv2. The fix is to extend the `http-put-response-hop-limit` option key to a value of 2 or greater. - -For more information, refer to [Boundary Client in Docker Additional Configuration When Using IMDSv2](https://support.hashicorp.com/hc/en-us/articles/36515134051859-Boundary-Client-in-Docker-Additional-Configuration-When-Using-IMDSv2).``` - -## More information - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. - -To troubleshoot specific issues with the Client Agent or transparent sessions, refer to the following topics: - -- [Troubleshoot issues with the Client Agent](/boundary/docs/client-agent/troubleshoot) -- [Client Agent software conflicts](/boundary/docs/client-agent/conflicting-software) -- [Transparent sessions interoperability matrix](/boundary/docs/interoperability-matrix) diff --git a/website/content/docs/filtering/index.mdx b/website/content/docs/filtering/index.mdx deleted file mode 100644 index 8b4453eba..000000000 --- a/website/content/docs/filtering/index.mdx +++ /dev/null @@ -1,205 +0,0 @@ ---- -layout: docs -page_title: Filtering -description: >- - Learn how to create filter expressions and use filters to match and find data or to reduce the set of resources returned when you list resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Filtering and listing resources - -Filter expressions can be used by various parts of Boundary to provide useful functionality. -Each filter expression has matching operators composed with selectors and values. -This page describes the overall syntax and provides information on the specific values available for filtering for various features, including examples. - -For more information about creating filters for events, workers, targets, and credential stores, refer to the following topics: - -- [Filter events](/boundary/docs/monitor/events/filter-events) -- [Route traffic through a worker](/boundary/docs/workers/worker-tags) -- [Configure a worker filter](/boundary/docs/workers/filters) -- [Filter managed groups](/boundary/docs/rbac/users/managed-groups) - -## Create expressions - -A single expression is a matching operator with a selector and value. They are -written in plain text format, and Boolean logic and parenthesization are -supported. In general whitespace is ignored, except within literal strings. - -### Matching operators - -All matching operators use a selector or value to choose what data should be -matched. Each endpoint that supports filtering accepts a potentially different -list of selectors and is detailed in the API documentation for those endpoints. - -```text -// Equality & Inequality checks - == "" - != "" - -// Emptiness checks - is empty - is not empty - -// Contains checks or Substring Matching -"" in -"" not in - contains "" - not contains "" - -// Regular Expression Matching - matches "" - not matches "" -``` - -### Selectors - -Selectors are used by matching operators to create an expression. Inputs to -filter expressions are JSON (or JSON-derived); selectors therefore use [JSON -Pointer](https://tools.ietf.org/html/rfc6901) to select values from the input. -Each selector must be enclosed in quotes and contain a valid JSON Pointer path, -including leading slash (`/`). - -```text -// Selects the value `zipzap` from the input `{ "foo": { "bar": "zipzap" } }` -"/foo/bar" -``` - -### Values - -Values are used by matching operators to create an expression. Values can be any -valid selector, a number, or a string. It is best practice to quote values. - -Numbers can be base 10 integers or floating point numbers. - -When quoting strings, they may either be enclosed in double quotes or backticks. -When enclosed in backticks they are treated as raw strings and escape sequences -such as `\n` will not be expanded. - -## Connect expressions - -There are several methods for connecting expressions, including - -- Logical `or` -- Logical `and` -- Logical `not` -- Grouping with parenthesis -- Matching expressions - -```text -// Logical Or - evaluates to true if either sub-expression does - or - -// Logical And - evaluates to true if both sub-expressions do - and - -// Logical Not - evaluates to true if the sub-expression does not -not - -// Grouping - Overrides normal precedence rules -( ) - -// Inspects data to check for a match - -``` - -Standard operator precedence can be expected for the various forms. For example, -the following two expressions would be equivalent. - -```text - and not or - -( and (not )) or -``` - -## Performance - -Filters are executed on the controllers and therefore will consume some amount -of CPU time on the controller. - -## Listing resources - -This section describes how to use filters when listing resources. This can be used -to reduce the returned set of resources when performing a list operation. - - - -This feature is intended to provide a userful service to clients; it does not -affect the database queries generated for the operation and as such is not -designed to provide greater efficiency. - - - -When you run a list action, you can specify a filter. It uses the standard filter syntax used -elsewhere in Boundary. Unless otherwise specified for a given list endpoint, the -list of items being returned is looped through and the filter is run on the JSON -representation of that item. A good way to see what that data looks like is by -looking at representative JSON output on the command line; for example, the -following is the output of `boundary targets list -scope-id p_1234567890 -format json` on a dev instance (piped through `jq` for readability): - -```json -[ - { - "id": "ttcp_1234567890", - "scope_id": "p_1234567890", - "scope": { - "id": "p_1234567890", - "type": "project", - "name": "Generated project scope", - "description": "Provides an initial project scope in Boundary", - "parent_scope_id": "o_1234567890" - }, - "name": "Generated target", - "description": "Provides an initial target in Boundary", - "created_time": "2021-02-24T22:19:50.640476Z", - "updated_time": "2021-02-24T22:19:50.640476Z", - "version": 1, - "type": "tcp", - "session_max_seconds": 28800, - "session_connection_limit": -1, - "attributes": { - "default_port": 22 - }, - "authorized_actions": [ - "read", - "update", - "delete", - "add-host-sources", - "set-host-sources", - "remove-host-sources", - "authorize-session" - ] - } -] -``` - -As the filter tests each entry being returned, it places the data under test -within the filter at `/item`. - -On the CLI a filter can be given via `-filter`. - -Double quotes are part of the filter syntax; when using the CLI, it is likely -easier to surround the filter with single quotes than to deal with escaping -double quotes. - -When using the HTTP API, it is a `filter` query parameter. - -Ensure that the query parameter is properly escaped! Most HTTP libraries will -do this for you. If you're having trouble, try using the `-output-curl-string` -flag with the Boundary CLI: - -``` -$ boundary targets list -scope-id p_1234567890 -format json -filter '"authorize-session" in "/item/authorized_actions"' -output-curl-string -curl -H "Authorization: Bearer $(boundary config get-token -keyring-type pass -token-name default)" -H "Content-Type: application/json" 'http://127.0.0.1:9200/v1/targets?filter=%22authorize-session%22+in+%22%2Fitem%2Fauthorized_actions%22&scope_id=p_1234567890' -``` - -Following are some examples. - -- Resources in which the user is allowed to run an "update" action: - `"update" in "/item/authorized_actions"` - -- Resources matching a name pattern, but only those within an organization - scope: `"/item/name" matches "groupa-*" and "/item/scope/type" == "org"` diff --git a/website/content/docs/getting-started/dev-mode/connect-to-dev-target.mdx b/website/content/docs/getting-started/dev-mode/connect-to-dev-target.mdx deleted file mode 100644 index eade95c56..000000000 --- a/website/content/docs/getting-started/dev-mode/connect-to-dev-target.mdx +++ /dev/null @@ -1,133 +0,0 @@ ---- -layout: docs -page_title: Connect to your first target -description: >- - Learn how to connect to targets using Boundary, and optionally use connect helpers, exec flag, SSH ProxyCommand, and Desktop Client features. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Connect to your first target - -The default target is a `tcp` target with a default port of `22` (which -corresponds to the default SSH port using TCP). This target is set up with -`127.0.0.1` as its address. When you execute `boundary connect` against this -target, a local authenticated proxy to the address is established on the -target's default port (`127.0.0.1:22`). - -```shell-session -$ boundary connect -target-id ttcp_1234567890 -``` - -There is also a secondary `tcp` target with (`ttcp_0987654321`) which uses host -sets instead of an address. The host sets for this target contain the default -host, which has the address 127.0.0.1. When you execute `boundary connect` -against this target, the single available host will be selected and a local -authenticated proxy to the host is also established on the target's default port -(127.0.0.1:22). - -```shell-session -boundary connect -target-id ttcp_0987654321 -``` - -For the purpose of this guide, both of these targets accomplish the same goal, -however they have different purposes. Refer to the -[domain model](/boundary/docs/domain-model/) documentation for more information. - -For the rest of this guide, assume the default is used. - -The output displays the address and port that your SSH client must utilize. In -the next section the `ssh` connect helper is used to make it easier to connect -to the target with a client. - -The `boundary connect` command has a number of notable options, such as -`-listen-port` to choose the port on which the connect command will listen for -an incoming connection. This is convenient for allowing Boundary to work with -applications that allow you to select the connection address but not the port. -For many applications, there are still some extra hurdles that can exist, which -is why connect helpers can be useful. - -The dev-mode default target allows you to make as many connections as you want -within the authorized session. When you are finished making connections, simply -`Ctrl-C/Command-C` the `boundary connect` process to shut down the session. - -## Select targets - -When using `boundary connect` you must identify the target used for connecting. -Convention in this documentation is to use the target ID because it refers to a -single explicit value, however other flags are supported: - -- `target-name`: The name of the target -- `target-scope-id`: The ID of the scope in which the target lives -- `target-scope-name`: The name of the scope in which the target lives - -Note however that these are not uniquely identifying, as names can be re-used -across scopes. As a result, when not using the target ID, you must use the -target's name in conjunction with the scope name or scope ID so that Boundary -can correctly identify the desired target. - -Here is an SSH example in dev mode: - -```shell-session -$ boundary connect ssh -target-name "Generated target" -target-scope-name "Generated project scope" -``` - -## Connect helpers - -Boundary includes connect helpers that automatically accept host SSH key prompts -for you. -These are written as `boundary connect ` and are supported for the following connection types: - -- HTTP -- Kubernetes -- PostgreSQL -- RDP -- SSH - -Refer to the [Connect helpers](/boundary/docs/targets/connections/connect-helpers) documentation for more information. - -## Built-in vs. exec - -In addition to the built-in connect helpers, `boundary connect` -can accommodate executing clients even when there is no built-in support -for a specific client using `-exec`. The `-exec` flag is a very powerful -tool, allowing you to wrap Boundary TCP sessions in your preferred -client. You can use this flag to create an authenticated proxy to almost -anything. - -Refer to the [Exec flag](/boundary/docs/targets/connections/exec-flag) documentation for more information. - -## SSH ProxyCommand - -SSH `ProxyCommand` lets you proxy an SSH connection to a target according to a configuration file that you create. -It can help simplify common developer and operator workflows. -You can configure the file to connect to the target ID or the target domain. - -Refer to the [SSH ProxyCommand](/boundary/docs/targets/connections/workflow-ssh-proxycommand) documentation for more information. - -## Desktop client - -While using the desktop client, choose the target and connect to retrieve local -proxy details. - - - -## Next steps - -See our [basic administration -workflow](/boundary/tutorials/community-administration) tutorials -for in depth discussion on managing scopes, targets, identities, and sessions. diff --git a/website/content/docs/getting-started/dev-mode/index.mdx b/website/content/docs/getting-started/dev-mode/index.mdx deleted file mode 100644 index d317bad4b..000000000 --- a/website/content/docs/getting-started/dev-mode/index.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: docs -page_title: What is dev mode? -description: >- - Learn about Boundary's dev mode and how it enables you to quickly deploy a temporary, pre-configured Boundary environment for testing and learning purposes. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# What is dev mode? - -Dev mode is a method for getting started with Boundary quickly for testing and -learning purposes. As the name implies, dev mode is not a production -installation method, and provides a way to get Boundary running with a Postgres -database easily. - -Do not use dev mode in a production environment, refer to the following sections for production-ready deployment methods: - -- [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) -- [Deploy HCP Boundary](/boundary/docs/hcp/get-started/deploy-and-login) -- [Terraform patterns for Boundary](/boundary/docs/deploy/terraform-patterns) - -Dev mode brings up a fully-functioning instance of Boundary, including: - -- A controller server -- A worker server -- A Postgres database - -These components should all be considered ephemeral - no data persistence occurs -across dev mode restarts. Along with these external components, dev mode also -creates several resources within Boundary to make it easier and faster to -connect to your first target: - -1. An org [scope](/boundary/docs/domain-model/scopes) and a project scope with a - default ID of `o_1234567890` and `p_1234567890` respectively. -1. A password [auth method](/boundary/docs/domain-model/auth-methods) with a - default auth method ID of `ampw_1234567890`. -1. An OIDC [auth method](/boundary/docs/domain-model/auth-methods) with a - default auth method ID of `amoidc_1234567890`. -1. An admin user with login name `admin` and password `password`. -1. An unprivileged user with login name `user` and password `password`. -1. A static [host catalog](/boundary/docs/domain-model/host-catalogs) with a - default ID of `hcst_1234567890`. -1. A static [host](/boundary/docs/domain-model/hosts) and [host - set](/boundary/docs/domain-model/host-sets) with default ID's of - `hst_1234567890` and `hsst_1234567890` respectively. -1. A TCP [target](/boundary/docs/domain-model/targets) with a default ID of - `ttcp_1234567890`, directly set-up with an address and port. -1. A TCP [target](/boundary/docs/domain-model/targets) with a default ID of - `ttcp_0987654321` using the previously mentioned static host set. - -The default ID suffixes can be overwritten or randomly generated, and there are -many other dev mode controls. To see a complete list of these override flags, -consult `boundary dev -h`. - -If you plan on provisioning a large number of resources in dev mode, it's -strongly recommended that users leverage our [Terraform Provider for -Boundary](https://github.com/hashicorp/terraform-provider-boundary) for managing -configuration of Boundary. This will simplify starting up and shutting down your -Boundary dev instance. - -## Requirements - -There are a few requirements for running dev mode: - -- [Docker](https://docs.docker.com/get-docker/) is installed -- A route to download the [Postgres Docker - image](https://hub.docker.com/_/postgres) is available or a local image cache - is available -- A [Boundary binary](/boundary/downloads) in your `$PATH` -- _Optionally_, an [installation of Boundary - Desktop](/boundary/tutorials/oss-getting-started/oss-getting-started-desktop-app) - if you want to use the desktop examples \ No newline at end of file diff --git a/website/content/docs/getting-started/dev-mode/run-and-login.mdx b/website/content/docs/getting-started/dev-mode/run-and-login.mdx deleted file mode 100644 index c921dc957..000000000 --- a/website/content/docs/getting-started/dev-mode/run-and-login.mdx +++ /dev/null @@ -1,123 +0,0 @@ ---- -layout: docs -page_title: Run and log in to Boundary -description: >- - Run and authenticate to Boundary in dev mode using pre-configured credentials. Dev mode lets you try Boundary in an environment with ephemeral sample resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Run and log in to Boundary - -To start Boundary in dev mode: - -```shell-session -$ boundary dev -``` - -## Log in to Boundary - -Boundary uses a predictable login name (`admin`) and password (`password`) in -dev mode. These can be overridden, or randomly generated, with flags to -`boundary dev`. The auth method resource in the global scope is set as the primary auth method for that scope. This allows you to omit the auth method ID when authenticating, enabling the short-form `boundary authenticate`: - - - - - -```shell-session -$ boundary authenticate -Please enter the login name (it will be hidden): -Please enter the password (it will be hidden): -``` - -If you are on Windows or macOS, the system password store will be used to store -the new token. On any other operating system, you may get an error indicating -that the token could not be stored. Boundary defaults to using -[pass](https://www.passwordstore.org/) on these machines, which uses [GNU -Privacy Guard](https://gnupg.org/) to encrypt values. If it is not available, -the token will be displayed and can be stored in a system of your choice and -passed in via the `BOUNDARY_TOKEN` environment variable. - -It is recommended to make use of `pass` or another alternative (such as any -implementation of the freedesktop.org Secret Service feature). Installation and -configuration of `pass` or other alternatives is beyond the scope of this -article; consult the documentation for `pass` or your specific OS distribution -help pages. - -Note that if `-format json` is used on this command, Boundary will not save the -token to the system password store. In this case, the authentication information -will only be printed to your terminal in JSON format. You can use the -`BOUNDARY_TOKEN` environment variable or `-token` flag to provide the token in -subsequent commands. - - - - - -To authenticate to the Admin UI, open -[http://127.0.0.1:9200](http://127.0.0.1:9200) in a browser and enter the login -name and password: - - - - - - - - -To authenticate using the Boundary desktop client, launch the Boundary desktop client -and connect to Boundary using [http://127.0.0.1:9200](http://127.0.0.1:9200), -then enter the login name and password: - - - - - - - - - -You can also use these overrides to configure the [Terraform provider for -Boundary](https://github.com/hashicorp/terraform-provider-boundary): - -```hcl -provider "boundary" { - base_url = "http://127.0.0.1:9200" - auth_method_id = "ampw_1234567890" - auth_method_username = "admin" - auth_method_password = "password" -} -``` - -Note in the example above we're setting `base_url` to `http` and not `https` as -the Boundary server does not use TLS in development mode. - - - - - -## Next steps - -See [connecting to your first -target](/boundary/docs/getting-started/dev-mode/connect-to-dev-target) for how to use Boundary to -run your first SSH session. diff --git a/website/content/docs/getting-started/index.mdx b/website/content/docs/getting-started/index.mdx deleted file mode 100644 index 584941c63..000000000 --- a/website/content/docs/getting-started/index.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: docs -page_title: Get started -description: >- - Understand the difference between HCP Boundary, Boundary Enterprise, and Boundary Community Edition to determine which is best for your needs. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Get started - -This section walks through how to get started with Boundary. You’ll learn how -Boundary provides secure access to private endpoints. - -There are three options to get started with Boundary: - -- **HCP Boundary** is a managed offering of Boundary that streamlines deployment and operations. - HCP Boundary allows users to run their own - worker proxies, preventing exposure of your network to HashiCorp or clients. - HCP Boundary has features that are not available in the Community Edition of the product, as well as support. - It has full feature-parity with Boundary Enterprise. - Review the [Get - started with HCP Boundary](/boundary/docs/getting-started/deploy-and-login) section to - learn more. -- **Boundary Enterprise** is a customer-hosted offering of Boundary with Enterprise support. -It has full feature-parity with HCP Boundary. -The Enterprise version is self-managed in your environment, making it the perfect choice for agencies that are not able to use SaaS products for compliance or regulatory reasons. -The [Deploy Boundary](/boundary/docs/deploy/self-managed) section can help you build a self-managed production environment using Boundary Enterprise. -- **Boundary Community Edition** is a free distribution of Boundary that users can run - in their own environments. The [Dev Mode quick start](/boundary/docs/getting-started/dev-mode) section discusses running Boundary - in Dev mode on your local machine, allowing you to get started with the Community Edition distribution quickly. - -We recommend you use the Boundary model that best meets your intended use case. -If you’re not sure what’s best for you, we recommend reviewing the [Getting -started with HCP Boundary](/boundary/docs/getting-started/deploy-and-login) section. - -## Key concepts - -Before getting started with Boundary, it's important to understand a few key concepts. -Please consult any of the following Boundary concepts pages to familiarize yourself with Boundary's architecture and terminology: - -- [Auditing](/boundary/docs/concepts/auditing) -- [Identity and access management](/boundary/docs/concepts/iam) -- [Credential management](/boundary/docs/concepts/credential-management) -- [Workers](/boundary/docs/concepts/workers) -- [Aliases](/boundary/docs/concepts/aliases) -- [Transparent sessions](/boundary/docs/concepts/transparent-sessions) diff --git a/website/content/docs/go-sdk/index.mdx b/website/content/docs/go-sdk/index.mdx deleted file mode 100644 index 2725d4b69..000000000 --- a/website/content/docs/go-sdk/index.mdx +++ /dev/null @@ -1,220 +0,0 @@ ---- -layout: docs -page_title: Go SDK overview -description: >- - Learn about Boundary's Go SDK. Use the Go SDK to authenticate to Boundary with an auth method or a recovery KMS workflow. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Go SDK - -Boundary has a Go SDK that sports full coverage of Boundary's API. This SDK is mostly auto-generated, so the patterns are predictable from package to package. For the most part, browsing [pkg.go.dev](https://pkg.go.dev/github.com/hashicorp/boundary/api) is a great way to get started. - - - -The Boundary API is configured with [rate limiting](/boundary/docs/api/rate-limiting), by default. -If the Boundary SDK client is unable to process a request due to a rate limit being met, it sends the API a `429` or `523` [status code](/boundary/docs/api#status-codes) and limits the request. -By default the client will wait for the amount of time specified in the `Retry-After` header and then try again for a maximum of 2 retries. - - - -Below, an example walks through using the SDK to authenticate against an auth method or perform recovery workflows. The patterns for creating a resource-typed client are the same across packages. - -## Authenticating to Boundary with the Go SDK - -Authenticating to Boundary starts with an [auth method](/boundary/docs/domain-model/auth-methods). An auth method provides -the basic identity delegation needed for Boundary to generate a token for a client. There are two primary methods for -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. - -### Auth method - -This is the most common way for a client to authenticate to Boundary. To demonstrate this, we'll -use the [authmethods](https://github.com/hashicorp/boundary/tree/main/api/authmethods) library to generate -a valid token for a client in Go. - -For this example, we're going to use the [password auth method](/boundary/docs/domain-model/auth-methods#password-auth-method-attributes). 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. - -First, we need to create a client from the Boundary API and set the address to reach Boundary: - -```go -// The default address points to the default dev mode address -client, err := api.NewClient(nil) -if err != nil { - return err -} -``` - -The [authenticate -method](https://github.com/hashicorp/boundary/blob/main/api/authmethods/authenticate.go) -uses a basic `map[string]interface{}` to pass credential information, in order -to eventually support multiple auth method types. For this example, we assume -you're using the password auth method, and so we create an attributes -map to pass this data: - -```go -credentials := map[string]interface{}{ - "login_name": "admin", - "password": "password", -} -``` - -Now let's create an auth method client using the base client from above: - -```go -amClient := 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 -with: - -```bash -$ boundary auth-methods list - -Auth Method information: - ID: ampw_1234567890 - Description: Provides initial administrative authentication into Boundary - Name: Generated global scope initial auth method - Type: password - Version: 1 -``` - -Note the ID in the output above, we're going to use that in the next step. - -We can use the credentials object we created to execute `Authenticate()` on this client: - -```go -authenticationResult, err := amClient.Authenticate(context.Background(), "ampw_1234567890", "login", credentials) -if err != nil { - return err -} -``` - -Lastly, let's update the original client with the token we got from the `Authenticate()` call: - -```go -// pass this client to any other resource specific API resources -client.SetToken(fmt.Sprint(authenticationResult.Attributes["token"])) -``` - -Putting this all together: - -```go -import ( - "context" - - "github.com/hashicorp/boundary/api" - "github.com/hashicorp/boundary/api/authmethods" -) - -credentials := map[string]interface{}{ - "login_name": "admin", - "password": "password", -} - -// The default address points to the default dev mode address -client, err := api.NewClient(nil) -if err != nil { - return err -} - -amClient := authmethods.NewClient(client) -authenticationResult, err := amClient.Authenticate(context.Background(), "ampw_1234567890", "login", credentials) -if err != nil { - return err -} - -// pass this client to any other resource specific API resources -client.SetToken(fmt.Sprint(authenticationResult.Attributes["token"])) -``` - -### Recovery KMS workflow - -The recovery KMS workflow allows you to use a valid [KMS -configuration](/boundary/docs/configuration/kms) to authenticate and authorize calls -within the Boundary API. For this example, we're going to assume you've read the -above and know how to get a base Boundary API client. - -Lets start with a valid KMS configuration for recovery that uses a hard coded -AEAD key as the basis. To authenticate with Boundary using this config we're -assuming you have an instance of Boundary that declares this as the recovery KMS -in the Boundary controller config as well. - -```go -import "github.com/hashicorp/boundary/sdk/wrapper" - -const kmsConfig = ` -kms "aead" { - purpose = "recovery" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "recovery_kms" -} -` -``` - -Now lets use this config to configure our Boundary API client: - -```go -w, err := wrapper.GetWrapperFromHcl(kmsConfig, "recovery") -if err != nil { - return err -} - -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`. - -Putting this all together: - -```go -import ( - "context" - - "github.com/hashicorp/boundary/api" - "github.com/hashicorp/boundary/sdk/wrapper" -) - -const kmsConfig = ` -kms "aead" { - purpose = "recovery" - aead_type = "aes-gcm" - key = "8fZBjCUfN0TzjEGLQldGY4+iE9AkOvCfjh7+p0GtRBQ=" - key_id = "recovery_kms" -} -` - -// The default address points to the default dev mode address -client, err := api.NewClient(nil) -if err != nil { - return err -} - -w, err := wrapper.GetWrapperFromHcl(kmsConfig, "recovery") -if err != nil { - return err -} - -client.SetRecoveryKmsWrapper(w) -``` diff --git a/website/content/docs/hcp/get-started/connect-to-target.mdx b/website/content/docs/hcp/get-started/connect-to-target.mdx deleted file mode 100644 index 73c8f134a..000000000 --- a/website/content/docs/hcp/get-started/connect-to-target.mdx +++ /dev/null @@ -1,138 +0,0 @@ ---- -layout: docs -page_title: Connect to a target -description: >- - Understand how to connect to targets using HCP Boundary. Learn how to select targets and use your choice of client and connect helpers to facilitate connections. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Connect to your first target - -The [Quick setup -wizard](/boundary/docs/hcp/get-started/deploy-and-login#log-in-to-hcp-boundary) -is the fastest way to onboard a target to HCP Boundary. - -![Setup Wizard](/img/setup-wizard-address-target.png) - -The Quick setup wizard creates a default `tcp` target with the address `127.0.0.1` and the port `22` (the default SSH port using TCP). -When you execute `boundary connect` against this target, Boundary establishes a local, authenticated proxy to the address on the target's default port (`127.0.0.1:22`.) - -![Setup Wizard](/img/quick-start-targets.png) - -## Connect using the CLI - -To connect to the initial EC2 Instances target: - -1. Copy the **EC2 Instances** target ID (such as `ttcp_ZnHEU9h8qX`). - -1. Open a terminal session. Export the Boundary **Cluster URL** as an environment - variable. - - ```shell-session - $ export BOUNDARY_ADDR= - ``` - -1. Connect to the target. - - ```shell-session - $ boundary connect -target-id ttcp_eTcZMueUYv - ``` - - The output displays the address and port that your SSH client must use. - -The `boundary connect` command has a number of notable options, such as -`-listen-port` to choose the port on which the connect command will listen for -an incoming connection. This is convenient for allowing Boundary to work with -applications that allow you to select the connection address, but not the port. -For some applications there are still some extra hurdles that can exist, which -is why connect helpers can be useful. - -The dev-mode default target allows you to make as many connections as you want -within the authorized session. When you finish making connections, a -`Ctrl-C/Command-C` to the `boundary connect` process shuts down the session. - -## Select targets - -When you use `boundary connect`, you must identify the target used for connecting. -The convention in this documentation is to use the target ID because it refers to a -single explicit value. - -Other supported flags include: - -- `target-name`: The name of the target -- `target-scope-id`: The ID of the scope in which the target lives -- `target-scope-name`: The name of the scope in which the target lives - -Note however that these other flags are not uniquely identifying, as you may reuse names -across scopes. Therefore, if you don't use the target ID, you must use the target's name in conjunction with the scope name or scope ID so that Boundary can identify the correct target. - -Here is an SSH example in dev-mode: - -```shell-session -$ boundary connect ssh -target-name "Generated target" -target-scope-name "Generated project scope" -``` - -## Connect helpers - -Connect helpers automatically accept host SSH key prompts for you. -The connect helper format is `boundary connect `. -Boundary includes connect helpers for the following connection types: - -- HTTP -- Kubernetes -- PostgreSQL -- RDP -- SSH - -Refer to the [Connect helpers](/boundary/docs/targets/connections/connect-helpers) documentation for more information. - -## Exec flag - -In addition to the built-in connect helpers, `boundary connect` -can accommodate executing clients even when there is no built-in support -for a specific client using `-exec`. The `-exec` flag is a powerful -tool, allowing you to wrap Boundary TCP sessions in your preferred -client. You can use this flag to create an authenticated proxy to almost -anything. - -Refer to the [Exec flag](/boundary/docs/targets/connections/exec-flag) documentation for more information. - -## SSH ProxyCommand - -SSH `ProxyCommand` lets you proxy an SSH connection to a target according to a configuration file that you create. -It can help simplify common developer and operator workflows. -You can configure the file to connect to the target ID or the target domain. - -Refer to the [SSH ProxyCommand](/boundary/docs/targets/connections/workflow-ssh-proxycommand) documentation for more information. - -## Desktop client - -While you use the desktop client, choose the target and connect to retrieve local -proxy details. - - - -## Tutorial - -Refer to the [Connect to your First Target](/boundary/tutorials/hcp-getting-started/hcp-getting-started-connect) tutorial for steps on how to create a host catalog, host set, and a target in Boundary. - -## Next steps - -Refer to the [basic administration -workflows](/boundary/tutorials/hcp-administration) tutorial series -for in depth discussions on managing scopes, targets, identities, and sessions. \ No newline at end of file diff --git a/website/content/docs/hcp/get-started/deploy-and-login.mdx b/website/content/docs/hcp/get-started/deploy-and-login.mdx deleted file mode 100644 index d818021e8..000000000 --- a/website/content/docs/hcp/get-started/deploy-and-login.mdx +++ /dev/null @@ -1,234 +0,0 @@ ---- -layout: docs -page_title: Deploy and log in -description: >- - Learn about the requirements for using HCP Boundary. Deploy a cluster, and log in for the first time. Discover resources to learn more. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Deploy HCP Boundary and log in - -HCP Boundary provides secure access to remote hosts and infrastructure -endpoints. Boundary enables secure connectivity to cloud service catalogs, -on-premise infrastructure, and Kubernetes clusters without needing to manage any -of the underlying systems or operations. - -## Requirements - -The Getting Started section uses HCP Boundary, a HashiCorp hosted and -fully-managed version of the Boundary product. - -To get started with HCP Boundary, users need: - -- A [HashiCorp Cloud Platform](https://portal.cloud.hashicorp.com/sign-up) - account -- [Installation](/boundary/tutorials/hcp-getting-started/hcp-getting-started-install) - of the Boundary CLI -- A [Boundary binary](/boundary/downloads) in your `$PATH` -- Optionally, an [installation of Boundary - Desktop](/boundary/tutorials/hcp-getting-started/hcp-getting-started-desktop-app) - -If you prefer to test Boundary on your local machine, refer to [Run and log in to Boundary](/boundary/docs/oss/installing/run-and-login). For more information on Boundary -Community Edition and self-managed installations, refer to [Which edition of Boundary is right for me?](/boundary/docs/what-is-boundary#which-edition-of-boundary-is-right-for-me) or [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed). - -## Deploy an HCP Boundary cluster - -To deploy an HCP Boundary instance: - -1. Navigate to [HashiCorp Cloud Platform](https://portal.cloud.hashicorp.com/) - and login using your credentials. - -1. Click the **Boundary** tab, and then and click **Deploy Boundary** on the - right-hand pane. - -1. Fill out the following form details: - - - Instance Name - - Administrator Username - - Administrator Password - -1. Store the administrator username and password in a safe location. These - credentials will be used when authenticating using the Admin Console, CLI, or - Terraform. - -1. Click **Deploy** after completing the form. It may take a few minutes to - initialize the HCP Boundary instance. - -![Deploy boundary](/img/hcp-deploy-form.png) - -## Log in to HCP Boundary - -Once the deployment is complete, the HCP Boundary instance can be accessed -directly from the HCP Boundary portal using the credentials created during -setup. - -1. From the HCP Boundary portal page, click the **Open Admin UI** button. - -1. Enter the admin username and password you created when you deployed the new -instance, and click **Authenticate**. - -1. The **Welcome to Boundary** setup wizard will launch automatically. - - There are two options for Boundary’s initial setup: - - - Quick setup - - Manual - - ![Setup Wizard](/img/setup-wizard.png) - - The **Quick setup** is recommended for new users, and generates a set of initial - resources to assist in connecting to your first target. - - ![Setup Wizard](/img/setup-wizard-address-target.png) - - The **Manual** setup drops the user directly into Boundary, without any - provisioned resources. - - Upon completion of the setup wizard, you will be logged into your HCP Boundary - instance's Global scope via the web UI. This is the default scope for all new - Boundary clusters. - - - - -1. In the HCP Boundary portal, open the **Boundary Overview** page, and click -the **copy icon** in the **Copy this into Boundary Desktop** section. This -copies your environment’s Boundary **Cluster URL**. - -1. Open a terminal session and set the `BOUNDARY_ADDR` environment variable to -the copied Cluster URL. - - ```shell-session - $ export BOUNDARY_ADDR= - ``` - -1. Log in with the administrator credentials you created when you deployed the -HCP Boundary instance. - - ```shell-session - $ boundary authenticate - Please enter the login name (it will be hidden): - Please enter the password (it will be hidden): - - Authentication information: - Account ID: acctpw_VOeNSFX8pQ - Auth Method ID: ampw_wxzojlKJLN - Expiration Time: Mon, 13 Feb 2023 12:35:32 MST - User ID: u_1vUkf5fPs9 - - The token was successfully stored in the chosen keyring and is not displayed here. - ``` - -You are now logged into your HCP Boundary instance's Global scope via the CLI. -This is the default scope for all new Boundary clusters. - -If you are on Windows or macOS, the system password store will be used to store -the new token. On any other operating system, you may get an error indicating -that the token could not be stored. Boundary defaults to using -[pass](https://www.passwordstore.org/) on these machines, which uses [GNU -Privacy Guard](https://gnupg.org/) to encrypt values. If it is not available, -the token will be displayed and can be stored in a system of your choice and -passed in via the `BOUNDARY_TOKEN` environment variable. - -It is recommended to make use of `pass` or another alternative (such as any -implementation of the freedesktop.org Secret Service feature). Installation and -configuration of `pass` or other alternatives is beyond the scope of this -article; consult the documentation for `pass` or your specific OS distribution -help pages. - -Note that if `-format json` is used on this command, Boundary will not save the -token to the system password store. In this case, the authentication information -will only be printed to your terminal in JSON format. You can use the -`BOUNDARY_TOKEN` environment variable or `-token` flag to provide the token in -subsequent commands. - - - - - -[Boundary Desktop](/boundary/downloads) can be used to -connect to HCP Boundary. - -To get started with Boundary Desktop: - -1. Install Boundary Desktop. -1. Enter your HCP Boundary instance’s Cluster URL. -1. Enter the login name and password. - -To authenticate using the Boundary desktop client, launch Boundary desktop -client and connect to boundary to using your environment's **Cluster URL**. - -You can find your environment’s Cluster URL In the HCP portal. Open the -**Boundary Overview** page and click the **copy icon** in the **Copy this into -Boundary Desktop** section. This copies your environment’s Boundary **Cluster -URL**. - -The admin username and password from instance creation can be used for initial -setup. Once additional users have been created, they can also log in to HCP -Boundary using the Boundary Desktop app. - - - - - - - - -You can also use these overrides to configure the [Terraform provider for -Boundary](https://registry.terraform.io/providers/hashicorp/boundary): - -```hcl -provider "boundary" { - base_url = "hcp-boundary-cluster-url" - auth_method_id = "auth-method-id" - auth_method_username = "admin-username" - auth_method_password = "admin-password" -} -``` - -To find your environment’s `base_url`: - -1. In the HCP portal, open the **Boundary Overview** page. -1. Click the **copy icon** in the **Copy this into Boundary Desktop** section. - This copies your environment’s Boundary **Cluster URL**. - -To find your environment’s default `auth_method_id`: - -1. In your HCP Boundary portal, click the Admin UI button. -1. Log in to the Admin Console by entering the admin username and password you - created when you deployed the HCP Boundary instance, and click **Authenticate**. -1. Click **Auth Methods**. -1. Click the **copy icon** for the Password **Auth Method ID** - - - - -## Tutorial - -- Refer to the [Create a Boundary Instance on - HCP](/boundary/tutorials/hcp-getting-started/hcp-getting-started-create) - tutorial to learn how to deploy a Boundary instance. -- Refer to the [Install Boundary - Desktop](/boundary/tutorials/hcp-getting-started/hcp-getting-started-desktop-app) - tutorial to learn how to use the Boundary desktop to connect to a running HCP - Boundary instance. - - -## Next steps - -Refer to [Connect to your first target](/boundary/docs/getting-started/connect-to-target) to use HCP Boundary to run your first SSH session. diff --git a/website/content/docs/hcp/index.mdx b/website/content/docs/hcp/index.mdx deleted file mode 100644 index 4246dd039..000000000 --- a/website/content/docs/hcp/index.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: docs -page_title: HCP Boundary overview -description: >- - Discover resources to learn about and try HCP Boundary. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# HCP Boundary - -HCP Boundary provides secure access to remote hosts and infrastructure endpoints. -Boundary enables secure connectivity to cloud service catalogs, on-premises infrastructure, and Kubernetes clusters without needing to manage any of the underlying systems or operations. - -HCP Boundary reduces the complexity of managing access to infrastructure, and enables the user to simply log in, select the desired host or system, and connect. -HCP Boundary handles the routing, connections, and credential brokering on the backend. -Users securely connect to their remote systems or hosts without exposing a credential, address, or network. - -To try out HCP Boundary, proceed to [Deploy and login](/boundary/docs/hcp/get-started/deploy-and-login). \ No newline at end of file diff --git a/website/content/docs/hosts/aws.mdx b/website/content/docs/hosts/aws.mdx deleted file mode 100644 index bdc8820e7..000000000 --- a/website/content/docs/hosts/aws.mdx +++ /dev/null @@ -1,399 +0,0 @@ ---- -layout: docs -page_title: AWS dynamic host catalogs -description: >- - Use dynamic host catalogs to automatically discover AWS EC2 instances and add them as hosts. Create a host catalog and host set for AWS resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -# AWS dynamic host catalogs -Boundary uses dynamic host catalogs to automatically discover AWS EC2 instances and add them as hosts. - -## Create a host catalog to connect with AWS -Boundary uses plugins to integrate with a variety of providers. To use -a dynamic host catalog to integrate with AWS, you create a host catalog of the `plugin` type -and set the `plugin-name` value to `aws`. You must also provide the specific -fields needed for Boundary to authenticate with AWS. - -Boundary supports two methods of authenticating to AWS: - -1. **Static credentials** using an IAM user and its access key -1. **Dynamic credentials** using credentials generated by `AssumeRole` - -HashiCorp recommends using dynamic credentials when possible. Select a credential type to continue: - - - - -### Required IAM Privileges - -Boundary needs the following IAM privileges, at the very least, to be attached to a configured IAM user. - -Configure `DescribeInstances` to `*`. `DescribeInstances` cannot be scoped to a resource ARN. - -Example policy: - -```json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "ec2:DescribeInstances" - ], - "Effect": "Allow", - "Resource": "*" - } - ] -} -``` - -To allow static credential rotation, add the `iam:GetUser`, `iam:CreateAccessKey`, and `iam:DeleteAccessKey` policies: - -```json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "iam:DeleteAccessKey", - "iam:GetUser", - "iam:CreateAccessKey" - ], - "Effect": "Allow", - "Resource": "arn:aws:iam::123456789012:user/JohnDoe" - } - ] -} -``` - - - - - - - [Cross-account access](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) for AWS IAM roles is not currently supported. - - - -This feature requires a self-managed Boundary [worker](/boundary/docs/deploy/self-managed/deploy-workers). - -To set up a dynamic host catalog using an AWS role, a self-managed worker must assume the role. You must assign the role to the self-managed worker AWS instance, and then supply a worker filter that matches the AWS worker when you set up the dynamic host catalog. - -Perform the following steps to set up a host catalog using [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html): - -1. Deploy a self-managed worker in your AWS account. The worker must be in the same VPC as the hosts you want to access using the dynamic host catalog. Consider [adding worker tags](/boundary/docs/workers/worker-tags) to make it easier to route traffic through it using a worker filter later on. - -1. Create an IAM role with the `AmazonEC2ReadOnlyAccess` policy attached, or define a custom policy with the `ec2:DescribeInstances` action allowed for all resources. This policy should contain the following, at least: - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "ec2:DescribeInstances" - ], - "Effect": "Allow", - "Resource": "*" - } - ] - } - ``` - - Refer to the AWS [Create a role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) documentation to learn more. - -1. Attach the role to the IAM instance configured as your self-managed worker. Follow the AWS [Attach an IAM role to an instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attach-iam-role.html) to learn more. - -1. Continue to the next step to set up the dynamic host catalog. You must add a worker tag when setting up the host catalog to route traffic through the worker that is assuming the role. - - - - -Complete the following steps to create a dynamic host catalog for AWS: - - - - -1. Log in to Boundary. -1. Select the org, and then select the project you want to create a host catalog for. -1. Select **Host Catalogs**. -1. Select **New Host Catalog**. -1. Complete the following fields: - - **Name**: (Optional) An optional name for identification purposes. - If you enter a name, it must be unique. - - **Description**: (Optional) An optional description of the host catalog for identification purposes. - - **Type**: (Required) Select **Dynamic** to create a dynamic host catalog. - - **Provider**: (Required) Select **AWS** to create a dynamic host catalog for your AWS resources. - - **AWS Region**: (Required) Enter the AWS region of the hosts you want to add to the host catalog. - - **Credential type**: (Required) Select the type of credential you want to use to authenticate to the host catalog. The required fields for configuring the host catalog vary depending on whether you configure static or dynamic credentials: - - **Use an access key (Static Credentials)**: Authenticates to the host catalog using an access key that you generate in AWS. - - **Use Assume Role (Dynamic Credentials)**: Authenticates to the host catalog using credentials that AWS `AssumeRole` generates. - - - - - - **Access Key ID**: (Required) The access key ID for the IAM user to use with this host catalog. - - **Secret Access Key**: (Required) The secret access key for the IAM user to use with this host catalog. - - **Worker Filter**: (Optional) An optional filter to route requests to a designated worker. - - - - - - **Role ARN**: (Required) - The AWS role ARN to use for `AssumeRole` authentication. - If you provide a `role_arn` value, you must also set `disable_credential_rotation` to `true`. - - **Role external ID**: (Optional) - The external ID for the `AssumeRole` provider. - - **Role session name**: (Optional) - The session name for the `AssumeRole` provider. - - **Role tags**: (Optional) - The key-value pair tags for the `AssumeRole` provider. - - **Worker Filter**: (Optional) - An optional filter to route requests to a designated worker. The filter should match the worker assigned the IAM role. - - **Disable credential rotation**: - When enabled, Boundary does not rotate the credentials with AWS automatically. - Credential rotation is automatically disabled when you use dynamic credentials. - - - - -1. Select **Save**. - - - - -The required fields for creating a dynamic host catalog depend on whether you configure static or dynamic credentials. - - - - -1. Log in to Boundary. -1. Use the following command to create a dynamic host catalog for AWS using static credentials: - - ```shell-session - $ boundary host-catalogs create plugin \ - -scope-id $BOUNDARY_PROJECT_ID \ - -plugin-name aws \ - -attr disable_credential_rotation=true \ - -attr region=us-east-1 \ - -secret access_key_id=env://AWS_ACCESS_KEY_ID \ - -secret secret_access_key=env://AWS_SECRET_ACCESS_KEY - ``` - - The `scope-id` and `plugin-name` fields are required when you create a - dynamic host catalog. - - The fields following the `attr` and `secret` flags are specific to AWS and are required by - Boundary for authentication. - Replace the values in the command with the following required AWS secrets and any attributes you want to associate with the host catalog: - - - `disable_credential_rotation`: When set to `true`, Boundary does not rotate the credentials with AWS automatically. - - `region`: The region to configure the host catalog for. All host sets in this catalog are configured for this region. - - `access_key_id`: The access key ID for the IAM user to use with this host catalog. - - `secret_access_key`: The secret access key for the IAM user to use with this host catalog. - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - -1. Log in to Boundary. -1. Use the following command to create a dynamic host catalog using dynamic credentials: - - ```shell-session - $ boundary host-catalogs create plugin \ - -scope-id $BOUNDARY_PROJECT_ID \ - -plugin-name aws \ - -attr disable_credential_rotation=true \ - -attr region=us-east-1 \ - -attr role_arn=AWS_ROLE_ARN_VALUE \ - -attr role_external_id=AWS_ROLE_EXTERNAL_ID_VALUE \ - -attr role_session_name=AWS_ROLE_SESSION_NAME_VALUE \ - -attr role_tags=AWS_ROLE_TAGS_VALUE \ - -worker-filter '"aws" in "/tags/type"' - ``` - - The `scope-id` and `plugin-name` fields are required when you create a dynamic host catalog. - - Replace the values in the command with the following required AWS secrets and any attributes you want to associate with the host catalog: - - - `disable_credential_rotation`: When set to `true`, Boundary does not rotate the credentials with AWS automatically. - You must disable credential rotation to use dynamic credentials. - - `region`: The region to configure the host catalog for. All host sets in this catalog will be configured for this region. - - `role_arn`: The AWS role ARN used for `AssumeRole` authentication. If you provide a `role_arn` value, you must also set `disable_credential_rotation` to `true`. - - `role_external_id`: The external ID that you configured for the `AssumeRole` provider. - - `role_session_name`: The session name that you configured for the `AssumeRole` provider. - - `role_tags`: The key-value pair tags that you configured for the `AssumeRole` provider. - - `worker-filter` A boolean expression to filter which workers can handle dynamic host catalog commands for this host catalog. This should match a valid filter expression for the self-managed worker deployed in AWS. Refer to worker [Filter examples](/boundary/docs/workers/worker-tags#filter-workers-using-tags) to learn more. - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - - - - -The required fields for creating a dynamic host catalog depend on whether you configure static or dynamic credentials. - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - - - - -Apply the following Terraform policy: - - ```hcl - resource "boundary_host_catalog_plugin" "aws_host_catalog" { - name = "AWS Catalog" - description = "AWS Host Catalog" - scope_id = boundary_scope.project.id - plugin_name = "aws" - - # recommended to pass in aws secrets using a file() or using environment variables - attributes_json = jsonencode({ - "region" = "eu-west-2", - "disable_credential_rotation" = true }) - secrets_json = jsonencode({ - "access_key_id" = "AWS_ACCESS_KEY_ID_VALUE", - "secret_access_key" = "AWS_SECRET_ACCESS_KEY_VALUE"}) - } - ``` - -The `scope_id` and `plugin_name` fields are required when you create a dynamic host catalog. - -Replace the values in the configuration with the following required AWS secrets and any attributes you want to associate with the host catalog: - - - `disable_credential_rotation`: When set to `true`, Boundary does not rotate the credentials with AWS automatically. - - `region`: The region to configure the host catalog for. All host sets in this catalog are configured for this region. - - `access_key_id`: The access key ID for the IAM user to use with this host catalog. - - `secret_access_key`: The secret access key for the IAM user to use with this host catalog. - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - -Apply the following Terraform policy: - - ```hcl - resource "boundary_host_catalog_plugin" "aws_host_catalog" { - name = "AWS Catalog" - description = "AWS Host Catalog" - scope_id = boundary_scope.project.id - plugin_name = "aws" - worker_filter = "\"aws\" in \"/tags/type\"" - - attributes_json = jsonencode({ - "region" = "eu-west-2", - "disable_credential_rotation" = true, - "role_arn" = "AWS_ROLE_ARN_VALUE", - "role_external_id" = "AWS_ROLE_EXTERNAL_ID_VALUE", - "role_session_name" = "AWS_ROLE_SESSION_NAME_VALUE", - "role_tags" = "AWS_ROLE_TAGS_VALUE" - }) - } - ``` - -The `scope_id` and `plugin_name` fields are required when you create a dynamic host catalog. - -Replace the values in the configuration with the following required AWS secrets and any attributes you want to associate with the host catalog: - - - `worker_filter`: A boolean expression to filter which workers can handle dynamic host catalog commands for this host catalog. This should match a valid filter expression for the self-managed worker deployed in AWS. Refer to worker [Filter examples](/boundary/docs/workers/worker-tags#filter-workers-using-tags) to learn more. - - `disable_credential_rotation`: When set to `true`, Boundary does not rotate the credentials with AWS automatically. - You must disable credential rotation to use dynamic credentials. - - `region`: The region to configure the host catalog for. All host sets in this catalog are configured for this region. - - `role_arn`: The AWS role ARN used for `AssumeRole` authentication. If you provide a `role_arn` value, you must also set `disable_credential_rotation` to `true`. - - `role_external_id`: The external ID that you configured for the `AssumeRole` provider. - - `role_session_name`: The session name that you configured for the `AssumeRole` provider. - - `role_tags`: The key-value pair tags that you configured for the `AssumeRole` provider. - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - - - -## Create a host set to connect with AWS - -[Host sets](/boundary/docs/domain-model/host-sets) specify which AWS filters should be used to identify the discovered hosts that should be added as members. - -Complete the following steps to create a host set: - - - - -1. Log in to Boundary. -1. Select the org, and then select the project you want to create a host set for. -1. Select **Host Catalogs**. -1. Select the dynamic host catalog to which you want add a host set. -1. Click the **Host Sets** tab, and then click **New**. -1. Complete the following fields: - - **Name**: (Optional) An optional name for identification purposes. - If you enter a name, it must be unique. - - **Description**: (Optional) An optional description of the host catalog for identification purposes. -1. Click **Save**. - - - - - -1. Log in to Boundary. -1. Use the following command to create a host set: - - ```shell-session - $ boundary host-sets create plugin \ - -host-catalog-id $BOUNDARY_HOST_CATALOG_ID \ - -attr filters=tag-key=foo,bar \ - -attr filters=tag-key=baz - ``` - - The `host-catalog-id` value is a required field that specifies in which host catalog to create this host set. - - Like with the host catalog, the fields passed in after the `attr` flag are specific to AWS. - - The `filters` field contains string filters in the format key=val1,val2. The key corresponds to a filter option, and the value(s) are a comma-separated list. - For a list of filter options, refer to the [describe-instances in the AWS CLI reference](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html). - - When the values in a single `filters` field are separated by a comma, either can be true for the host to match. - When multiple filters fields are provided, they must all match for a host to match. - In the example above, an instance must have either tags `foo` or `bar`, and must have the tag `baz`. - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - -Apply the following Terraform policy: - -```hcl -resource "boundary_host_set_plugin" "aws_host_set" { - name = "AWS Host Set" - description = "AWS Host Set" - host_catalog_id = boundary_host_catalog_plugin.aws_host_catalog.id - attributes_json = jsonencode({ - "filters" = ["tag-key=foo,bar", "tag-key=baz"] }) -} -``` - -The `host_catalog_id` value is a required field that specifies in which host catalog to create this host set. - -The `filters` field contains string filters in the format key=val1,val2. -The key corresponds to a filter option, and the value(s) are a comma-separated list. -For a list of filter options, refer to the [describe-instances in the AWS CLI reference](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html). - -When the values in a single `filters` field are separated by a comma, either can be true for the host to match. -When multiple filters fields are provided, they must all match for a host to match. -In the example above, an instance must have either tags `foo` or `bar`, and must have the tag `baz`. - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - -## More information - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. diff --git a/website/content/docs/hosts/azure.mdx b/website/content/docs/hosts/azure.mdx deleted file mode 100644 index 7c2583691..000000000 --- a/website/content/docs/hosts/azure.mdx +++ /dev/null @@ -1,205 +0,0 @@ ---- -layout: docs -page_title: Azure dynamic host catalogs -description: >- - Use dynamic host catalogs to automatically discover Azure resources and add them as hosts. Create a host catalog and host set for Azure resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -# Azure dynamic host catalogs -Boundary uses dynamic host catalogs to automatically discover Azure resources available through Azure Resource Manager (ARM) and add them as hosts. - -The Azure plugin supports Azure Virtual Machines and Azure Virtual Machine Scale Sets in both Flexible and Uniform orchestration modes. -It automatically discovers any individual virtual machines included in the scale sets and adds them as hosts. - -## Create a host catalog to connect with Azure -Boundary uses plugins to integrate with a variety of providers. To use a -dynamic host catalog to integrate with Azure, you create a host catalog of the -`plugin` type and set the `plugin-name` value to `azure`. You must also provide the -specific fields needed for Boundary to authenticate with Azure. - -Complete the following steps to create a dynamic host catalog for Azure: - - - - -1. Log in to Boundary. -1. Select the org, and then select the project you want to create a host catalog for. -1. Select **Host Catalogs**. -1. Select **New Host Catalog**. -1. Complete the following fields: - - **Name**: (Optional) An optional name for identification purposes. - If you enter a name, it must be unique. - - **Description**: (Optional) An optional description of the host catalog for identification purposes. - - **Type**: (Required) Select **Dynamic** to create a dynamic host catalog. - - **Provider**: (Required) Select **Azure** to create a dynamic host catalog for your Azure resources. - - **Tenant/Directory ID**: (Required) The ARM tenant (directory) ID for your Azure Active Directory application. - - **Subscription ID**: (Required) The ARM subscription ID for the subscription that has read access. - - **Client/Application ID**: (Required) The client (application) ID of the Azure service principal that Boundary should use to authenticate and discover hosts. - - **Client Secret Value**: (Required) The ARM client secret value that Azure generates for authentication. - - **Disable credential rotation**: When enabled, Boundary does not rotate the credentials with Azure automatically. - Azure host catalogs do not currently support credential rotation. -1. Select **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create a dynamic host catalog for Azure: - - ```shell-session - $ boundary host-catalogs create plugin \ - -scope-id $PROJECT_ID \ - -plugin-name azure \ - -attr disable_credential_rotation=true \ - -attr tenant_id=env://ARM_TENANT_ID \ - -attr subscription_id=env://ARM_SUBSCRIPTION_ID \ - -attr client_id=env://ARM_CLIENT_ID \ - -secret secret_value=env://ARM_CLIENT_SECRET - ``` - - The `scope-id` and `plugin-name` fields are required when you create a dynamic host catalog. - - The fields following the `attr` and `secret` flags are specific to Azure and are required by Boundary for authentication. - - - `disable_credential_rotation`: When set to `true`, Boundary does not rotate the credentials automatically. - Azure host catalogs do not currently support credential rotation. - - `tenant_id`: (Required) The ARM tenant (directory) ID for your Azure Active Directory application. - - `subscription_id`: (Required) The ARM subscription ID for the subscription that has read access. - - `client_id`: (Required) The client (application) ID of the Azure service principal that Boundary should use to authenticate and discover hosts. - - `secret_value`: (Required) The ARM client secret value that Azure generates for authentication. - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Apply the following Terraform policy: - -```hcl -resource "boundary_host_catalog_plugin" "azure_host_catalog" { - name = "Azure Catalog" - description = "Azure Host Catalog" - scope_id = boundary_scope.project.id - plugin_name = "azure" - - # recommended to pass in aws secrets using a file() or using environment variables - attributes_json = jsonencode({ - "tenant_id" = "ARM_TENANT_ID", - "subscription_id" = "ARM_SUBSCRIPTION_ID" - "client_id" = "ARM_CLIENT_ID" - "disable_credential_rotation" = true }) - secrets_json = jsonencode({ - "secret_value" = "ARM_CLIENT_SECRET"}) -} -``` - -The `scope_id` and `plugin_name` fields are required when you create a -dynamic host catalog. - -The fields following the `attributes_json` and `secrets_json` flags are specific to Azure and are required by - Boundary for authentication. - -- `disable_credential_rotation`: When set to `true`, Boundary does not rotate the credentials automatically. -Azure host catalogs do not currently support credential rotation. -- `tenant_id`: (Required) The ARM tenant (directory) ID for your Azure Active Directory application. -- `subscription_id`: (Required) The ARM subscription ID for the subscription that has read access. -- `client_id`: (Required) The client (application) ID of the Azure service principal that Boundary should use to authenticate and discover hosts. -- `secret_value`: (Required) The ARM client secret value that Azure generates for authentication. - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - -## Create a host set to connect with Azure -[Host sets](/boundary/docs/domain-model/host-sets) specify which Azure -Resource Manager (ARM) filters should be used to identify the discovered hosts that should be added as members. - -Complete the following steps to create a host set: - - - - -1. Log in to Boundary. -1. Select the org, and then select the project you want to create a host set for. -1. Select **Host Catalogs**. -1. Select the dynamic host catalog to which you want add a host set. -1. Click the **Host Sets** tab, and then click **New**. -1. Complete the following fields: - - **Name**: (Optional) An optional name for identification purposes. - If you enter a name, it must be unique. - - **Description**: (Optional) An optional description of the host catalog for identification purposes. -1. Click **Save**. - - - - - -1. Log in to Boundary. -1. Use the following command to create a host set: - - ```shell-session - $ boundary host-sets create plugin \ - -name database \ - -host-catalog-id $HOST_CATALOG_ID \ - -attr filter="tagName eq 'service-type' and tagValue eq 'database'" - ``` - - The `host-catalog-id` value is a required field that specifies in which host catalog to create this host set. - - The fields following the `attr` flag are specific to Azure. - - The `filter` field represents the ARM filter used to select resources that should be a part of this host set. - There are some limitations with the filtering syntax. - Specifically, when you use tags, other types of filters (such as on resource type) are not allowed. - As a result, it is generally useful to filter directly on tag names or values as in the following examples: - - `tagName eq 'application'` - - `tagName eq 'application' and tagValue eq 'app2'` - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Apply the following Terraform policy: - -```hcl - resource "boundary_host_set_plugin" "azure_host_set" { - name = "Azure Set" - description = "Azure Host Set" - host_catalog_id = boundary_scope.azure_host_catalog.id - attributes_json = jsonencode({ - "filter" = "tagName eq 'service-type' and tagValue eq 'database'" }) -} -``` - -The `host_catalog_id` value is a required field that specifies in which host catalog to - create this host set. - -The fields following the `attributes_json` flag are specific to Azure. - -The `filter` field represents the ARM filter used to select resources that should be a part of - this host set. There are some limitations with the filtering syntax. - Specifically, when you use tags, other types of filters (such as on resource - type) are not allowed. As a result, it is generally useful to filter - directly on tag names or values as in the following examples: - - `tagName eq 'application'` - - `tagName eq 'application' and tagValue eq 'app2'` - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - -## More information - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. \ No newline at end of file diff --git a/website/content/docs/hosts/gcp.mdx b/website/content/docs/hosts/gcp.mdx deleted file mode 100644 index 8184740af..000000000 --- a/website/content/docs/hosts/gcp.mdx +++ /dev/null @@ -1,503 +0,0 @@ ---- -layout: docs -page_title: GCP dynamic host catalogs -description: >- - Use dynamic host catalogs to automatically discover GCP Compute Engine VM instances and add them as hosts. Create a host catalog and host set for GCP resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -# GCP dynamic host catalogs - -Boundary uses dynamic host catalogs to automatically discover GCP Compute Engine VM instances and add them as hosts. - -You can authenticate to GCP using a service account, service impersonation, or the GCP Application Default Credentials (ADC): - - - - -To authenticate using the service account, create a service account in GCP and download the private key file. - -The service account should have the following roles: - - - `roles/compute.viewer`: (Required) To list Compute Engine VM instance in the project. - - `roles/iam.serviceAccountKeyAdmin`: (Optional) To rotate the service account key if `disable_credential_rotation` is set to `false`. - - - - - -Service account impersonation allows Boundary to authenticate with GCP using a service account that impersonates another service account. -Impersonation is useful when you want to restrict the permissions of the service account Boundary uses. - -You must create two service accounts to authenticate using service impersonation: - -- `Base service account`: The service account Boundary uses to authenticate with GCP. The service account should have the following roles: - - `roles/iam.serviceAccountTokenCreator`: (Required) To create a token for the target service account. - - `roles/iam.serviceAccountKeyAdmin`: (Optional) To rotate the service account key if `disable_credential_rotation` is set to `false`. - -- `Target service account`: The service account to impersonate. The service account should have the following role: - - `roles/compute.viewer`: (Required) To list Compute Engine VM instance in the project. - - - - - -If you run Boundary on a GCP VM instance, you can use Application Default Credentials (ADC) to authenticate with GCP. -Boundary uses the service account associated with the VM instance to authenticate with GCP. - - - - - - -If you downloaded the private key from GCP, it may contain extra `/n` characters that cause an error. -You can use the `jq` utility to remove the extra `/n` characters. For example: - -```shell-session -$ jq -r '.private_key' my-gcp-private-key.json -``` - - - -## Create a host catalog to connect with GCP - -Boundary uses plugins to integrate with a variety of providers. -To use a dynamic host catalog to integrate with GCP, you create a host catalog of the `plugin` type and set the `plugin-name` value to `gcp`. - -You must also provide the specific fields needed for Boundary to authenticate with GCP. -The required fields depend on whether you authenticate using the service account, service impersonation, or the GCP Application Default Credentials (ADC). - -Complete the following steps to create a dynamic host catalog for GCP: - - - - -1. Log in to Boundary. -1. Select the org, and then select the project you want to create a host catalog for. -1. Select **Host Catalogs**. -1. Select **New Host Catalog**. -1. Complete the following fields: - - **Name**: (Optional) An optional description of the host catalog for identification purposes. - If you enter a name, it must be unique. - - **Description**: (Optional) An optional description of the host catalog for identification purposes. - - **Type**: (Required) Select **Dynamic** to create a dynamic host catalog. - - **Provider**: (Required) Select **GCP** to create a dynamic host catalog for your GCP resources. - - The required fields for creating a dynamic host catalog depend on the type of authentication you configure. - - - - - - **Project ID**: (Required) The project ID of any instances that you want to add to the host catalog. - - **Zone**: (Required) The GCP zone of the instances that you want to add to the host catalog. - - **Client Email**: The unique email address that is used to identify the service account. - It is required when you authenticate using the service account. - - **Target Service Account ID**: Skip this field when you configure authentication using the service account. - It is only used when you authenticate using service account impersonation. - - **Private Key ID**: The unique identifier of the private key. - It is required when you authenticate using the service account. - - **Private Key**: The private key used to obtain an OAuth 2.0 access token. - The key must be PEM encoded. - It is required when you authenticate using the service account. - - If you downloaded the private key from GCP, it may contain extra `/n` characters that cause an error. - You can use `jq` to remove the extra `/n` characters. - - - - - - - **Project ID**: (Required) The project ID of any instances that you want to add to the host catalog. - - **Zone**: (Required) The GCP zone of the instances that you want to add to the host catalog. - - **Client Email**: The unique email address that is used to identify the base service account. - It is required when you authenticate using service account impersonation. - - **Target Service Account ID**: The unique identifier for the service account that is impersonated. - It is required when you authenticate using service account impersonation. - - **Private Key ID**: The unique identifier of the private key for the base service account. - It is required when you authenticate using service account impersonation. - - **Private Key**: The private key used to obtain an OAuth 2.0 access token. - The key must be PEM encoded. - It is required when you authenticate using service account impersonation. - - If you downloaded the private key from GCP, it may contain extra `/n` characters that cause an error. - You can use `jq` to remove the extra `/n` characters. - - - - - - - **Project ID**: (Required) The project ID of any instances that you want to add to the host catalog. - - **Zone**: (Required) The GCP zone of the instances that you want to add to the host catalog. - - **Client Email**: (Optional) The unique email address that is used to identify the base service account. - - **Target Service Account ID**: Skip this field when you configure authentication using the ADC. - It is only used when you authenticate using service account impersonation. - - **Private Key ID**: (Optional) The unique identifier of the private key for the base service account. - - **Private Key**: (Optional) The private key used to obtain an OAuth 2.0 access token. - The key must be PEM encoded. - - If you downloaded the private key from GCP, it may contain extra `/n` characters that cause an error. - You can use `jq` to remove the extra `/n` characters. - - - - - - **Worker Filter**: (Optional) An optional filter to route requests to a designated worker. - - **Disable credential rotation**: (Optional) When enabled, Boundary does not rotate the credentials with GCP automatically. -1. Select **Save**. - - - - - -The required fields for creating a dynamic host catalog depend on the type of authentication you configure. - - - - -1. Log in to Boundary. -1. Use the following command to create a dynamic host catalog for GCP: - - ```shell-session - $ boundary host-catalogs create plugin \ - -scope-id $BOUNDARY_PROJECT_ID \ - -plugin-name gcp \ - -attr disable_credential_rotation=true \ - -attr zone=us-central1-a \ - -attr project_id=env://GCP_PROJECT_ID \ - -attr client_email=env://CLIENT_EMAIL \ - -secret private_key_id=env://PRIVATE_KEY_ID \ - -secret private_key=file://$PRIVATE_KEY_FILE_PATH - ``` - - The `scope-id` and `plugin-name` fields are required when you create a dynamic host catalog. - - The fields following the `attr` and `secret` flags are specific to GCP and are used by Boundary for authentication: - - - `disable_credential_rotation`: (Optional) When set to `true`, Boundary does not rotate the credentials automatically. - - `zone`: (Required) The GCP zone of the instances that you want to add to the host catalog. - - `project_id`: (Required) The project ID of any instances that you want to add to the host catalog. - - `client_email`: The unique email address that is used to identify the service account. - It is required when you authenticate using the service account. - - `private_key_id`: The unique identifier of the private key. - It is required when you authenticate using the service account. - - `private_key`: The private key used to obtain an OAuth 2.0 access token. - The key must be PEM encoded. - It is required when you authenticate using the service account. - - If you downloaded the private key from GCP, it may contain extra `/n` characters that cause an error. - You can use `jq` to remove the extra `/n` characters. - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - -1. Log in to Boundary. -1. Use the following command to create a dynamic host catalog for GCP: - - ```shell-session - $ boundary host-catalogs create plugin \ - -scope-id $BOUNDARY_PROJECT_ID \ - -plugin-name gcp \ - -attr disable_credential_rotation=true \ - -attr zone=us-central1-a \ - -attr project_id=env://GCP_PROJECT_ID \ - -attr client_email=env://BASE_SERVICE_ACCOUNT_EMAIL \ - -attr target_service_account_id=env://TARGET_SERVICE_ACCOUNT_EMAIL \ - -secret private_key_id=env://BASE_SERVICE_ACCOUNT_PRIVATE_KEY_ID \ - -secret private_key=file://$BASE_SERVICE_ACCOUNT_PRIVATE_KEY_FILE_PATH - ``` - - The `scope-id` and `plugin-name` fields are required when you create a dynamic host catalog. - - The fields following the `attr` and `secret` flags are specific to GCP and are required by Boundary for authentication: - - - `disable_credential_rotation`: (Optional) When set to `true`, Boundary does not rotate the credentials with GCP automatically. - - `zone`: (Required) The deployment area within a region. - All host sets in this catalog are configured for this zone. - - `project_id`: (Required) The project ID associated with the service account. - - `client_email`: The email address used to uniquely identify the base service account. - It is required when you authenticate using service account impersonation. - - `target_service_account_id`: The email address of the service account to impersonate. - It is required when you authenticate using service account impersonation. - - `private_key_id`: The ID of the private key for the base service account to use with this host catalog. - It is required when you authenticate using service account impersonation. - - `private_key`: The private key for the base service account to use with this host catalog. - It is required when you authenticate using service account impersonation. - - If you downloaded the private key from GCP, it may contain extra `/n` characters that cause an error. - You can use `jq` to remove the extra `/n` characters. - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - -1. Log in to Boundary. -1. Use the following command to create a dynamic host catalog for GCP: - - ```shell-session - $ boundary host-catalogs create plugin \ - -scope-id $BOUNDARY_PROJECT_ID \ - -plugin-name gcp \ - -attr disable_credential_rotation=true \ - -attr zone=us-central1-a \ - -attr project_id=env://GCP_PROJECT_ID - ``` - - The `scope-id` and `plugin-name` fields are required when you create a dynamic host catalog. - - The fields following the `attr` flag are specific to GCP and are required by Boundary for authentication: - - - `disable_credential_rotation`: (Optional) When set to `true`, Boundary does not rotate the credentials with GCP automatically. - - `zone`: (Required) The deployment area within a region. - All host sets in this catalog are configured for this zone. - - `project_id`: (Required) The project ID associated with the service account. - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - - - - -The required fields for creating a dynamic host catalog depend on the type of authentication you configure. - - - - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Apply the following Terraform policy: - - ```hcl - resource "boundary_host_catalog_plugin" "gcp_host_catalog" { - name = "GCP Catalog" - description = "GCP Host Catalog" - scope_id = boundary_scope.project.id - plugin_name = "gcp" - - # recommended to pass in aws secrets using a file() or using environment variables - attributes_json = jsonencode({ - "zone" = "us-central1-a ", - "project_id" = "GCP_PROJECT_ID_VALUE", - "client_email" = "GCP_CLIENT_EMAIL_VALUE", - "disable_credential_rotation" = true }) - secrets_json = jsonencode({ - "private_key_id" = "GCP_PRIVATE_KEY_ID_VALUE", - "private_key" = "GCP_PRIVATE_KEY_VALUE"}) - } - ``` - - The `scope_id` and `plugin_name` fields are required when you create a dynamic host catalog. - - The fields following `attributes_json` and `secrets_json` are specific to GCP and are used by Boundary for authentication: - - - `zone`: (Required) The GCP zone of the instances that you want to add to the host catalog. - - `project_id`: (Required) The project ID of any instances that you want to add to the host catalog. - - `client_email`: The unique email address that is used to identify the service account. - It is required when you authenticate using the service account. - - `disable_credential_rotation`: (Optional) When set to `true`, Boundary does not rotate the credentials automatically. - - `private_key_id`: The unique identifier of the private key. - It is required when you authenticate using the service account. - - `private_key`: The private key used to obtain an OAuth 2.0 access token. - The key must be PEM encoded. - It is required when you authenticate using the service account. - - If you downloaded the private key from GCP, it may contain extra `/n` characters that cause an error. - You can use `jq` to remove the extra `/n` characters. - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Apply the following Terraform policy: - - ```hcl - resource "boundary_host_catalog_plugin" "gcp_host_catalog" { - name = "GCP Catalog" - description = "GCP Host Catalog" - scope_id = boundary_scope.project.id - plugin_name = "gcp" - - # recommended to pass in aws secrets using a file() or using environment variables - attributes_json = jsonencode({ - "zone" = "us-central1-a ", - "project_id" = "GCP_PROJECT_ID_VALUE", - "client_email" = "GCP_BASE_SERVICE_ACCOUNT_EMAIL_VALUE", - "target_service_account_id" = "GCP_TARGET_SERVICE_ACCOUNT_EMAIL_VALUE", - "disable_credential_rotation" = true }) - secrets_json = jsonencode({ - "private_key_id" = "BASE_SERVICE_ACCOUNT_PRIVATE_KEY_ID_VALUE", - "private_key" = "BASE_SERVICE_ACCOUNT_PRIVATE_KEY_VALUE"}) - } - ``` - -The `scope_id` and `plugin_name` fields are required when you create a dynamic host catalog. - -The fields following `attributes_json` and `secrets_json` are specific to GCP and are required by Boundary for authentication: - -- `zone`: (Required) The deployment area within a region. All host sets in this - catalog are configured for this zone. -- `project_id`: (Required) The project ID associated with the service account. -- `client_email`: The email address used to uniquely identify the base service account. -It is required when you authenticate using service account impersonation. -- `target_service_account_id`: The email address of the service account to impersonate. -It is required when you authenticate using service account impersonation. -- `disable_credential_rotation`: (Optional) When set to `true`, Boundary does not rotate the credentials with GCP automatically. -- `private_key_id`: The ID of the private key for the base service account to use with this host catalog. -It is required when you authenticate using service account impersonation. -- `private_key`: The private key for the base service account to use with this host catalog. -It is required when you authenticate using service account impersonation. - - If you downloaded the private key from GCP, it may contain extra `/n` characters that cause an error. - You can use `jq` to remove the extra `/n` characters. - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Apply the following Terraform policy: - - ```hcl - resource "boundary_host_catalog_plugin" "gcp_host_catalog" { - name = "GCP Catalog" - description = "GCP Host Catalog" - scope_id = boundary_scope.project.id - plugin_name = "gcp" - - # recommended to pass in aws secrets using a file() or using environment variables - attributes_json = jsonencode({ - "zone" = "us-central1-a ", - "project_id" = "GCP_PROJECT_ID_VALUE", - "disable_credential_rotation" = true }) - } - ``` - -The `scope_id` and `plugin_name` fields are required when you create a dynamic host catalog. - -The fields following `attributes_json` are specific to GCP and are required by Boundary for authentication: - -- `zone`: (Required) The GCP zone of the instances that you want to add to the host catalog. -- `project_id`: (Required) The project ID of any instances that you want to add to the host catalog. -- `disable_credential_rotation`: (Optional) When set to `true`, Boundary does not rotate the credentials with GCP automatically. - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - - - - -## Create a host set to connect with GCP - -[Host sets](/boundary/docs/domain-model/host-sets) specify which GCP filters Boundary should use to identify which discovered hosts that should be added as members. - -Complete the following steps to create a host set: - - - - -1. Log in to Boundary. -1. Select the org, and then select the project you want to create a host set for. -1. Select **Host Catalogs**. -1. Select the dynamic host catalog to which you want to add a host set. -1. Click the **Host Sets** tab, and then click **New**. -1. Complete the following fields: - - - **Name**: (Optional) An optional name for identification purposes. - If you enter a name, it must be unique. - - **Description**: (Optional) An optional description of the host catalog for identification purposes. -1. Click **Save**. - - - - - -1. Log in to Boundary. -1. Use the following command to create a host set: - - ```shell-session - $ boundary host-sets create plugin \ - -host-catalog-id $BOUNDARY_HOST_CATALOG_ID \ - -attr filters=labels.env:prod \ - -attr filters=labels.app:web - ``` - - The `host-catalog-id` value is a required field that specifies in which host catalog to create this host set. - - Like with the host catalog, the fields passed in after the `attr` flag are specific to GCP. - - The `filters` field contains string filters in the format key=val. - The key corresponds to a filter option. - For a list of filter options, refer to the [GCP API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instances/list#filter). - When you apply multiple filters, the plugin applies a logical `AND` operation to combine the filters. - - If there is no explicit instance status filter, the default status is set to `status="RUNNING"`. - The default status ensures that Boundary only filters running instances, saving time when processing results. - - We recommend using labels as filters because they are more flexible and can filter on multiple values as in the following examples: - - - `-attr filters=labels.env:dev` - - `-attr filters="labels.env:prod AND labels.app:web"` - - Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Apply the following Terraform policy: - -```hcl -resource "boundary_host_set_plugin" "gcp_host_set" { - name = "GCP Host Set" - description = "GCP Host Set" - host_catalog_id = boundary_host_catalog_plugin.gcp_host_catalog.id - attributes_json = jsonencode({ - "filters" = ["labels.env:prod", "labels.app:web"] }) -} -``` - -The `host_catalog_id` value is a required field that specifies in which host catalog to create this host set. - -Like with the host catalog, the fields passed in after `attributes_json` flag are specific to GCP. - -The `filters` field contains string filters in the format key=val1. -The key corresponds to a filter option. -For a list of filter options, refer to the [GCP API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instances/list#filter). -When you apply multiple filters, the plugin applies a logical `AND` operation to combine the filters. - -If there is no explicit instance status filter, the default status is set to `status="RUNNING"`. -The default status ensures that Boundary only filters running instances, saving time when processing results. - -We recommend using labels as filters because they are more flexible and can filter on multiple values as in the following examples: - - - `-attr filters=labels.env:dev` - - `-attr filters="labels.env:prod AND labels.app:web"` - -Refer to the [host catalogs](/boundary/docs/domain-model/host-catalogs) domain model documentation for additional fields that you can use when you create host catalogs. - - - - -## More information - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. \ No newline at end of file diff --git a/website/content/docs/hosts/index.mdx b/website/content/docs/hosts/index.mdx deleted file mode 100644 index eb7fc9a7b..000000000 --- a/website/content/docs/hosts/index.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -layout: docs -page_title: Host discovery -description: >- - Learn how host discovery workflows let Boundary discover and onboard new resources. Understand how dynamic host catalogs enable automated host discovery. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Host discovery - -Traditionally, connecting to remote hosts and services requires knowledge of -the endpoint’s connection info (e.g. the IP address and port of the service). -This creates complexity when managing the onboarding of new resources at scale -or dealing with dynamic, ephemeral services whose connection info frequently changes. -Furthermore, the increased operational overhead of having to manually manage and update -new or old resources is an inefficient use of time. -Resources should be tagged appropriately so that, depending on their identity, users -automatically have the resources that they are allowed to connect to. - -**Host discovery** focuses on automating the process of onboarding new or -changed infrastructure resources – and their connection info – to Boundary -as hosts. - -## Automated host discovery in Boundary - -Boundary supports target/host discovery in three primary workflows: - -**[Manual configuration](/boundary/tutorials/community-administration/community-manage-targets)**: -Boundary administrators can manually configure static -hosts and targets via the administrator UI and CLI. Manual configuration of -targets with static hosts requires knowledge of the IP address or endpoint used -to connect to a host. - -**[Host discovery via configuration as code with Terraform](/boundary/tutorials/get-started-community/community-get-started-config)**: -Boundary is fully programmatically instrumented and the discovery and configuration of new -infrastructure targets can be automated with -[Boundary’s Terraform provider](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs). -This allows for dynamic configuration of a host and target without the need -for prior knowledge of the target’s connection info. - -**[Runtime host discovery via dynamic host catalogs](/boundary/tutorials/host-management/aws-host-catalogs)**: -Boundary dynamic host catalogs automate the ingestion of resources from -infrastructure providers into Boundary. Boundary hosts are automatically -created, updated and added to host sets in order to reflect the connection -information maintained in these providers. This removes the need to know -host connection info or reapply infrastructure as code templates to -configure new or changed resources. - -## Dynamic host catalogs -Dynamic host catalogs are an agentless workflow for Boundary to -securely query infrastructure providers at runtime to discover and configure -new services. Boundary administrators can define rules for which -external resources should be ingested into the catalog by -[creating a host set](/boundary/docs/domain-model/host-sets) -with an attributes filter. These filters specify which discovered hosts -should be members of the host set. - -Boundary currently supports dynamic host catalog for AWS, Azure, and GCP. -We will continue to grow this ecosystem to support additional providers. - -## Next steps -To get started with dynamic host catalogs, refer to the following topics: - -- [AWS dynamic host catalogs](/boundary/docs/hosts/aws) -- [Azure dynamic host catalogs](/boundary/docs/hosts/azure) -- [GCP dynamic host catalogs](/boundary/docs/hosts/gcp) diff --git a/website/content/docs/index.mdx b/website/content/docs/index.mdx deleted file mode 100644 index 334968f39..000000000 --- a/website/content/docs/index.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: docs -page_title: Documentation -description: Boundary reference documentation ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary reference documentation - -Welcome to the Boundary reference documentation. The documentation is reference -material for Boundary's concepts and available features. - -- Get started using Boundary with our [step-by-step onboarding tutorials](/boundary/tutorials). -- Deploy Boundary in a [self-managed environment](/boundary/docs/deploy/self-managed) or on the [HashiCorp Cloud Platform (HCP)](/boundary/docs/hcp/get-started/deploy-and-login). -- Learn about [what Boundary is](/boundary/docs/what-is-boundary/) or refer to the [domain model](/boundary/docs/domain-model) to understand how identities, permissions, and resources are organized. diff --git a/website/content/docs/interoperability-matrix/index.mdx b/website/content/docs/interoperability-matrix/index.mdx deleted file mode 100644 index fc93c77f4..000000000 --- a/website/content/docs/interoperability-matrix/index.mdx +++ /dev/null @@ -1,182 +0,0 @@ ---- -layout: docs -page_title: Transparent sessions interoperability matrix -description: >- - Refer to a matrix to determine which partner products and applications are supported by the Boundary components required for transparent sessions. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Transparent sessions interoperability matrix - -@include 'alerts/enterprise-only.mdx' - -Transparent sessions require you to use the Boundary installer to install the Boundary Client Agent. -To support a variety of use cases, HashiCorp verifies implementation and integrations with partner products and applications. - -HashiCorp engineering has tested and confirmed that you can use the following third-party products with the specific versions of the Boundary installer, Boundary Client Agent, and any operating systems listed in the table. -Transparent sessions may operate with other versions of the products listed below or with other products, but they have not been tested. -We will update the list of products as we test them. - - - -On May 27, 2025 new versions of the Boundary Client Agent and installer were released with a numbering scheme that more closely follows Boundary's release numbers. -Those versions were released as 0.19.5 to match the major Boundary version 0.19.x. -Going forward, the Client Agent and installer will use the same major number as the current Boundary release. -Any patches or updates will be reflected in the minor number. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ProductBoundary installer versionsBoundary Client Agent versionsOS versions testedConflicts and workarounds
- CloudFlare WARP -

- MacOS version: 2025.2.600.0 -
- Windows version: 2025.2.600.0 -
- 0.1.4, 0.19.5, 0.19.6 - - 0.1.4, 0.19.5, 0.19.6 - - MacOS: 14.6, 15.3 -
- Windows: 10 Pro, 11 Pro -
- Refer to Conflicting software -
- Huntress -

- MacOS version: 0.14.10 -
- Windows version: 0.14.14 -
- 0.1.4 - - 0.1.4 - - MacOS: 14.6, 15.3 -
- Windows: 10 Pro, 11 Pro -
- Refer to Conflicting software -
- Microsoft Defender for Endpoint - - 0.1.4, 0.19.5, 0.19.6 - - 0.1.4, 0.19.5, 0.19.6 - - MacOS: 14, 15 -
- Windows: 10, 11 Pro -
-   -
- Palo Alto GlobalProtect - - 0.19.5, 0.19.6 - - 0.19.5, 0.19.6 - - MacOS: 14, 15 -
- Windows: 10, 11 -
-   -
- SentinelOne Singularity - - 0.1.4, 0.19.5, 0.19.6 - - 0.1.4, 0.19.5, 0.19.6 - - MacOS: 14, 15.2 -
- Windows: 10, 11 -
-   -
- Zscaler ZPA - - 0.1.4, 0.19.5, 0.19.6 - - 0.1.4, 0.19.5, 0.19.6 - - MacOS: 15 -
- Windows: 11 -
-   -
- -## More information - -For more information, refer to the following topics: - -- [Transparent sessions](/boundary/docs/concepts/transparent-sessions) -- [Configure transparent sessions](/boundary/docs/targets/configuration/configure-transparent-sessions) -- [Boundary Client Agent](/boundary/docs/client-agent) \ No newline at end of file diff --git a/website/content/docs/monitor/events/common.mdx b/website/content/docs/monitor/events/common.mdx deleted file mode 100644 index 591483e56..000000000 --- a/website/content/docs/monitor/events/common.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: docs -page_title: Controller/worker - events - common sink parameters -description: |- - The common sink parameters for all sink types. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Common sink parameters - -@include '/configuration-reference/events/common-sink-intro.mdx' - -## `audit_config` parameters - -@include '/configuration-reference/events/common-audit_config-parameters.mdx' - -### `audit_filter_overrides` parameters - -@include '/configuration-reference/events/common-audit_filter_overrides-parameters.mdx' - -## `audit_config` examples - -@include '/configuration-reference/events/common-audit_config-examples.mdx' diff --git a/website/content/docs/monitor/events/events.mdx b/website/content/docs/monitor/events/events.mdx deleted file mode 100644 index 268f542b1..000000000 --- a/website/content/docs/monitor/events/events.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: docs -page_title: Controller/worker - events -description: |- - The events stanza configures events-specific parameters. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `events` stanza - -@include '/configuration-reference/events/events-stanza-intro.mdx' - -## Default events stanza - -@include '/configuration-reference/events/default-events-stanza.mdx' diff --git a/website/content/docs/monitor/events/file.mdx b/website/content/docs/monitor/events/file.mdx deleted file mode 100644 index 1c4820da6..000000000 --- a/website/content/docs/monitor/events/file.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: docs -page_title: Controller/worker - events - file sink - configuration -description: |- - The file sink configures Boundary to send events to a file. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `file` sink - -@include '/configuration-reference/events/file-sink-intro.mdx' - -## Common parameters - -These parameters are shared across all sink types: [common sink parameters](/boundary/docs/monitor/events/common) - -## `file` parameters - -@include '/configuration-reference/events/file-parameters.mdx' \ No newline at end of file diff --git a/website/content/docs/monitor/events/filter-events.mdx b/website/content/docs/monitor/events/filter-events.mdx deleted file mode 100644 index 3c8419ad4..000000000 --- a/website/content/docs/monitor/events/filter-events.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -layout: docs -page_title: Filtering - events -description: >- - Learn how to filter audit, observation, system, and telemetry events to find information written to any event sinks you configured. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Filter events - -This page describes how to filter events written to Boundary event sinks. -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. - -A variety of event types (error, observation, -system, etc) are emitted from Boundary. Boundary events can be emitted in -several formats including [cloudevents](https://github.com/cloudevents/spec) and -[hclog](https://github.com/hashicorp/go-hclog), and can be encoded as text and -json. - -Boundary allows you to configure any number of sinks where these events will be -written. When configuring an event sink, you can specify [common sink -parameters](/boundary/docs/monitor/events/common) which include both -`allow_filters` and `deny_filters` which use the standard [filter -syntax](/boundary/docs/filtering) used elsewhere in Boundary. - -Example events encoded as cloudevents-text. The first event is a system event -and the second event is an observation event. - -```json -{ - "id": "DU7u227Jhc", - "source": "https://hashicorp.com/boundary/dev-controller/boundary-dev", - "specversion": "1.0", - "type": "system", - "data": { - "version": "v0.1", - "op": "worker.(Worker).createClientConn", - "data": { - "address": "127.0.0.1:9201", - "msg": "connected to controller" - } - }, - "datacontentype": "text/plain", - "time": "2021-08-05T18:00:05.303435-04:00" -} -{ - "id": "s5ESg6CckX", - "source": "https://hashicorp.com/boundary/dev-controller/boundary-dev", - "specversion": "1.0", - "type": "observation", - "data": { - "latency-ms": 202.995176, - "request_info": { - "id": "gtraceid_WiLnGzc2UHmNAYlcQ0sK", - "method": "POST", - "path": "/v1/auth-methods/ampw_1234567890:authenticate" - }, - "start": "2021-08-05T18:00:34.032333-04:00", - "status": 200, - "stop": "2021-08-05T18:00:34.235335-04:00", - "version": "v0.1" - }, - "datacontentype": "text/plain", - "time": "2021-08-05T18:00:34.235357-04:00" -} -``` - -To filter an event sink which was configured for every event type to -only include the above events, use the following sink configuration: -``` -sink "stderr" = { - name = "all-events" - description = "All events sent to stderr" - event_types = ["*"] - format = "cloudevents-text" - allow_filters = [ - "\"/data/request_info/path\" contains \":authenticate\"", - "\"/data/op\" contains \".createClientConn\"", - ] - # note: deny_filters are also supported. -} -``` - -When running `boundary dev` the example allow filter can be given via: -```bash -boundary dev \ - -event-allow-filter '"/data/request_info/path" contains ":authenticate"' \ - -event-allow-filter '"/data/op" contains ".createClientConn"' -``` -Double quotes are part of the filter syntax; when using the CLI, it is likely -easier to surround the filter with single quotes than to deal with escaping -double quotes. - -~> **Note:** Both `-event-allow-filter` and `-event-deny-filter` command flags are -supported for the `boundary dev` command. diff --git a/website/content/docs/monitor/events/stderr.mdx b/website/content/docs/monitor/events/stderr.mdx deleted file mode 100644 index 8896a394a..000000000 --- a/website/content/docs/monitor/events/stderr.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: docs -page_title: Controller - events - stderr sink - configuration -description: |- - The stderr sink configures Boundary to send events to a stderr. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `stderr` sink - -@include '/configuration-reference/events/stderr-intro.mdx' - -## Common parameters - -These parameters are shared across all sink types: [common sink parameters](/boundary/docs/monitor/events/common) - -## `stderr` parameters - -@include '/configuration-reference/events/stderr-parameters.mdx' diff --git a/website/content/docs/monitor/health.mdx b/website/content/docs/monitor/health.mdx deleted file mode 100644 index 873e5736d..000000000 --- a/website/content/docs/monitor/health.mdx +++ /dev/null @@ -1,138 +0,0 @@ ---- -layout: docs -page_title: Boundary health endpoints -description: >- - Learn about using health endpoints to verify controller and worker server status. Check their health using wget. View an example response and configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary health endpoints - -Boundary provides health monitoring through the `/health` path using a listener with the `"ops"` purpose. By default, a listener with that purpose runs on port `9203`. See the [example configuration](#example-configuration) section for an example listener stanza in a `config.hcl` file. - -## Requirements - -To enable the controller health endpoint, any Boundary instance must be started with a controller. That is, a `controller` block and a `purpose = "api"` -listener must be defined in Boundary's configuration file. Additionally, a `purpose = "ops"` listener must also be defined in Boundary's configuration file. Under these conditions, the `ops` server (which hosts the controller health api) will be exposed. - -## Shutdown grace period - -Optionally, when the controller health endpoint is enabled, you can configure the controller health response to `503 Service Unavailable` upon receiving a shutdown signal, and wait a configurable amount of time before starting the shutdown process. - -This feature supports load balancing by reducing the risk of an outgoing Boundary instance causing disruption to incoming requests. - -In this state, Boundary is still capable of processing requests as normal, but will report as unhealthy through the controller health endpoint. In load-balanced environments, this would cause this "unhealthy" instance to be removed from the pool of instances eligible to handle requests, reducing the likelihood that it will receive a request to handle during shutdown. - -This feature is disabled by default, even if the controller health endpoint is enabled. You can enable it by defining `graceful_shutdown_wait_duration` in the `controller` block of Boundary's configuration file. The value should be set to a string that is parseable by [ParseDuration](https://pkg.go.dev/time#ParseDuration). - -## API - -The controller health service introduces a single read-only endpoint: - -| Status | Description | -|--------------|----------------------------------------------------------------| -| `200` | `GET /health` returns HTTP status 200 OK if the controller's api gRPC Server is up | -| `5xx` | `GET /health` returns HTTP status `5XX` or request timeout if unhealthy | -| `503` | `GET /health` returns HTTP status `503 Service Unavailable` status if the controller is shutting down | - -All responses return empty bodies. `GET /health` does not support any input. - -## Check the health endpoint using `wget` - -The Boundary Docker image includes `wget`. You can use it to check the health endpoint. Enterprise and Community edition users can check the health of controllers and workers. HCP Boundary users can check the health of their self-managed workers. - -Use the following command to check a worker's status to determine if it is healthy: - -```shell-session -$ wget -q -O - http://localhost:9203/health?worker_info=1 | grep -c 'READY' -``` - -- `-q` - Prints the response instead of saving it to a file. -- `-0` - Allows Boundary to pass the worker's URL. - -If the command prints 1 to `stdout` or exits with exit code 0, it means the worker is healthy. If the exit code is greater than 0, the worker is unhealthy. - -You can also use the following command without `grep -c 'READY'` to print a more verbose response that includes the worker's state, active session count, and connection state: - -```shell-session -$ wget -q -O - http://localhost:9203/health?worker_info=1 -``` - -## Example response - -When you check the health endpoint using `wget`, Boundary returns a response with the following worker information: - -```shell-session -$ wget -q -O - http://localhost:9203/health?worker_info=1 | grep -c 'READY' -{"worker_process_info":{"state":"active", "active_session_count":0, "upstream_connection_state":"READY"}} -``` - -When you check the health endpoint using `curl`, Boundary returns a response with the following worker information: - -```shell-session -$ curl "worker:9403/health?worker_info=1" -{ - "worker_process_info":{ - "state":"active", - "active_session_count":0, - "upstream_connection_state":"READY" - } -} -``` - -The response contains the following fields: - -- `state` - The operational state of the worker. Possible worker states include active, shutdown, and unknown. -- `active_session_count` - The number of active sessions on the worker. -- `upstream_connection_state` - The connection state of the worker. This value indicates whether the worker can connect to an upstream address or connection. It can be any of the following states: - - `CONNECTING` - The channel is trying to make a connection and is waiting for name resolution or the connection establishment. - - `READY` - The channel has successfully established a connection, and any attempts to communicate have succeeded. - - `TRANSIENT_FAILURE` - The channel suffered a transient failure such as a time out or socket error. - A channel in this state will switch to the `CONNECTING` state and try to establish a connection. - - `IDLE` - The channel is not attempting to create a connection because there are no calls. - - `SHUTDOWN` - The channel is shutting down. - Any new calls fail immediately. - Pending calls may continue running until Boundary cancels them. - -## Example configuration - -Health checks are available for a controller defined with a `purpose = "ops"` listener stanza. For details on what fields are allowed in this stanza, refer to the documentation about [TCP Listener](/boundary/docs/monitor/listeners/tcp). - -An example listener stanza: - -```hcl -controller { - name = "boundary-controller" - database { - url = "postgresql://:@10.0.0.1:5432/" - } -} - -listener "tcp" { - purpose = "api" - tls_disable = true -} - -listener "tcp" { - purpose = "ops" - tls_disable = true -} -``` - -To enable a shutdown grace period, update the `controller` block with a defined wait duration: - -```hcl -controller { - name = "boundary-controller" - database { - url = "env://BOUNDARY_PG_URL" - } - graceful_shutdown_wait_duration = "10s" -} -``` - -A complete example can be found under the [Controller configuration](/boundary/docs/configuration/controller#complete-configuration-example) docs. \ No newline at end of file diff --git a/website/content/docs/monitor/index.mdx b/website/content/docs/monitor/index.mdx deleted file mode 100644 index 5d961d7da..000000000 --- a/website/content/docs/monitor/index.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -layout: docs -page_title: Monitor Boundary -description: >- - Discover resources to help you learn more about maintaining and operating Boundary, including information about metrics and health. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Monitor Boundary - -Visibility into various components of Boundary plays an important role in -ensuring the health of its controllers and workers. - -You can export metrics for controllers -and workers and then configure them to be collected by Prometheus. Metrics -provide insight into the current state of a Boundary deployment by enabling the -diagnosis of deployed controllers and workers. Enabling metrics assists in the -detection and mitigation of anomalies in a deployment. -These docs describe the available metrics and the naming and labeling standards -used. - -Additionally, the health of controllers can be monitored using the -`/health` endpoint. The health endpoint is enabled by defining a listener in -Boundary's configuration file, and a health response may be configured to add a -shutdown grace period process. - -You can also configure Boundary to monitor events. -You can choose to monitor audit, observation, system, and telemetry events. -Boundary supports both file and stderr sinks for events and you can send events to multiple sinks. - -Listeners let you configure the addresses and ports on which Boundary responds to requests. -You can configure TCP and Unix listeners. -Boundary also supports custom response headers for any requests made on controllers. -You can define headers based on the status code that is returned. - -## Tutorials - -To learn how to configure event filtering and sinks, complete the [Event filtering and sink configuration](/boundary/tutorials/self-managed-deployment/event-logging) tutorial. - -To learn how to configure metrics collection, complete the [Visualize metrics with Prometheus](/boundary/tutorials/self-managed-deployment/prometheus-metrics) tutorial. - -## More information - -Refer to the following topics for the parameters you use to configure the addresses and ports on which Boundary responds to requests: - -- [Listeners](/boundary/docs/monitor/listeners) - - [TCP listeners](/boundary/docs/monitor/listeners/tcp) - - [Unix listeners](/boundary/docs/monitor/listeners/unix) - -Refer to the following topics for more information on the various ways to monitor Boundary: - -- [Monitor metrics](/boundary/docs/monitor/metrics) -- [Monitor health](/boundary/docs/monitor/health) -- [Filter events](/boundary/docs/monitor/events/filter-events) - - [Common sink parameters](/boundary/docs/monitor/events/common) - - [File sink](/boundary/docs/monitor/events/file) - - [Stderr sink](/boundary/docs/monitor/events/stderr) diff --git a/website/content/docs/monitor/listeners/index.mdx b/website/content/docs/monitor/listeners/index.mdx deleted file mode 100644 index d1eb091b3..000000000 --- a/website/content/docs/monitor/listeners/index.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: docs -page_title: Listener configuration -description: >- - Learn about TCP and Unix listener configuration settings. Understand where to change the default addresses and ports on which Boundary responds to requests. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `listener` stanza - -The `listener` stanza configures the addresses and ports on which Boundary will -respond to requests. At this time, there are two listener types: -[TCP](/boundary/docs/monitor/listeners/tcp) and [Unix](/boundary/docs/monitor/listeners/unix). - - -## `listener` purpose - -@include '/configuration-reference/listeners/listener-purpose.mdx' \ No newline at end of file diff --git a/website/content/docs/monitor/listeners/tcp.mdx b/website/content/docs/monitor/listeners/tcp.mdx deleted file mode 100644 index bd3b451cd..000000000 --- a/website/content/docs/monitor/listeners/tcp.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -layout: docs -page_title: TCP listener configuration -description: >- - Learn about using the TCP listener on a TCP address and port, and view configurable parameters. Understand custom response headers. View example configurations. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `tcp` listener - -@include '/configuration-reference/listeners/tcp-intro.mdx' - -## Listener's custom response headers - -@include '/configuration-reference/listeners/tcp-custom-response-headers.mdx' - -## `tcp` listener parameters - -Refer to the following sections for `tcp` listener parameters. - -### General - -@include '/configuration-reference/listeners/tcp-general-parameters.mdx' - -### `custom_api_response_headers` parameters - -@include '/configuration-reference/listeners/tcp-custom-api-response-headers.mdx' - -### `custom_ui_response_headers` parameters - -@include '/configuration-reference/listeners/tcp-custom-ui-response-headers.mdx' - -### TLS - -@include '/configuration-reference/listeners/tcp-tls.mdx' - - - -## `tcp` listener examples - -Refer to the following sections for examples of `tcp` listeners. - -### Configure TLS - -@include '/configuration-reference/listeners/tcp-configure-tls.mdx' - -### Configure custom http response headers - -@include '/configuration-reference/listeners/tcp-configure-custom-http-response-headers.mdx' - -### Listen on mulitple interfaces - -@include '/configuration-reference/listeners/tcp-listen-on-mulitple-interfaces.mdx' \ No newline at end of file diff --git a/website/content/docs/monitor/listeners/unix.mdx b/website/content/docs/monitor/listeners/unix.mdx deleted file mode 100644 index e60007837..000000000 --- a/website/content/docs/monitor/listeners/unix.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: docs -page_title: Unix domain socket listener configuration -description: >- - Learn about using the Unix listener on a specified Unix domain socket, and view configurable parameters. View example Unix listener configurations. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# `unix` listener - -@include '/configuration-reference/listeners/unix-intro.mdx' - -## `unix` listener parameters - -Refer to the following sections for the supported `unix` listener parameters. - -### General - -@include '/configuration-reference/listeners/unix-general-parameters.mdx' - -### TLS - -@include '/configuration-reference/listeners/unix-tls-parameters.mdx' - - - -## `unix` listener examples - -Refer to the following sections for examples of `unix` listeners. - -### Configure TLS - -@include '/configuration-reference/listeners/unix-configure-tls.mdx' - -### Listen on multiple interfaces - -@include '/configuration-reference/listeners/unix-listen-on-multiple-interfaces.mdx' - -[golang-tls]: https://golang.org/src/crypto/tls/cipher_suites.go -[api-addr]: /boundary/docs/configuration#api_addr -[cluster-addr]: /boundary/docs/configuration#cluster_addr diff --git a/website/content/docs/monitor/metrics.mdx b/website/content/docs/monitor/metrics.mdx deleted file mode 100644 index 7915abfd2..000000000 --- a/website/content/docs/monitor/metrics.mdx +++ /dev/null @@ -1,108 +0,0 @@ ---- -layout: docs -page_title: Boundary metrics -description: >- - Learn about using a metrics listener to monitor your Boundary components. View the available controller and worker metrics, and an example configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary metrics - -Boundary provides metrics through the `/metrics` path using a listener with the -`"ops"` purpose. By default, a listener with that purpose runs on port `9203`. -See the [example configuration](#example-configuration) section for an example -listener stanza in a `config.hcl` file. - -Metrics are important for understanding what is happening in a Boundary -deployment, enabling diagnoses of deployed controllers and workers. The exported -metrics grant greater visibility into the various components of a running -Boundary deployment through Prometheus. - -The metrics uses the [OpenMetric -exposition](https://prometheus.io/docs/instrumenting/exposition_formats/#openmetrics-text-format) -format which can be read by -[Prometheus](https://prometheus.io/docs/introduction/overview/). - -## Controller - -The following table lists the current names and descriptions of metrics provided -by controllers. - -| Name | Description | -|---------------------------------------------------------------|-----------------------------------------------| -| `boundary_controller_api_http_request_duration_seconds` | Histogram of latencies for HTTP requests. | -| `boundary_controller_api_http_request_size_bytes` | Histogram of request sizes for HTTP requests. | -| `boundary_controller_api_http_response_size_bytes` | Histogram of response sizes for HTTP requests. | -| `boundary_controller_api_ratelimiter_quota_storage_capacity` | A gauge of storage capacity for API rate limiting quotas. | -| `boundary_controller_api_ratelimiter_quota_storage_usage` | A gauge of storage usage for API rate limiting quotas. | -| `boundary_controller_cluster_grpc_request_duration_seconds` | Histogram of latencies for requests made to the gRPC service running on the cluster listener. | - -## Worker - -The following table lists the current names and descriptions of metrics provided -by workers. - -| Name | Description | -|---------------------------------------------------------------|-----------------------------------------------| -| `boundary_worker_proxy_http_write_header_duration_seconds` | Histogram of time elapsed after the TLS connection is established to when the first http header is written back from the server. | -| `boundary_worker_proxy_websocket_active_connections` | A gauge of the current count of open proxy connections on the worker. | -| `boundary_worker_proxy_websocket_received_bytes_total` | Count of received bytes sent over all proxy connections handled by the worker. | -| `boundary_worker_proxy_websocket_sent_bytes_total` | Count of sent bytes sent over all proxy connections handled by the worker. | - -## Other - -The following table lists the current miscellaneous metrics provided by Boundary. - -| Name | Description | -|---------------------------------------------------------------|-----------------------------------------------| -| `boundary_build_info` | A gauge set to 1 with label values detailing the current Go version, git revision, and Boundary version. | - -## Metric labels - -Each metric uses labels to help organize and narrow its scope so that users can -filter for different characteristics, allowing more flexible analysis of the -measurements collected. - -### Metrics for HTTP requests include the following labels: - -| Label | Description | -|--------------|----------------------------------------------------------------| -| `code` | The HTTP status code of the request (e.g., “200”, “400”, etc.). | -| `path` | The path, excluding query parameters, associated with the request. The value for this label replaces resource IDs with "{id}" (for example, `/v1/groups/{id}` is a possible value for this label). Any unexpected paths receive the value "unknown." | -| `method` | The name of the method on the HTTP request. For example "GET", “POST”, “DELETE”. | - - -### Metrics for gRPC requests include the following labels: - -| Label | Description | -|-----------------|-----------------------------------------------------------------| -| `grpc_method` | The name of the method on the grpc service (e.g., `GetGroup`). | -| `grpc_service` | The proto service name including the package (e.g., `controller.api.services.v1.GroupService`). | -| `grpc_code` | The grpc [status code](https://github.com/grpc/grpc-go/blob/master/codes/codes.go) in human-readable format. For example, `OK`, `IllegalArgument`, `Unknown`. | - - -## Example configuration - -Defining a listener stanza in the config file is sufficient for enabling metrics -reporting in Boundary. For details on what fields are allowed in this stanza, -refer to the documentation about [TCP -listener](/boundary/docs/monitor/listeners/tcp). - -An example listener stanza: - -```hcl -listener "tcp" { - purpose = "ops" - tls_disable = true -} -``` - -## Tutorial - -Refer to the [Prometheus -Metrics](/boundary/tutorials/oss-configuration/prometheus-metrics) -tutorial for a step-by-step introduction to metrics. diff --git a/website/content/docs/overview/bastion-hosts.mdx b/website/content/docs/overview/bastion-hosts.mdx deleted file mode 100644 index acbb6744e..000000000 --- a/website/content/docs/overview/bastion-hosts.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: docs -page_title: Boundary vs. bastion hosts -description: >- - Learn how Boundary compares to bastion hosts by providing tightly controlled, just-in-time access to infrastructure using role-based access controls (RBAC). ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary vs. bastion hosts - -If you want to set up your cloud environment securely, you may choose to run all of your important workloads behind a NAT Gateway, and provision a DMZ with a set of hardened bastion servers. - -Bastion host security groups are often not locked down at the network layer. -Additionally, users who log into a bastion host using SSH are typically dropped into a privileged account. -Maintaining security groups, network ACLs, and IAM controls on a bastion host at a per-user level is nearly impossible, unless you create and maintain multiple bastion hosts per user or group. -IT departments now have to manage updates for another server and the sprawl of infrastructure continues, increasing your attack surface, and requiring your IT department to be perfect. - -Boundary is not a traditional bastion host. -Boundary streamlines just-in-time access to privileged sessions for users, and tightly controls access to infrastructure with role-based access controls (RBAC). -Boundary validates a user's identity using your identity provider of choice, and then dynamically grants them access to the resources they need using their associated permissions. -Boundary's worker nodes, the resources that proxy connections to private endpoints, are fundamentally stateless and can be easily scaled elastically using modern development tools. - -You can use SSH or RDP to inject the credentials of any target resources that you want to connect to using Boundary, so that the credentials are never exposed to the user while establishing a connection. -Alternatively, Boundary can return brokered credentials back to users (if permitted), which could take the form of API tokens, usernames and passwords, public keys, etc. - -**Can Boundary replace a bastion/jumphost access model?** - -Yes, in many cases you can use Boundary as a replacement for an existing bastion host-based access model to infrastructure. -The advantages to Boundary's access model are outlined above. - -**Can Boundary extend a bastion/jumphost access model?** - -Yes, some users may see value in Boundary providing access to an existing bastion host deployment. diff --git a/website/content/docs/overview/faq.mdx b/website/content/docs/overview/faq.mdx deleted file mode 100644 index e5b526e6e..000000000 --- a/website/content/docs/overview/faq.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: docs -page_title: FAQ -description: >- - View frequently asked questions about Boundary ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Frequently asked questions - -Refer to the following for answers to frequently asked questions about Boundary. - -## Q: What are the networking requirements for Boundary? Do my workers need to be exposed to the public internet? - -Boundary workers require inbound access from clients. This does not necessarily require that workers be exposed to the public internet. -If the client is coming from a private network (eg a corporate network), the worker needs to allow connectivity from the private network. -If the client is coming from the public internet, the worker needs to allow connectivity from the public internet. For more information, -check out the [worker networking requirements](/hcp/docs/boundary/self-managed-workers). - -## Q: Does Boundary require Vault? What is the integration story? - -While Vault isn't a *required* secrets backend for Boundary sessions, the potential for Boundary | Vault integration is a core part of Boundary's overall -value proposition for identity-based access. There are three primary points of integration with Vault: -1. Vault can be used as a secrets backend for Boundary, offering single signon to end target systems via credential brokering. This was covered in Boundary's -[0.4 announcement](https://www.hashicorp.com/blog/announcing-hashicorp-boundary-0-4) and there are ample -[tutorials](/boundary/tutorials/credential-management/community-vault-cred-brokering-quickstart) of this scenario. -2. Boundary can use Vault as an OIDC provider to enable sign-in with Vault's supported auth methods (even non-OIDC auth methods like Active Directory kerberos/LDAP). -This scenario is walked through in this [tutorial](/vault/tutorials/auth-methods/oidc-identity-provider). -3. Boundary Community Edition can use Vault as the external KMS that serves as Boundary's root of trust. More information on this use case can be found -[here](/boundary/docs/configuration/kms/transit). - -## Q: What identity providers does Boundary support? - -Boundary supports [OIDC authentication](/boundary/tutorials/access-management/oidc-auth), which allows support for many popular IdPs -like Okta, Azure AD, Auth0, etc. For non-OIDC authentication protocols (such as LDAP), users can also log in with an OIDC bridge identity provider -such as [Vault's OIDC bridge](/vault/docs/concepts/oidc-provider) capabilities released in 1.9, [Dex](https://dexidp.io), or various others. - -## Q: Does Boundary support multi-factor authentication (MFA)? - -Boundary Open-ID Connect (OIDC)-based authentication supports MFA if the IdP being used enforces MFA. This allows users to authenticate with an identity -provider supporting MFA, such as Azure AD, Okta, Auth0, etc. -Boundary also supports syncing permission claims between an IDP-managed identity and Boundary. This can be very useful when you want to sync group memberships -from an IDP to Boundary to assign role assignments dynamically. See Boundary's [managed groups capabilities](/boundary/tutorials/identity-management/oidc-idp-groups). - -## Q: Does Boundary automate the discovery and configuration of new targets (e.g. servers)? What happens if a host IP address changes? - -Yes, this is one of the core competencies of Boundary. Boundary can discover new targets in two primary ways -1. Boundary's [Terraform provider](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) supports discovery of targets provisioned by Terraform -2. Boundary's [dynamic host catalog](/boundary/docs/hosts#dynamic-host-catalogs) -agentlessly queries infrastructure providers to automate the onboarding and configuration of hosts - -All of these methods will automate the discovery and configuration of targets when their ip addresses change. Of course, static hosts can still be manually added via Boundary admin UI and CLI. - -For more information on dynamic host catalogs, refer to: - -- [AWS dynamic host catalogs](/boundary/docs/hosts/aws) -- [Azure dynamic host catalogs](/boundary/docs/hosts/azure) -- [GCP dynamic host catalogs](/boundary/docs/hosts/gcp) - -## Q: Session management capabilities - Does Boundary support live session monitoring and termination? - -**Session Logging/Monitoring:** Supported. Boundary creates a session log of all sessions created between identities and targets that have been onboarded to -Boundary. You can learn how to monitor these sessions in the [Manage sessions tutorial](/boundary/tutorials/community-administration/community-manage-sessions). -Boundary supports audit logs for [Boundary Community Edition](/boundary/tutorials/oss-configuration/event-logging) and [audit log streaming](/hcp/docs/boundary/audit-logging) -for HCP Boundary. Audit logs for both distributions can be exported to SIEM or BI tools. - -**Session Termination:** Supported. Session termination for Boundary administrators is a supported capability, as demonstrated in this -[Manage sessions tutorial](/boundary/tutorials/community-administration/community-manage-sessions). - -## Q: As an AWS user, can IAM roles be used to configure Boundary's dynamic host catalog? - -At this time, it is not possible to configure Boundary's dynamic host catalog using IAM roles. -You can configure the dynamic host catalog using an IAM user, however. -For more information, refer to the [Dynamic host catalogs on AWS](/boundary/tutorials/host-management/aws-host-catalogs) tutorial. diff --git a/website/content/docs/overview/pam.mdx b/website/content/docs/overview/pam.mdx deleted file mode 100644 index f42f81309..000000000 --- a/website/content/docs/overview/pam.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: docs -page_title: Boundary vs. privileged access management -description: >- - Learn how Boundary compares to privileged access management (PAM) solutions by providing automation for user and credential management and service discovery. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary vs. privileged access management - -Privileged access management (PAM) tools secure access to critical systems by managing and monitoring access to privileged accounts. -PAM assists an organization in reducing their attack surface in an attempt to mitigate damage caused from internal or external incidents. -Traditionally, a focus is put on the management of privileged credentials, and the monitoring of sessions and commands that enable detection and response teams to respond to incidents. - -Boundary enables many of the security controls traditionally filled by PAM tools. -Boundary can manage network access to privileged systems and audit access. -It can be used with credential management providers, like Vault, to manage access to privileged accounts and credentials. - -Where Boundary differs from traditional PAM solutions is in its automation-friendly workflows. -Boundary is instrumented programmatically via REST, CLI, and [Terraform](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs). -It provides automation-friendly workflows for managing users and credentials, as well as the discovery and configuration of new services: - -- **Automated credential management**: Boundary and Vault can create workflows with automated credential management in which user sessions are secured with [single-use dynamic credentials that are injected into sessions](/boundary/tutorials/credential-management/hcp-private-vault-cred-injection) such that secrets are never returned to users. -- **Context-based access**: When users' business context changes, you want to ensure their permissions reflect the new business context. -As an example, on-call engineers might require different permissions than when they end their on-call shifts. -[Boundary's managed groups](/boundary/tutorials/access-management/oidc-idp-groups) enable user permission workflows to be assigned dynamically based on identity provider MFA checks, group memberships, and other IDP-level context. -- **[Host discovery](/boundary/docs/hosts)**: Boundary's [dynamic host catalogs](/boundary/tutorials/host-management/aws-host-catalogs) are advanced workflows for automating the process of onboarding new or changed infrastructure resources and their connection information, and applying pre-configured security policies. - -**Can Boundary replace a PAM solution?** - -Yes, Boundary provides many of the security controls traditionally delivered by PAM tools. -Boundary can also be used with an existing PAM tool, particularly the ones that emphasize agent-based security where Boundary's proxy-based security can be a natural complement. \ No newline at end of file diff --git a/website/content/docs/overview/sdp.mdx b/website/content/docs/overview/sdp.mdx deleted file mode 100644 index ace4384d1..000000000 --- a/website/content/docs/overview/sdp.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: docs -page_title: Boundary vs. software-defined perimeter -description: >- - Learn how Boundary compares to software-defined perimeter (SDP) tools using dynamic credentials, context-based access, automated host discovery, and auditing. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary vs. software-defined perimeter - -Software-defined perimeter (SDP) solutions secure access to applications and infrastructure based on user identity. -Boundary is fundamentally an SDP solution that takes a zero trust approach to security design for system access; access to services is granted based on the scoped identity and intent of a user. -Boundary is a scalable proxy that enables identity-based access with multiple layers of security controls including [dynamic credentials](/boundary/tutorials/hcp-administration/hcp-ssh-cred-injection), [context-based access](/boundary/tutorials/access-management/oidc-idp-groups), [automated host discovery](/boundary/docs/hosts), and [access auditing](/hcp/docs/boundary/audit-logging) to name a few. \ No newline at end of file diff --git a/website/content/docs/overview/secrets-management.mdx b/website/content/docs/overview/secrets-management.mdx deleted file mode 100644 index 716fef00b..000000000 --- a/website/content/docs/overview/secrets-management.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: docs -page_title: Boundary vs. secrets management tools (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, etc.) -description: >- - Learn how Boundary compares to secrets management tools and how it can compliment them to provide identity-based access, automated host discovery, and auditing. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary vs. secrets management tools (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, etc.) - -Secrets management is the use of tools and methods to manage digital authentication credentials. -This includes passwords, API keys, PKI, TOTP codes, etc. -Popular tools in this space includes HashiCorp Vault, Azure Key Vault, AWS Secrets Manager, Cloud KMS, and CyberArk Conjur. - -Boundary itself is not a secrets manager for your infrastructure. -A core step in Boundary's access workflow is integrating with your existing secrets management providers, such as HashiCorp Vault, to retrieve dynamic credentials, and return them to end users when they attempt to establish connections. -For customers who may not yet have a credential management solution, or are looking to easily onboard, Boundary can function as a rudimentary static credential store. -Boundary provides a comprehensive access workflow that integrates with secrets management providers, enforces secure and granular network and credential access based on identity, audits all access, and automates the discovery and configuration of new target endpoints. - -**Does Boundary replace a secrets management solution?** - -Boundary is not intended to replace an existing secrets management solution. -Boundary is designed to work with your secrets management solution to comprehensively secure infrastructure access. -For many users, Boundary's native static credential management capabilities may be sufficient. -For those that require more advanced credential workflows, such as dynamic credentials, [HashiCorp Vault](https://developer.hashicorp.com/vault/) is a natural complement to Boundary. \ No newline at end of file diff --git a/website/content/docs/overview/use-cases.mdx b/website/content/docs/overview/use-cases.mdx deleted file mode 100644 index 93491c219..000000000 --- a/website/content/docs/overview/use-cases.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: docs -page_title: Use cases -description: >- - Learn how HashiCorp Boundary can help you with zero trust access, multi-cloud access, single-sign on with integrated secrets management, and session monitoring. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Use cases - -Before understanding use cases, it's useful to know [what Boundary is](/boundary/docs/what-is-boundary). This page lists some concrete use cases for Boundary, but the possible use cases are much broader than what we cover. - -## Zero trust access - -Boundary’s access-on-demand workflow securely connects trusted identities to infrastructure services based on granular, admin-defined permission grants. Boundary removes the need to create or store credentials when accessing services. In this way, Boundary can be used to extend or replace many traditional access solutions like VPNs. - -Traditional access solutions do not employ the Zero-Trust philosophy - meaning they fail to authenticate and authorize users’ access and actions continuously, and often lack granular access controls. - -## Multi-cloud access - -Having different access workflows for various infrastructure and identity providers doesn’t scale well for administrators or users. Multi-cloud organizations have a growing need to standardize access through a single workflow. Boundary creates a centralized layer of identity-based authentication and authorization to manage access to the infrastructure, regardless of the platform on which it resides. - -## Single sign-on with integrated secrets management - -Boundary enables a single sign-on access model with authentication from trusted identity providers, such as Azure Active Directory, Auth0, and Okta. Once authenticated, users may create sessions with integrated credential management from HashiCorp Vault without the need to re-authenticate. - -## Session monitoring - -Boundary provides session monitoring capabilities that give security administrators visibility into user access. Sessions are logged and consumable via the Boundary administrator UI as well as business intelligence (BI) and security information and event management (SIEM) tools. - -Further, administrators can enable session recording on targets. -When you enable session recording on a target, a worker records any sessions that access that target from the time the user requests access to when that access is terminated. -Administrators can view the recordings later using a session player that runs in a browser. - -## Boundary vs. other software - -It can be difficult to understand how to compare the different remote access security solutions that are available on the market. -Is one a replacement for another? -Are they complementary? -Refer to the following topics for a more detailed comparison of Boundary to specific technologies: - -- [Zero trust](/boundary/docs/overview/zero-trust) -- [Bastion hosts](/boundary/docs/overview/bastion-hosts) -- [VPNs](/boundary/docs/overview/vpn) -- [Privileged access management](/boundary/docs/overview/pam) -- [Software-defined-perimeter](/boundary/docs/overview/sdp) -- [Secrets management tools](/boundary/docs/overview/secrets-management) - -The comparisons are philosophical in nature, and are not intended to be oppositional. -Our goal is to provide readers with a better understanding of how access management solutions overlap with Boundary, and where Boundary does things differently. \ No newline at end of file diff --git a/website/content/docs/overview/vpn.mdx b/website/content/docs/overview/vpn.mdx deleted file mode 100644 index 45875e5ae..000000000 --- a/website/content/docs/overview/vpn.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: docs -page_title: Boundary vs. VPNs -description: >- - Learn how Boundary compares to VPNs by using an Identity Provider (IdP) to grant users remote access to specific permitted services, but not the entire network. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary vs. VPNs - -Virtually every company today uses network firewalls to enforce perimeter security. -To establish a remote connection within the perimeter, organizations often use some form of virtual private network (VPN) to authenticate users, establish a secure tunnel to the private network (such as a corporate or data center network), and allow users to enter the gated walls. - -VPNs enable the remote access architecture that is most often used to allow identities on unsecured networks to gain access to key internal organizational services in a secure fashion. -Data is encrypted in transit, a network connection is established, and the user's access on the network is now predicated on the granularity of 802.1x authentication to the appropriate VLANs and network and application layer firewall rules. -In practice, this often means that once users log in to a network using a VPN, they have access to far more than they should. - -While Boundary can establish remote connections to services within an organization's perimeter, Boundary is **not** a VPN. -Instead, Boundary proposes an improvement to the current remote access model, where remote access is granted granularly and established to specific permitted services, but **not** the entire network. -Boundary uses a non-repudiable user identity that is established by your integrated Identity Provider (IdP) of choice, as opposed to relying on network layer concepts such as IP address for access management. - -A traditional VPN provides users with **network access**. -Boundary provides users with **delegated access to services within the network**. - -**Can Boundary replace a VPN?** - -For many organizations, Boundary's granular network access will be a security improvement from traditional data center VPN solutions that lack granular controls. - -**Can Boundary work with a VPN?** - -Boundary can work with existing corporate VPNs to provide heightened security when accessing privileged networks such as data centers and cloud VPCs. \ No newline at end of file diff --git a/website/content/docs/overview/zero-trust.mdx b/website/content/docs/overview/zero-trust.mdx deleted file mode 100644 index 0a58779ca..000000000 --- a/website/content/docs/overview/zero-trust.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: docs -page_title: Boundary and zero trust -description: >- - Learn how Boundary enables a zero trust approach to security in which all access transactions are authenticated and authorized based on trusted identity. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary and zero trust - -Malware lands on the machine of an engineer working for an HVAC vendor. -Credentials are harvested, and many of them belong to external clients. -The attackers use the vendor's system as an entry point into the large corporations they service. -They move laterally throughout the client's network, eventually using the vendor's admin credentials to access a point-of-sale system that contains PII (personally identifiable information), and the credit card information of millions of customers. - -Zero trust was born out of the concept that people should have only the necessary levels of access to do their jobs, and all access transactions should be authenticated and authorized based on a trusted identity. -Zero trust is not a specific solution or class of solutions, it's a design philosophy for how access to digital systems should be secured. -Embracing a zero trust mindset assists an organization in reducing their attack surface. - -You can use Boundary and other HashiCorp tools such as Vault and Consul to create a zero trust access model for infrastructure endpoints in which all transactions are authenticated, authorized, and audited. -Boundary focuses on giving developers a consistent workflow for zero trust access to their infrastructure, wherever it resides. \ No newline at end of file diff --git a/website/content/docs/rbac/assignable-permissions.mdx b/website/content/docs/rbac/assignable-permissions.mdx deleted file mode 100644 index 94faf70cc..000000000 --- a/website/content/docs/rbac/assignable-permissions.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -layout: docs -page_title: Assignable permissions -description: >- - Learn about using actions and output fields to grant users permissions to any resources that are identified by ID or Type. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Assignable permissions - -You can grant users permissions to any Boundary resources that are identified by ID or Type selectors. -There are two types of assigned permissions: - -- An `actions` field indicating which actions to allow the client to perform on - the resources matched by `id` and `type` -- An `output_fields` field indicating which top-level fields to return in the - response. - -## Actions - -Actions convey the ability to perform some operation against a resource or -collection. -They include common CRUD operations (`create`, `read`, `update`, -`delete`), but some resources also have actions that are specific to their type. - -For example, a `target` has an `authorize-session` action that allows you to request -making a connection to that target. -The `auth-method` resources have an `authenticate` action that allows you to authenticate to Boundary. -Most actions represent common operations, however there are some special cases to note. - -### Subactions - -Some subactions are also supported. Subactions have a format -`top_level_action:subaction`, such as `read:self`. -When you grant a top level action to a principal, they also inherit all subactions. - -For example, if a grant conveys `read`, it also matches the API actions `read` and `read:self`. -However, if a grant conveys `read:self`, it does not grant the top-level action `read`. - -### The `no-op` action and listing visibility - -Boundary contains a `no-op` action that is not used for any real operations. -However, you can use the `no-op` action for listing visibility. - -When a user runs a `list` operation, Boundary only shows the resources for which a user has been granted at least one action. -Without the `no-op` action, you would have to grant the user another action such as `read` to ensure they could view the resource. -Granting additional actions to users could result in exposing more information to the user than intended. -This is especially true for listing scopes and authentication methods, such as when users perform the initial authentication to Boundary. - -Instead, you can grant the `no-op` action to users to ensure that they can view the output of a list command, without granting them other unnecessary actions. - -### Anonymous user restrictions - -There are limits to the actions that you can assign to the anonymous user `u_anon`. -The limitations are meant to prevent you from accidentally adding the anonymous user to a role that provides more privileges than you would intend to grant to an unauthenticated user. - -For anonymous users, actions are restricted to listing scopes and auth methods, -and authentication to auth methods. -You can also grant the `no-op` action for listing visibility. - -Boundary does not return a special error message when access is denied to an action because it is not allowed for an anonymous user. -You can still assign grants to a role on which the anonymous user is a principal, but they can never match the anonymous user. - -## Output fields - -Grant strings can contain an `output_fields` value. This setting gives you fine-grained -control over the visibility of data returned to users. - -The `output_fields` reference the field names of the JSON object reponse. -They are composed just like other parts of the RBAC model, and are action-specific. -For example, the following grant: - -`ids=*;type=auth-methods;actions=list,no-op;output_fields=scope_id,name,description` - -results in the three identified output fields (scope ID, name, and description) applying to any `list` and `no-op` actions for all auth methods in the scope. -If a user performed a `list` operation under this example grant, each item returned would only have the three fields populated: `scope_id`, `name`, and `description`. -Any other actions, such as `read` or `update`, would be unaffected and would return the default information. - -This grant: - -`ids=*;type=auth-methods;output_fields=id` - -means that only the `id` will be returned for any action performed against auth methods in this scope. - -Grants are composable. -Therefore, if both of the example grants above are added, the final set of output fields would be `id`, `scope_id`, `name`, and `description` for the `list` and `no-op` actions. -For all other actions, the output field would be `id`. - -### Default output fields - -If none of the grants applicable to the resource or action for a given request contain `output_fields` definitions, Boundary uses the default settings. -The default settings vary based on whether the user is anonymous: - -- If the user is anonymous, Boundary returns a restricted set of fields. -They include `id`, `scope_id`, `scope`, `name`, and `description`. -- If the user is authenticated, Boundary returns the full set of fields. - -## More information - -1. Refer to [Permission grant formats](/boundary/docs/rbac/permission-grant-formats) for more information about grant strings and example formats. -1. Refer to the [Resource tables](/boundary/docs/rbac/resource-table) for a cheat sheet to help you manage your permissions. - -## Next steps - -Refer to [Manage access with roles](/boundary/docs/rbac/manage-roles) for instructions to configure roles and grant scopes for principals. diff --git a/website/content/docs/rbac/index.mdx b/website/content/docs/rbac/index.mdx deleted file mode 100644 index 07276504a..000000000 --- a/website/content/docs/rbac/index.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -layout: docs -page_title: Permissions index -description: >- - Learn about Boundary's RBAC (Role-based access control), allow-only permissions model. Understand how permissions are configured using grant strings and roles. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Permissions in Boundary - -Boundary's permissions model is a composable, role-based access control (RBAC), allow-only model that -attempts to marry flexibility with usability. -The following pages discuss the permission model's fundamental concepts, provide examples of the specific forms of allowed grants, and contain a table that acts as a cheat sheet to help you craft roles. - -Boundary's [domain model](/boundary/docs/domain-model) is based on resource -types. You can implement resource types directly, such as with targets, or they can be -abstract types that you implement using concrete types within the system. As an -example of the latter, a host catalog is an abstract type and a static host -catalog is a concrete type. - -From a permissions standpoint, all actions take place against directly -implemented or abstract types. There may be actions that are only implemented by -some concrete types, for example, not all `auth-method` implementations support a -`change-password` action. But the permissions model still defines these -capabilities at the abstract type level. - -At a very high level, permissions within Boundary are declared via grant strings -and mapped to users via roles. - -## Grant strings - -Each grant string is a mapping that describes a resource or set of resources and -the permissions that should be granted on them. - -A grant string has a form similar to: - -`ids=;type=;actions=;output_fields=` - -Selectors are used to indicate the resources on which the grant should apply, -using specific IDs or wildcard IDs and type selectors. - -You can supply grant strings using a human-friendly string syntax or using JSON. - -### Assigned permissions - -You can grant users permissions to any Boundary resources that are identified by ID or Type selectors. -There are two types of assigned permissions: - -- An `actions` field indicating which actions to allow the client to perform on - the resources matched by `id` and `type` - -- An `output_fields` field indicating which top-level fields to return in the - response. - -## Roles - -Roles map grant strings to principals, which are users, groups, and managed groups. -Every role assigns grants within a scope, as determined by the role's grant scope IDs. - -You can assign roles to multiple scopes to grant permissions to users who need access to resources across multiple scopes. -Child scopes can inherit roles from parents. -For example, the global scope could have multiple child scopes called "orgs". -When you create a role in the global scope, you can configure it to apply to those children org scopes. - -When a user makes a request, the client may provide the scope or Boundary may look it up using the resource's ID. -This scope ID, along with the user's ID and the IDs of the groups the user belongs to, control which roles Boundary fetches to provide grants for the request. - -A role provides grants for a request if the grant scope ID matches the request's -scope ID and one or more of the following are true: - -- The user's ID is contained in the principal IDs set on the role -- A group the user belongs to is contained in the principal IDs set on the role -- The user is logged in and the `u_auth` user is contained in the principal IDs - set on the role -- The role contains the `u_anon` user in the in the principal IDs set on the - role - -Roles are composable; a user's final set of grants will be composed of grants -that originate from all matching roles. - -## Next steps - -1. Refer to [Assignable permissions](/boundary/docs/rbac/assignable-permissions) for more information about the permissions you can assign to Boundary principals. -1. Refer to [Permission grant formats](/boundary/docs/rbac/permission-grant-formats) for more information about grant strings and example formats. -1. Refer to [Manage access with roles](/boundary/docs/rbac/manage-roles) for instructions to configure roles and grant scopes for principals. -1. Refer to the [Resource tables](/boundary/docs/rbac/resource-table) for a cheat sheet to help you manage your permissions. \ No newline at end of file diff --git a/website/content/docs/rbac/manage-roles.mdx b/website/content/docs/rbac/manage-roles.mdx deleted file mode 100644 index ffcebb658..000000000 --- a/website/content/docs/rbac/manage-roles.mdx +++ /dev/null @@ -1,424 +0,0 @@ ---- -layout: docs -page_title: Manage access with roles -description: >- - Use roles to manage permissions assigned to users and groups. Create roles and assign principals and grants to them. Add grant scopes and configure inheritance. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Manage access with roles - -[Roles](/boundary/docs/domain-model/roles) in Boundary manage the permissions assigned to principals: - -- [Users](/boundary/docs/domain-model/users) -- [Groups](/boundary/docs/domain-model/groups) -- [Managed groups](/boundary/docs/domain-model/managed-groups) - -You can define a role in the global, org, or project scopes. - -In this topic, we show how to create a role in Boundary, assign that role a permission set using grants, and assign principals to the role. - - - -All resource IDs in this guide are examples. Boundary generates unique IDs for every resource, with the exception of the resources that are created when you use Boundary's `dev` mode. Make sure you substitute your own resource IDs when you follow this example. For example, if you execute `boundary roles create`, use the resource ID of the role in your stdout, not the ID in the example command. - - - -## Create a role - -Roles can live in the global, org, or project scopes. In this example, we create a role in the generated org scope in [Boundary's `dev` mode](/boundary/docs/getting-started/dev-mode). - - - - -```shell-session -$ boundary roles create -scope-id o_1234567890 -name list_all_resources -description "List all resources" - -Role information: - Created Time: Thu, 25 Jul 2024 17:21:22 MDT - Description: List all resources - Grant Scope ID: this - ID: r_22sVJoKZj3 - Name: list_all_resources - Updated Time: Thu, 25 Jul 2024 17:21:22 MDT - Version: 2 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org - - Authorized Actions: - add-principals - set-grants - remove-grants - no-op - remove-principals - set-grant-scopes - read - update - add-grant-scopes - delete - add-grants - set-principals - remove-grant-scopes - - Grant Scope IDs: - ID: this -``` - - - - -Complete the following steps in the Boundary Admin UI. - -1. Log in to Boundary. -1. Navigate to an org, then select **Roles** on the navigation pane. -1. Click the **New** button. -1. Fill in the role details, including the name `List all resources`. -1. Click **Save**. You are then directed to the role's **Settings** page. - -![The Create a new role dialog lets you name and describe the new role.](/img/ui/new-role_light.png#light-theme-only) -![The Create a new role dialog lets you name and describe the new role.](/img/ui/new-role_dark.png#dark-theme-only) - - - - -Before you create a role, ensure that the principals you want to assign to the role exist. - -For example, to create an org, project, user, and a group in an org scope, use the following resources: - -```hcl -resource "boundary_scope" "org" { - name = "org_one" - description = "My org scope" - scope_id = "global" - auto_create_admin_role = true - auto_create_default_role = true -} - -resource "boundary_scope" "project" { - name = "project_one" - description = "My project scope" - scope_id = boundary_scope.org.id - auto_create_admin_role = true -} - -resource "boundary_user" "foo" { - name = "Foo user" - scope_id = boundary_scope.org.id -} - -resource "boundary_group" "bar" { - name = "Bar group" - scope_id = boundary_scope.org.id -} -``` - -Next, add the `boundary_role` resource, adding the org scope for `scope_id`: - -```hcl -resource "boundary_role" "listonly" { - name = "listonly" - description = "A list only role" - scope_id = boundary_scope.org.id -} -``` - - - - -## Assign principals to a role - -You can grant users, groups, and managed groups permissions to perform actions by assigning them as a role principal. - - - - -Examples of principal IDs include: - -- User: `u_tfRrCUIpGH` -- Group: `g_qu2V5QMGQD` -- Managed group: `mgldap_98UNHEqtmD` - -The following example adds a group as a role principal. - -```shell-session -$ boundary roles add-principals -id r_22sVJoKZj3 -principal g_qu2V5QMGQD - -Role information: - Created Time: Thu, 25 Jul 2024 17:21:22 MDT - Description: List all resources - Grant Scope ID: this - ID: r_22sVJoKZj3 - Name: list_all_resources - Updated Time: Thu, 25 Jul 2024 17:33:33 MDT - Version: 3 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org - - Authorized Actions: - set-grant-scopes - no-op - read - update - set-principals - add-principals - set-grants - remove-principals - remove-grant-scopes - delete - add-grants - add-grant-scopes - remove-grants - - Principals: - ID: g_qu2V5QMGQD - Type: group - Scope ID: global - - Grant Scope IDs: - ID: this -``` - - - - -1. Log in to Boundary. -1. Select **Roles** in the navigation pane, and then select the role you want to assign principals to. -1. From the role's **Setting** page, click on the **Principals** tab. -1. Click the **Add Principals** button, or select it from the **Manage** dropdown. -1. Select one or more users, groups, or managed groups to associate with the role. -1. Click the **Add Principals** button. The role's **Principals** page should now show the principals you selected before. - -![The Principals tab lets you assign principals to a role.](/img/ui/add-role-principal_light.png#light-theme-only) -![The Principals tab lets you assign principals to a role.](/img/ui/add-role-principal_dark.png#dark-theme-only) - - - - -You can assign principals with the `principal_ids` attribute. - -The following example adds the `boundary_user.foo` and `boundary_group.bar` principals to the role. - -```hcl -resource "boundary_role" "listonly" { - name = "listonly" - description = "A list only role" - principal_ids = [boundary_user.foo.id,boundary_group.bar.id] - scope_id = boundary_scope.org.id -} -``` - - - - -## Assign grants to a role - -Grants describe the actions that the principals are allowed to perform. For more information on how to format grants, refer to [Permission grant formats](/boundary/docs/rbac/permission-grant-formats). - -In this example, we give a role read and list permissions for all resources. The grant we apply for the role is: - -```text -ids=*;type=*;actions=no-op,list -``` - -The `no-op` action enables users that don't have any other assigned permissions, like read or update, the ability to list resources they cannot take any actions on. - - - - -```shell-session -$ boundary roles add-grants -id r_22sVJoKZj3 -grant 'ids=*;type=*;actions=no-op,list' - -Role information: - Created Time: Thu, 25 Jul 2024 17:21:22 MDT - Description: List all resources - Grant Scope ID: this - ID: r_22sVJoKZj3 - Name: list_all_resources - Updated Time: Thu, 25 Jul 2024 17:42:46 MDT - Version: 4 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org - - Authorized Actions: - remove-grant-scopes - add-grants - add-grant-scopes - delete - add-principals - set-grant-scopes - set-principals - remove-principals - set-grants - remove-grants - no-op - read - update - - Principals: - ID: g_qu2V5QMGQD - Type: group - Scope ID: global - - Canonical Grants: - ids=*;type=*;actions=list,no-op - - Grant Scope IDs: - ID: this -``` - - - - -1. Log in to Boundary. -1. Select **Roles** in the navigation pane, and the select the role you want to assign grants to. -1. From the role's **Settings** page, click on the **Grants** tab. -1. In the **New Grant** field, paste in the example grant: `ids=*;type=*;actions=no-op,list` -1. Click **Add**. -1. Click **Save** to commit your grant changes. - -![The Grants tab on the Roles page lets you add grants to principals.](/img/ui/add-role-grant_light.png#light-theme-only) -![The Grants tab on the Roles page lets you add grants to principals.](/img/ui/add-role-grant_dark.png#dark-theme-only) - - - - -You assign grants using the `grant_strings` attribute. - -```hcl -resource "boundary_role" "listonly" { - name = "listonly" - description = "A list only role" - principal_ids = [boundary_user.foo.id,boundary_group.bar.id] - grant_strings = ["ids=*;type=*;actions=no-op,list"] - scope_id = boundary_scope.org.id -} -``` - - - - -## Add grant scopes - -You can assign roles to multiple scopes and configure role inheritance. - -Role can have a combination of the following grant scope IDs: - -- `this` (this scope) -- `children` (all direct children of the assigned scope, `global` and org scopes only) -- `descendants` (all descendants of a scope, `global only`) -- ID (such as `o_v2MpV4vBHN` or `p_0vfvaQPwhD`. Roles accept multiple grant scope IDs) - -Boundary automatically assigns grants the `this` scope, when you create them. - - - - -The following command adds the IDs of a project scope and the direct children of the role's scope to the role. This includes projects within `o_1234567890` in this example. - -```shell-session -$ boundary roles add-grant-scopes -id r_22sVJoKZj3 -grant-scope-id "p_1234567890" -grant-scope-id "children" - -Role information: - Created Time: Thu, 25 Jul 2024 17:21:22 MDT - Description: List all resources - ID: r_22sVJoKZj3 - Name: list_all_resources - Updated Time: Thu, 25 Jul 2024 18:06:08 MDT - Version: 6 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org - - Authorized Actions: - remove-principals - set-grants - remove-grants - delete - add-principals - add-grants - set-grant-scopes - set-principals - add-grant-scopes - no-op - read - update - remove-grant-scopes - - Principals: - ID: g_qu2V5QMGQD - Type: group - Scope ID: global - - Canonical Grants: - ids=*;type=*;actions=list,no-op - - Grant Scope IDs: - ID: children - ID: p_1234567890 - ID: this -``` - - - - -1. Log in to Boundary. -1. Select **Roles** in the navigation pane, and then select the role. -1. Click on the **Scopes** tab. The `this` scope will already be applied to the grant. -1. From the **Manage** dropdown, click **Manage Scopes**. -1. Click **Manage custom scopes**. -1. Select any additional scopes that you want to assign this grant, such as `p_1234567890` in Boundary's `dev` mode. - - The settings you define for the role's children or descendants will apply to any scope you assign to this role. - -1. Click **Apply changes to org**. -1. Toggle the switch beside **Add all children**. -1. Click **Save**. The selected scope IDs and `children` are listed under the **Scopes** tab. - -![The Manage Scopes dialog lets you customize which scopes are associated with a role.](/img/ui/add-role-scopes_light.png#light-theme-only) -![The Manage Scopes dialog lets you customize which scopes are associated with a role.](/img/ui/add-role-scopes_dark.png#dark-theme-only) - - - - -You can declare scope inheritance with the `grant_scope_ids` attribute. - -The following example adds the assigned scope's ID with `this`, the ID of a project scope, and the direct children of the role's scope to the role. This includes projects within `org_one` in this example. - -```hcl -resource "boundary_role" "listonly" { - name = "listonly" - description = "A list only role" - principal_ids = [boundary_user.foo.id,boundary_group.bar.id] - grant_strings = ["ids=*;type=*;actions=no-op,list"] - scope_id = boundary_scope.org.id - grant_scope_ids = ["this",boundary_scope.project.id,"children"] -} -``` - - - - -## More information - -1. Refer to [Assignable permissions](/boundary/docs/rbac/assignable-permissions) for more information about the permissions you can assign to Boundary principals. -1. Refer to [Permission grant formats](/boundary/docs/rbac/permission-grant-formats) for more information about grant strings and example formats. -1. Refer to the [Resource tables](/boundary/docs/rbac/resource-table) for a cheat sheet to help you manage your permissions. diff --git a/website/content/docs/rbac/permission-grant-formats.mdx b/website/content/docs/rbac/permission-grant-formats.mdx deleted file mode 100644 index dc69bce48..000000000 --- a/website/content/docs/rbac/permission-grant-formats.mdx +++ /dev/null @@ -1,163 +0,0 @@ ---- -layout: docs -page_title: Permission grant formats -description: >- - Learn how to construct grant strings that map resources and permissions. Understand ID, Type, Pinned, and Wildcard grant formats. View possible grant templates. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Permission grant formats - -Each grant string is a mapping that describes a resource or set of resources and -the permissions that should be granted on them. - -Refer to [Assignable permissons](/boundary/docs/rbac/assignable-permissions) for more information about the permissions you can include in grants. - -A grant string has a form similar to: - -`ids=;type=;actions=;output_fields=` - -There are two types of selectors: - -- An `ids` field that indicates a specific resource or a wildcard to match all. -You can enter multiple comma-separated ID values in a grant string. -- A `type` field that indicates a specific resource type or a wildcard to match - all; this might also be used to grant permissions on collections of resources. - -Selectors are used to indicate the resources on which the grant should apply, -using specific IDs or wildcard IDs and type selectors. - -You can supply grant strings using a human-friendly string syntax or using JSON. -The following examples use the canonical string syntax. -The JSON equivalents are an object with a string `id` value, a string `type` value, a string array `actions` value, and a string array `output_fields` value. - -In the following examples, `output_fields` is omitted for brevity, but they are valid for each example. -It is also valid to omit `actions` and specify only `output_fields`. - -## ID only - -The simplest form of grant allows the specified actions for a given resource. -Refer to the following example: - -`ids=hsst_1234567890;actions=read,update` - -This example grants `read` and `update` actions to the resource `hsst_1234567890`. It is invalid -to specify `create` or `list` as actions in this format, because this format -explicitly identifies a resource. -The `create` and `list` actions are only supported for collections. - -You can enter multiple comma-separated ID values in a grant string: - -`ids=hsst_1234567890,hsst_0987654321;actions=read,update` - -This example grants the `read` and `update` actions to both resources `hsst_1234567890` and `hsst_0987654321`. - -## Type only - -You can configure a grant to allow the specified actions for a given type. -Refer to the following example: - -`type=host-catalog;actions=create,list` - -Because type specifies only a collection as opposed to specific resources within -that collection, only collection actions are allowed in this format. Currently, -this includes the `create` and `list` actions. - -There is one additional restriction: this grant format is only valid against "top-level" -resource types, which include: - -- Auth methods -- Auth tokens -- Groups -- Host catalogs -- Roles -- Scopes -- Sessions -- Targets -- Users - -The reason for this is that other types of resources are contained within one of -these resource types. -For example, accounts are instantiated within an auth -method. To specify actions against an auth method, you must also specify the -specific containing resource you want to apply the grants to. -You can update those resources using the pinned format shown below. - -## Pinned ID - -This form "pins" actions to a non-top-level type within a specific ID. -Refer to the following example: - -`ids=hcst_1234567890;type=host-set;actions=create,read,update` - -In this example, the user is able to create, read, or update host sets within -the scope, but only the host sets belonging to host catalog `hcst_1234567890`. -Pinning is essentially a way to use top-level resources to create mini -permission boundaries for their subordinate resources. - -## Wildcards - -You can use wildcards in grants. -Refer to the following sections for the various wildcard possibilities that are supported. - -### Wildcard ID - -When just the ID is `*`, it matches all IDs of the given type. You can use this grant format -with both top-level resource types and non-top-level resource types. -Refer to the following example: - -`ids=*;type=host-set;actions=create,read,update,set-hosts` - -### Wildcard type - -For non-top-level resources with pinned IDs, the `type` can be a wildcard. -Refer to the following example: - -`ids=hcst_1234567890;type=*;actions=create,read,update` - -This grant format would allow `create`, `read`, and `update` actions for all types of -subordinate resources underneath the host -catalog with ID `hcst_1234567890`. -In this example, that would include host sets and hosts. - -### Wildcard ID and type - -If the ID and type are both wildcards, the grant is essentially a catch-all that matches any resource of any type within the scope and allows the given actions. -Refer to the following example: - -`ids=*;type=*;actions=read,list` - -### Wildcard ID, type, and actions - -ID, type, and actions can all be wildcards. -Refer to the following example: - -`ids=*;type=*;actions=*` - -Such a grant is essentially a full administrator grant for a scope. - -## Templates - -A few template possibilities exist for grants. -The following templates substitute a given value into the ID field of the grant string at evaluation time: - -- `{{.Account.Id}}`: The substituted value is the account ID associated with the - token used to perform the action. As an example, - `ids={{.Account.Id}};actions=read,change-password"` is one of Boundary's - default grants to allow users that have authenticated with the Password auth - method to change their own password. -- `{{.User.Id}}`: The substituted value is the user ID associated with the token - used to perform the action. - -## More information - -1. Refer to [Assignable permissions](/boundary/docs/rbac/assignable-permissions) for more information about the permissions you can assign to Boundary principals. -1. Refer to the [Resource tables](/boundary/docs/rbac/resource-table) for a cheat sheet to help you manage your permissions. - -## Next steps - -Refer to [Manage access with roles](/boundary/docs/rbac/manage-roles) for instructions to configure roles and grant scopes for principals. diff --git a/website/content/docs/rbac/users/manage-users-groups.mdx b/website/content/docs/rbac/users/manage-users-groups.mdx deleted file mode 100644 index cf51c9e18..000000000 --- a/website/content/docs/rbac/users/manage-users-groups.mdx +++ /dev/null @@ -1,324 +0,0 @@ ---- -layout: docs -page_title: Manage users and groups -description: How to manage Boundary users and groups ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Managing principals - -Users and Groups in Boundary are collectively known as principals. Assigning -[grants](/boundary/docs/rbac#grant-strings) on -[roles](/boundary/docs/domain-model/roles) is performed through principal IDs; -that is, the unique IDs of either users, groups, or both. - -This page will walk you through managing users within Boundary. (Groups will be -added at a later time.) - -## Users - -Users in Boundary represent an _internal_ notion of a particular entity (human, -machine, etc.). Users can be correlated with one or more -[account](/boundary/docs/domain-model/accounts) resources via [auth -methods](/boundary/docs/domain-model/auth-methods). Accounts represent -_external_ notions of a particular entity. Among other use-cases, this mechanism -allows for an easy way to switch users to new IdPs within the organization -deploying Boundary. - -In this example, we're going to show you how to create an account and user for -an auth method to allow that user to login to Boundary. Because an auth method -can be at the org and global scopes, we're going to create an org-scoped auth -method in the default generated org in a `dev` mode server. (If you're not -running `dev` mode, you'll need to substitute appropriate generated IDs in the -steps below.) - -~> Currently, all auth methods auto-vivify users on authentication; that is, on -successful authentication against an account, if there is no user already linked -with that account, a user will be automatically created. This may be a nice -time-saver, but in other situations (such as when you want Terraform to fully -describe the Boundary resources) this may be undesirable, so the steps below -walk you through manually making these resources and linking them. A future -Boundary update will allow turning off auto-vivification on a per-auth-method -basis. - -## Create an auth method - -Create a password-type auth method in the generated default org: - - - - - -```bash -$ boundary auth-methods create password -scope-id o_1234567890 -name org_auth_method -description 'Org auth method' - -Auth Method information: - Created Time: Tue, 29 Sep 2020 08:32:04 PDT - Description: Org auth method - ID: ampw_PbE6nNT72a - Name: org_auth_method - Type: password - Updated Time: Tue, 29 Sep 2020 08:32:04 PDT - Version: 1 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org - - Attributes: - Minimum Login Name Length: 3 - Minimum Password Length: 8 -``` - - - - - -1. Navigate to an org, then to auth methods. -1. Choose the **New** button. -1. Fill in the auth method details. -1. Choose **Save** and view the auth method edit form page. - - - - - - - -```hcl -resource "boundary_auth_method" "password" { - name = "org_auth_method" - description = "Password auth method for org" - type = "password" - scope_id = "o_1234567890" -} -``` - - - - - -## Create an account - -Create an account for the org-scoped auth method. Note that by default, user -names must be all lowercase alphanumeric of at least 3 characters and the -password must be 8 or more characters. (The minimum lengths can be changed in -the attributes for the auth method, if desired.) - - - - - -```bash -boundary accounts create password -auth-method-id ampw_PbE6nNT72a -login-name 'myuser' -name my_account -description 'My password account' - -Account information: - Auth Method ID: ampw_PbE6nNT72a - Created Time: Tue, 29 Sep 2020 08:35:02 PDT - Description: My password account - ID: acctpw_BOn3EcqQfe - Name: my_account - Type: password - Updated Time: Tue, 29 Sep 2020 08:35:02 PDT - Version: 1 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org - - Attributes: - Login Name: myuser -``` - - - - - -1. Navigate to orgs > auth methods > auth method, then to the **Accounts** tab. -1. Choose the **New** button. -1. Fill the account details. -1. Choose **Save** and view the account edit form page. - - - - - - - -```hcl -resource "boundary_account" "my_user" { - name = "myuser" - description = "Login account for my user" - type = "password" - login_name = "myuser" - password = "supersecure" - auth_method_id = "ampw_PbE6nNT72a" -} -``` - - - - - -## Create a user - -Next, create a user at the org scope. - - - - - -First, create the user resource: - -```bash -$ boundary users create -name "myuser" -description "My user resource" -scope-id o_1234567890 - -User information: - Created Time: Tue, 29 Sep 2020 06:37:12 PDT - Description: My user resource - ID: u_yXhZpt5PX3 - Name: myuser - Updated Time: Tue, 29 Sep 2020 06:37:12 PDT - Version: 1 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org -``` - -Then associate the user with the account previously created: - -```bash -$ boundary users set-accounts -id u_yXhZpt5PX3 -account acctpw_BOn3EcqQfe - -User information: - Created Time: Tue, 29 Sep 2020 08:43:43 PDT - Description: My org user - ID: u_yXhZpt5PX3 - Name: my_user - Updated Time: Tue, 29 Sep 2020 08:54:11 PDT - Version: 2 - - Scope: - ID: o_1234567890 - Name: Generated org scope - Parent Scope ID: global - Type: org - - Accounts: - ID: acctpw_BOn3EcqQfe - Scope ID: o_1234567890 -``` - - - - - -1. Navigate to an org, then to users. -1. Choose the **New** button. -1. Fill the user details. -1. Choose **Save** and view the user edit form page. - - - -Then associate the user with an account: - -1. From the user edit form, navigate to the **Accounts** tab. -1. Choose **Add Accounts** from the **Manage** dropdown. -1. Select one or more accounts to associate with the user. -1. Choose the **Add Accounts** button and view the user accounts list. - - - - - - - -```hcl -resource "boundary_user" "myuser" { - name = "myuser" - description = "My user resource" - - # taken from the example account resource defined above - account_ids = [ boundary_account.myuser.id ] - scope_id = "o_1234567890" -} -``` - - - - - -## Log in - -Now you can test logging in. - - - - - -```bash -$ boundary authenticate password -auth-method-id ampw_PbE6nNT72a -``` - - - - - -1. Navigate to the authenticate page. -1. Choose an org scope with which to authenticate. -1. Fill the credentials. -1. Choose **Authenticate** and view the projects overview for the org. - - - - - - - -```hcl -provider "boundary" { - addr = "http://127.0.0.1:9200" - auth_method_id = "ampw_PbE6nNT72a" - password_auth_method_login_name = "myuser" - password_auth_method_password = "supersecure" -} -``` - - - diff --git a/website/content/docs/rbac/users/managed-groups.mdx b/website/content/docs/rbac/users/managed-groups.mdx deleted file mode 100644 index b162106e2..000000000 --- a/website/content/docs/rbac/users/managed-groups.mdx +++ /dev/null @@ -1,171 +0,0 @@ ---- -layout: docs -page_title: Filtering - managed groups -description: >- - Learn how to configure filters for managed groups. View search filter attributes and examples of filters for OIDC and LDAP managed groups. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Filter managed groups - -This page describes how to use filters with OIDC or LDAP managed groups. It assumes that you are familiar with the Boundary's general filter syntax as well as [OpenID Connect](https://openid.net/specs/openid-connect-core-1_0.html) or [LDAP](https://ldap.com/ldap-specifications/). - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. - -## OIDC filters - -Currently, two blocks of data are available for OIDC filters: - -- `/token/` contains claims from the JSON web token (JWT) that is returned by the OIDC Identity - Provider (IdP). For example, `/token/sub` is the `"sub"` claim from the token. - -- `/userinfo/` contains claims from the - [UserInfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) - endpoint. - -### OIDC examples - -The specific content of the claims is unique to the IdP, besides any claims that are part of the OIDC specification. -We provide some examples in this section using sample claims. -Refer to your IdP for the specific syntax. - -Example JWT claims: - - - -```json -{ - "iss": "https://server.example.com", - "sub": "24400320", - "aud": "s6BhdRkqt3", - "nonce": "n-0S6_WzA2Mj", - "exp": 1311281970, - "iat": 1311280970, - "auth_time": 1311280969, - "custom": { - "department": "infosec" - } -} -``` - - - -Example UserInfo claims: - - - -```json -{ - "roles": ["user", "operator"], - "sub": "alice@example.com", - "email": "rabbithole@example.com", - "name": "Alice of Wonderland" -} -``` - - - -The following are some examples of using these values in filters: - -- `"operator" in "/userinfo/roles"` matches users (like Alice) that have - `"operator"` in the roles returned by UserInfo. - -- `"/token/custom/department" == "infosec" or "/token/custom/department" == "ops"` matches users (like Alice) that are either in the `ops` or `infosec` departments. - -## LDAP managed groups - -Membership is determined by matching the LDAP group names against an LDAP account's associated groups. -Every authentication updates the group membership comparison. - -To enable managed groups, set the LDAP auth method `enable_groups` attribute to `true`. - -After you enable groups on the auth method, the managed group membership is defined as a list with the `group-names` attribute on the managed group itself. - -### LDAP auth method search filter attributes - -When you define the auth method, you can set a number of group and user attributes to resolve group membership according to the structure of your directory schema. - -You can set an optional `group_dn` to define the base distinguished name (DN) to perform a group search under. A common example is: - -`ou=Groups,dc=example,dc=com` - -Because the directory schema can vary, you may specify a `group_filter` that constructs a group membership query from a template. The following default template is compatible with several common directory schemas: - -`(|(memberUid={{.Username}})(member={{.UserDN}})(uniqueMember={{.UserDN}}))` - -You may also set a `group_attr` value that enumerates group membership based on the objects returned from the `group_filter`. Common examples include: - -- `group_filter` queries returning group objects, use: `cn`. This is the default. -- `group_filter` queries returning user objects, use: `memberOf`. - -### LDAP examples - -Directory schemas can vary according to your implementation. -We provide some examples in this section using the schema declared for the [Online LDAP Test Server](https://www.forumsys.com/2022/05/10/online-ldap-test-server/) provided by ForumSystems. -Refer to your directory schema for the specific syntax. - -LDAP server information (read-only access): -Server: `ldap.forumsys.com ` -Port: `389` -Bind DN: `cn=read-only-admin,dc=example,dc=com` -Bind password: `password` - -All user passwords are `password`. You may also bind to individual Users (uid) or the two Groups (ou) that include: - -Mathematicians: `ou=mathematicians,dc=example,dc=com` -- riemann -- gauss -- euler -- euclid - -Scientists: `ou=scientists,dc=example,dc=com` -- einstein -- newton -- galieleo -- tesla - -Example LDAP auth method attributes: - - - -```text -Attributes: - bind_dn: cn=read-only-admin,dc=example,dc=com - bind_password_hmac: IC29KNPDTPC57nc2aT9UFthOh4Kh1i3660_euBsgL7Y - enable_groups: true - group_dn: dc=example,dc=com - state: active-public - urls: [ldap://ldap.forumsys.com] - user_attr: uid - user_dn: dc=example,dc=com -``` - - - -In this example, the following attributes are set on the LDAP auth method: - -- `urls:` `"ldap://ldap.forumsys.com"` -- `bind-dn`:` "cn=read-only-admin,dc=example,dc=com"` -- `bind-password`:` file://bind-pass.txt` (passed directly if you use Terraform) -- `user-dn`:` "dc=example,dc=com"` -- `user-attr`:` "uid"` -- `group-dn`:` "dc=example,dc=com"` - -Example managed group attributes: - - - -```text -Attributes: - group_names: [Mathematicians] -``` - - - -In this example, the following attribute is set on the managed group: - -- `group-names`: `"Mathematicians"` \ No newline at end of file diff --git a/website/content/docs/release-notes/v0_10_0.mdx b/website/content/docs/release-notes/v0_10_0.mdx deleted file mode 100644 index 7f3214678..000000000 --- a/website/content/docs/release-notes/v0_10_0.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: docs -page_title: v0.10.0 release notes -description: >- - Learn more about the features included in the Boundary 0.10.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.10.0 - -The release notes below contain information about new functionality available in the Boundary v0.10.0 release. -To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). -To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.10.0, please review Boundary's [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.10.0 highlights - -**Credential Management of SSH Keys:** Boundary 0.10 includes enhancements to credential management, including added support for management of SSH private keys. - - -**SSH Brokering Helper Function:** We’ve expanded support for the SSH brokering helper function that allows users to seamlessly connect to machines remotely -without having to manually enter their brokered credentials. - -**Enhanced IAM Workflows in the Boundary Admin UI:** Boundary 0.10 introduces enhanced IAM associations to Boundary’s Admin UI, allowing users to expand IAM associations in a -project scope to resources such as group members and principals that reside in other scopes. - -**SSH Credential Injection via Password and Public Key Authentication:** HCP Boundary now supports SSH Credential Injection, an active method of injecting credentials into an -established connection, so that credentials are never exposed to users. [Learn more here](/boundary/tutorials/hcp-administration/hcp-ssh-cred-injection). - -## What's changed - -* `ssh` Target Type With Credential Injection (HCP Boundary only): Boundary has - gained a new `ssh` target type. Using this type, username/password or SSH - private key credentials can be sourced from `vault` credential libraries or - `static` credentials and injected into the SSH session between a client and - end host. This allows users to securely SSH to remote hosts while never being - in possession of a valid credential for that target host. -* SSH Private Key Credentials: There is now an `ssh_private_key` credential type - that allows submitting a username/private key (and optional passphrase) to - Boundary for use with credential injection or brokering workflows. -* `boundary connect ssh` Credential Brokering Enhancements: we have extended - support into the `boundary connect ssh` helper for brokered credentials of - `ssh_private_key` type; the command will automatically pass the credentials to - the `ssh` process ([PR](https://github.com/hashicorp/boundary/pull/2267)). -* `boundary authenticate`, `boundary accounts`: Enables use of `env://` and - `file://` syntax to specify location of a password - - -**For more detailed information of all changes since 0.9.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md)** diff --git a/website/content/docs/release-notes/v0_11_0.mdx b/website/content/docs/release-notes/v0_11_0.mdx deleted file mode 100644 index 8c73bf22f..000000000 --- a/website/content/docs/release-notes/v0_11_0.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -page_title: v0.11.0 release notes -description: >- - Learn more about the features included in the Boundary 0.11.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.11.0 - -The release notes below contain information about new functionality available in the Boundary v0.11.0 release. To see a granular record of when each item was -merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). To learn about what Boundary -consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.11.0, please review Boundary's -[general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.11.0 highlights - -**HCP Boundary General Availability:** Boundary is now available on the HashiCorp Cloud Platform! HCP Boundary provides an easy way to securely access critical -systems with fine-grained authorizations based on trusted identities. Boundary on HashiCorp Cloud Platform provides a fully managed, single workflow to securely -connect to hosts and critical systems across Kubernetes clusters, cloud service catalogs, and on-premises infrastructure - -**Private Vault Access:** HCP Boundary users are now able to integrate their on-premises instance of Vault without having to publicly expose Vault. This is -accomplished by deploying a Boundary worker binary within the same private network as the Vault instance and peering with the HCP Boundary control plane. -[Learn more here](/boundary/tutorials/access-management/hcp-vault-cred-brokering-quickstart). - -**SSH Credential Injection:** SSH Targets can now be set up through the Admin UI, making the Credential Injection workflow more seamless and easy to use. -[Learn more here](/boundary/tutorials/hcp-administration/hcp-ssh-cred-injection). - -**Improved Worker Management:** Administrators are now able to register and manage Boundary workers through the Admin UI. Admin users can view session counts, -IP addresses and release versions of all registered workers through the 'Workers' tab. - -**Support for Generic Credentials:** Boundary now supports brokering of 'generic credentials'. This will enable users to broker any kind of key/value pair type -credentials when they are connecting to a remote host. - -## What's changed - -**For more detailed information of all changes since 0.10.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md)** \ No newline at end of file diff --git a/website/content/docs/release-notes/v0_12_0.mdx b/website/content/docs/release-notes/v0_12_0.mdx deleted file mode 100644 index e783dad55..000000000 --- a/website/content/docs/release-notes/v0_12_0.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -layout: docs -page_title: v0.12.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.12.0 release and understand deprecations and changes. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.12.0 - -The release notes below contain information about new functionality available in the Boundary v0.12.0 release. -To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). -To learn about what Boundary consists of, we highly recommend you review the [Getting Started Page](/boundary/docs/getting-started). - -For instructions on how to upgrade an existing Boundary deployment to v0.12.0, refer to Boundary's [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.12.0 highlights - -The 0.12.0 release adds major new functionality to Boundary. -Highlights include: - -- Reversed-proxying to target networks through multi-hop sessions (HCP only) -- Credential injection using Vault SSH signed certificates (HCP only) -- Addresses on targets -- Authentication improvements - -## New features - -**Reverse proxying to target networks using multi-hop sessions (HCP only)**: You can deploy Boundary workers in any public or private network to enable secure access to resources. -In previous versions workers needed outbound network access to the HCP Boundary control plane, and those workers needed inbound network access from the client that was trying to establish the session. -However, many users do not want any inbound access to their private networks, which means that remote users would need to be on the same corporate network or use a VPN to reach the Boundary worker. - -We are introducing a feature called multi-hop sessions in version 0.12.0. -This new feature allows multiple workers to chain together to form reverse-proxy connections. -Now a worker in a private network only requires outbound network access to reach upstream workers or the control plane. -Remote users no longer require network access to the private network. -They only need network access to the client-facing (or "frontline") worker. - -For more information, refer to the [multi-hop session](/boundary/docs/configuration/worker/pki-worker#multi-hop-sessionshcp-only) documentation. - -**Credential injection using Vault SSH signed certificates (HCP only)**: You can now configure SSH credential injection using Vault's secret engine to create the SSH certificate credentials. -SSH certificate-based authentication extends key-based authentication using digital signatures -Your users' authenticity is determined by a certificate signed by a trusted certificate authority (CA). -You configure Vault's secrets engine to act as the CA. -Vault is the only supported CA in Boundary version 0.12.0. - -SSH certificates let you specify how long they are valid for, who can gain access to a target, how users can log in, and what commands can be used on the target machine. -SSH certificates are short-lived and self-destructive unlinke SSH key pairs. - -For more information, refer to the [Vault SSH certificate credential library attributes](/boundary/docs/domain-model/credential-libraries#vault-ssh-certificate-credential-library-attributeshcp-only) documentation. - -**Addresses on targets**: HashiCorp Boundary offers an extensible domain model that allows administrators to organize target resources in a way that best compliments how their organization manages its computing infrastructure. -But that flexibility could become a hindrance when setting up a quick proof-of-concept and defining a target to create a session. - -Version 0.12.0 introduces a quick way to set up a target. -Previously, you would need to define [hosts](/boundary/docs/domain-model/hosts) within a [host set](/boundary/docs/domain-model/host-sets), and then assign that to a [target](/boundary/docs/domain-model/targets). -The hosts contain the hostname or IP address of the computing resources, and the target definition contains various connection parameters for those hosts. -Starting with version 0.12.0 the hostname or IP address can be specified directly within the target definition, without having to create hosts, host sets, or a host catalog. - -This functionality allows you to get started with Boundary quickly while still maintaining the same flexibility for more complex and production-like scenarios. - -For more information, refer to the [Target and Host Resources](/boundary/docs/domain-model#target-and-host-resources) documentation. - -**Authentication improvements**: In previous versions, authenticating through the CLI required you to provide an [**Auth Method ID**](/boundary/docs/domain-model/auth-methods). -This value could be difficult to find if you did not previously save it. -Starting in version 0.12.0 the Boundary CLI no longer requires an **Auth Method ID**, and will use the default **Auth Method ID** if none is provided. -The built-in password auth method is now marked as **Primary** when an HCP Boundary cluster is deployed. - -**JSON credentials**: In previous versions Boundary only supported two types of static credentials: Username/Password and SSH Private Key. -In version 0.12.0, we are releasing a new type of credential to the static credential store. -You can now create and broker JSON blobs to authorized users at session establishment time. - -For more information, refer to the [JSON credentials](/boundary/docs/domain-model/credentials#json) documentation. - -**Job run table maintenance**: A new job was added to automatically clean up completed runs from the `job_run` table. -It deletes any existing completed jobs on a regular interval to help manage the size of your Boundary database. - -## Deprecations and changes - -Boundary version 0.12.0 has the following deprecations or changes: - -- A vulnerability in Boundary was identified such that when a Key Management Service (KMS) was defined in Boundary's configuration file with the intent of using the KMS to encrypt the credentials stored on disk, new credentials created after a rotation may not have been encrypted via the intended KMS. -This would result in the credentials being stored in plain text on the Boundary PKI worker's disk. -This vulnerability, [CVE-2023-0690](https://discuss.hashicorp.com/t/hcsec-2023-03-boundary-workers-store-rotated-credentials-in-plaintext-even-when-key-management-service-configured/49907), was fixed in Boundary 0.12.0. - -- In this release there is a change to the initial components that are created when you run Boundary in dev mode. -The `boundary dev` command now creates two TCP targets: one is created using the host source, and the other is created using the `address` field. -Note that this may affect you if you use the default target for testing. - -- In Boundary 0.9.0, targets were updated to require a default port value. -This had been the original intention; it was a mistake that it was optional. -Unfortunately, due to a separate defect in the update verification logic for static hosts, it was possible for a host to be updated (but not created) with a port. -This meant that targets could use ports attached to host addresses, which was not the intention and lead to confusing behavior across different installations. - - In this version, updating static hosts no longer allows ports to be part of the address. - Any port on such a host will be ignored in favor of the default port on the target when you authorize a session. - In Boundary 0.14.0 this will become an error instead. - This means that the fallback logic for targets that did not have a default port defined is no longer in service. - All targets must now have a default port defined. - -- With the introduction of `vault-ssh-certificate` credential libraries, the Vault credential library subtype is being renamed to `vault-generic` to denote it as a credential library that can be used in a generalized way to issue credentials from Vault. -Existing credential libraries with the subtype of `vault` will be updated to `vault-generic`. -The `vault` subtype will still be accepted as a valid subtype in API requests to the credential library's endpoints, but it is deprecated and will be removed in Boundary 0.14.0. -We recommend that you use `vault-generic` instead. - - In addition, the Boundary credential library sub-commands `create vault` and `update vault` will still function, but are deprecated. - Instead, you should use the Boundary credential library sub-commands `create vault-generic` and `update vault-generic`. \ No newline at end of file diff --git a/website/content/docs/release-notes/v0_13_0.mdx b/website/content/docs/release-notes/v0_13_0.mdx deleted file mode 100644 index 9f349634b..000000000 --- a/website/content/docs/release-notes/v0_13_0.mdx +++ /dev/null @@ -1,159 +0,0 @@ ---- -layout: docs -page_title: v0.13.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.13.0 release. Understand any deprecations, changes, and known issues. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.13.0 - -The release notes below contain information about new functionality available in the Boundary v0.13.0 release. -To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). -To learn about what Boundary consists of, we highly recommend you review the [Getting Started Page](/boundary/docs/getting-started). - -For instructions on how to upgrade an existing Boundary deployment to v0.13.0, refer to Boundary's [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.13.0 highlights - -The 0.13.0 release adds major new functionality to Boundary. -Highlights include: - -- Boundary Enterprise version -- SSH session recording -- LDAP authentication method (beta) -- HCP Boundary maintenance window -- OIDC authentication improvements -- Shared KMS workers -- Static ports for targets -- Dynamic host catalog external name - -## New features - -**Boundary Enterprise**: Organizations are now able to deploy Boundary Enterprise within their self-managed infrastructure to let their teams securely access hosts and services consistently across any environment. -The introduction of Boundary Enterprise allows organizations in highly regulated industries who are prohibited from adopting cloud based solutions to leverage Boundary's secure remote access functionalities. -Boundary Enterprise has the same feature set as HCP Boundary and seamless migrations from Community Edition deployments are supported as well. - -For more information, refer to [Boundary Enterprise](/boundary/docs/enterprise). - - - -The version of Go that was used in Boundary Enterprise release 0.13.0 contained CVE-2023-39326. -Refer to the [advisory](https://github.com/advisories/GHSA-9f76-wg39-x86h) for more information. -The issue was fixed in Go versions 1.21.5. Boundary was updated to use the new Go versions in Boundary Enterprise release 0.13.5. -You should [upgrade Boundary](/boundary/tutorials/self-managed-deployment/upgrade-version) to version 0.13.5 or later. - -Community users should upgrade to version 0.14.3 or later. - - - -**SSH session recording HCP/ENT**: A fundamental challenge of securing access to sensitive computing resources is creating a system of record around users' access and actions over remote sessions. -This release introduces session recording to help you address your compliance and threat management needs. - -When you enable session recording for a target, any sessions in which a user requests access to that target are recorded. -Recorded sessions are stored in an external data store so that you can access and manage them outside of Boundary for long-lasting data retention. -You can view recorded sessions using a session player that runs in a browser. - -For more information, refer to [Auditing](/boundary/docs/concepts/auditing). -To configure session recording for targets, refer to the session recording [overview](/boundary/docs/configuration/session-recording). - -**LDAP authentication method Beta**: This release introduces a new Lightweight Directory Access Protocol (LDAP) authentication method as a preview feature. -LDAP is an open, vendor-neutral application protocol for accessing and maintaining directory information. - -You can now configure Boundary to delegate authentication to an LDAP directory. -The first time a user successfully authenticates using an LDAP auth method, a new LDAP account is created. -LDAP-managed groups let you assign roles in Boundary based on the LDAP account's group memberships. - -Create, read, update, and delete (CRUD) support for the new LDAP features is available through the CLI, API, and SDK, as well as HashiCorp Terraform. -You can use LDAP to log in through any of the Boundary clients, including the CLI, Boundary Desktop, and the Boundary admin UI. -Support for LDAP CRUD operations via the Boundary admin UI is planned for an upcoming release. - -For more information, refer to the LDAP domain model documentation: - -- [Accounts](/boundary/docs/domain-model/accounts#ldap-account-attributes-beta) -- [Auth methods](/boundary/docs/domain-model/auth-methods#ldap-auth-method-attributes-beta) -- [Managed groups](/boundary/docs/domain-model/managed-groups#ldap-managed-group-information-and-attributes-beta) - -**HCP Boundary maintenance window HCP only**: HCP Boundary automatically updates your environment when a new version of Boundary is released. -You can now schedule when that maintenance occurs to ensure that it does not interrupt peak work hours. -When you schedule a maintenance window, HCP Boundary waits util the day and time window you selected to apply any patch or major version updates. - -For more information, refer to [Maintenance windows](/hcp/docs/boundary/maintenance-window). - -**OIDC authentication improvements**: The Boundary CLI now supports user authentication against an OIDC source in locked down environments where a browser may not be available to complete the auth flow. -During authentication, the CLI will output the auth URL which can be used to complete the flow on another device and the resulting token is automatically passed to the CLI. - -**Shared KMS workers**: KMS workers now have feature parity with PKI workers. -You can use more than one KMS for registering downstreams across different networks. - -For more information, refer to the [worker configuration](/boundary/docs/configuration/worker) documentation. - -**Static ports for targets**: Administrators can now configure a default, static port for clients when connecting to targets using the optional `default_client_port` attribute. -Any workers that connect to a target will use the default port, if one is specified, unless overidden by the client attribute `-listen-port`. - -**Dynamic host catalog external name**: You can now view the AWS or Azure host name when listing hosts in CLI, admin console, and desktop client. - -## Deprecations and changes - -Boundary version 0.13.0 has the following deprecations and changes: - -- Due to the update to KMS workers, the previous KMS worker registration method is deprecated. -You must opt in to use it. -You should only use the deprecated behavior if compatibility with workers running a version less than 0.13.0 is required. -To opt in, add `use_deprecated_kms_auth_method = true` to the `worker` configuration block. - - Note that when a worker using KMS and running version 0.13.0 or later connects to a controller using KMS and running version 0.13.0 or later, they transition to the new method automatically. - To revert to the previous method after that, you must delete the worker and recreate it with the `use_deprecated_kms_auth_method` field specified. - -- Boundary now performs additional validity checking when you add grants to roles. -The checks are designed to reject grants that are not properly configured. -Previously, these would have been accepted without error, but the permissions would not be granted. -An error message is provided now, with hints for resolution. - -- `WithAutomaticVersioning` for auth tokens from the Go SDK was incorrectly being generated for auth token resources, which do not support versioning. -It has now been removed. - -- With the introduction of new plugin services, the Azure and AWS Host plugin repositories have been renamed to drop the word `host`: - - - The https://github.com/hashicorp/boundary-plugin-host-aws repository was renamed to https://github.com/hashicorp/boundary-plugin-aws. - - - The https://github.com/hashicorp/boundary-plugin-host-azure repository was renamed to https://github.com/hashicorp/boundary-plugin-azure. - -- PostgreSQL 12 or greater is now required. -PostgreSQL 11 is no longer supported. - -## Known issues - -**Vulnerability to session hijacking through TLS certificate tampering**: Boundary and Boundary Enterprise since version 0.8.0 are vulnerable to session hijacking through TLS certificate tampering. - -An attacker who has privileges to enumerate active or pending sessions, obtain a private key pertaining to a session, and obtain a valid trust on first use or TOFU token may exploit the vulnerability. -It allows the attacker to create a TLS certificate that hijacks an active session to gain access to the underlying service or application. -The vulnerability, CVE-2024-1052, is fixed in Boundary version 0.15.0 and patched in Boundary Enterprise versions 0.13.6 and 0.14.4. - -Boundary Enterprise users should upgrade to Boundary Enterprise 0.13.6 or 0.14.4. -Community users should evaluate the risk associated with this issue and consider upgrading to Boundary 0.15.0 or later. - -For more information, refer to [HCSEC-2024-02 - Boundary vulnerable to session hijacking through TLS certificate tampering](https://discuss.hashicorp.com/t/hcsec-2024-02-boundary-vulnerable-to-session-hijacking-through-tls-certificate-tampering/62458). - -[Upgrade to the latest version of Boundary](/boundary/tutorials/self-managed-deployment/upgrade-version) - -**Rotation of AWS access and secret keys during a session results in stale recordings**: In Boundary version 0.13.0, when you rotate a storage bucket's secrets, any new sessions use the new credentials. -However, previously established sessions continue to use the old credentials. - -As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. -Otherwise, you may end up with recordings that aren't stored in the remote storage bucket and are unable to be played back. - -**Unsupported recovery workflow during worker failure**: If a worker fails during a recording, there is no way to recover the recording. -This could happen due to a network connectivity issue or because a worker is scaled down, for example. -There are a number of currently unsupported failure cases, including when the worker: - -- Crashes and restarts while servicing connections and channels for session to an SSH target -- Crashes and restarts while closing a channel, before all files are synced to remote storage -- Crashes and restarts while closing a connection recorder, before all files are synced to remote storage -- Crashes and restarts while closing a session recorder, before all files are synced to remote storage -- Crashes and never restarts or is seen again while closing a channel/connection recorer/session recorder -- Loses its connection to the controller and cancels sessions, it must resend the information when communication resumes diff --git a/website/content/docs/release-notes/v0_14_0.mdx b/website/content/docs/release-notes/v0_14_0.mdx deleted file mode 100644 index ea9d2ca38..000000000 --- a/website/content/docs/release-notes/v0_14_0.mdx +++ /dev/null @@ -1,394 +0,0 @@ ---- -layout: docs -page_title: v0.14.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.14.0 release. Understand any deprecations, changes, and known issues. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary 0.14.0 release notes - -**GA date:** October 11, 2023 - -@include 'release-notes/intro.mdx' - -## New features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureDescription
- Boundary Desktop embedded terminal - - An embedded terminal has been added to the Boundary Desktop client for convenience. Now you can use the CLI directly from within Boundary Desktop. -

- Learn more:  - Install Boundary Desktop tutorial -
- LDAP authorization method - - The LDAP auth method is no longer in beta, it is now fully supported. Administrators can now create, manage, and delete LDAP auth methods along with managed groups and accounts using the admin console UI. -

- Learn more:  - Auth methods -
- Dynamic credential support for storage buckets HCP/ENT - - You can now configure dynamic credentials for AWS S3 storage buckets using the Amazon Web Services (AWS) AssumeRole API. We recommend that you configure credentials using AssumeRole instead of access keys when possible. -

- Learn more:  - Create a storage bucket -
- Remote pass-through commands for SSH - - A new SSH flag, remote-command was introduced to the boundary connect ssh helper. It lets you run the specified commands on the remote-machine using pass-through arguments. -

- Learn more:  - connect ssh command -
- New worker health metric - - A new metric was added to the health endpoint to check the connection state of the worker and whether it can connect to an upstream controller. The result is automatically included in the response when you run the health endpoint. -

- Learn more:  - Boundary health endpoints -
- Improved telemetry - - Improved telemetry was added to Boundary. You can enable telemetry to gather information about your Boundary cluster. -

- Learn more:  - events stanza -
- Valid principals for Vault SSH signed certificates -

- (Added in version 0.14.2) -
- You can now add additional valid principals when you create a Vault SSH signed certificate credential library. The additional principals list the names for which the certificate is valid. -

- Learn more:  - Vault SSH certificate credential library attributes -
- OIDC prompts -

- (Added in version 0.14.3) -
- You can now use OIDC prompts to customize the authentication and authorization flow to suit your specific needs. For more information about the OIDC specification, refer to the OIDC authentication request documentation. -

- Learn more:  - OIDC auth method attributes -
- API rate limiting -

- (Added in version 0.14.3) -
- You can now configure rate limits on the controller API to help manage your system resources. Boundary supports separate configurable limits for each resource and action. Rate limiting is enabled by default. -

- Learn more:  - API rate limiting -
- -## Known issues and breaking changes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionIssueDescription
- 0.13.0+ - - Rotation of AWS access and secret keys during a session results in stale recordings - - In Boundary version 0.13.0+, when you rotate a storage bucket's secrets, any new sessions use the new credentials. However, previously established sessions continue to use the old credentials. -

- As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. - Otherwise, you may end up with recordings that aren't stored in the remote storage bucket, and are unable to be played back. -
- 0.13.0+ - - Unsupported recovery workflow during worker failure - - If a worker fails during a recording, there is no way to recover the recording. This could happen due to a network connectivity issue or because a worker is scaled down, for example. -

- Learn more:  - Unsupported recovery workflow -
- 0.14.0 -

- (Fixed in 0.14.1) -
- Go CVE-2023-39325 and Go CVE-2023-39326 - - The version of Go that was used in Boundary release 0.14.0 contained security vulnerabilities. The vulnerabilities were fixed in Go version 1.21.3. Boundary was updated to use the new Go version in release 0.14.1, and the issue is resolved. -

- Learn more:  -

- Go CVE-2023-39325: HTTP/2 rapid reset can cause excessive work in net/http -

- Go CVE-2023-39326: A malicious HTTP sender can use chunk extensions -

- Upgrade to the latest version of Boundary -
- 0.14.0 -

- (Fixed in 0.14.3 and 0.13.5 HCP/ENT) -
- Go CVE-2023-39322 and Go CVE-2022-45285 - - The version of Go that was used in Boundary release 0.14.0 contained security vulnerabilities. The vulnerabilities were fixed in Go version 1.21.5. Boundary was updated to use the new Go version in release 0.14.3, and the issue is resolved. -

- Note that version 0.13.5 of HCP Boundary and Boundary Enterprise was also updated to use the new Go version. -

- Learn more:  -

- Go CVE-2023-39322: QUIC connections do not set an upper bound on the amount of data buffered -

- Go CVE-2022-45285: Using go get to fetch a module with the ".git" suffix may unexpectedly fallback to insecure protocol -

- Upgrade to the latest version of Boundary -
- 0.8.0 - 0.14.0 -

- (Fixed in 0.14.4 and 0.13.6 ENT) -
- HCSEC-2024-02 - - Boundary and Boundary Enterprise since version 0.8.0 are vulnerable to session hijacking through TLS certificate tampering. -

- An attacker who has privileges to enumerate active or pending sessions, obtain a private key pertaining to a session, and obtain a valid trust on first use or TOFU token may exploit the vulnerability. - It allows the attacker to create a TLS certificate that hijacks an active session to gain access to the underlying service or application. - The vulnerability, CVE-2024-1052, is fixed in Boundary version 0.15.0 and patched in Boundary Enterprise versions 0.13.6 and 0.14.4. -

- Boundary Enterprise users should upgrade to Boundary Enterprise 0.14.4. - Community users should evaluate the risk associated with this issue and consider upgrading to Boundary 0.15.0 or later. -

- Learn more:  -

- HCSEC-2024-02: Boundary vulnerable to session hijacking through TLS certificate tampering -

- Upgrade to the latest version of Boundary -
- 0.14.0 -

- (Fixed in 0.14.5) -
- Go CVE-2024-24783, Go CVE-2024-24784, Go CVE-2024-24785, Go CVE-2024-24786, Go CVE-2023-45289, Go CVE-2023-45290 - - The version of Go that was used in Boundary release 0.14.0 contained security vulnerabilities. The vulnerabilities were fixed in Go version 1.21.8. Boundary was updated to use the new Go version in release 0.14.5, and the issue is resolved. -

- Learn more:  -

- CVE-2024-24783: Verify panics on certificates with an unknown public key algorithm in crypto/x509 -

- CVE-2024-24784: Comments in display names are incorrectly handled in net/mail -

- CVE-2024-24785: Errors returned from JSON marshaling may break template escaping in html/template -

- CVE-2024-24786: Infinite loop in JSON unmarshaling in google.golang.org/protobuf -

- CVE-2023-45289: Incorrect forwarding of sensitive headers and cookies on HTTP redirect in net/http -

- CVE-2023-45290: Memory exhaustion in multipart form parsing in net/textproto and net/http -

- Upgrade to the latest version of Boundary -
- 0.14.0+ -

- (Fixed in 0.15.3) -
- Cannot delete IAM access key resource - - When you delete an AWS S3 storage bucket that had credential rotation enabled, Boundary cannot delete the associated IAM access key resource. -

- This issue is fixed in version 0.15.3. -

- Upgrade to the latest version of Boundary -

- Learn more:  - Create a storage bucket -
- 0.14.0 -

- (Fixed in 0.14.6) -
- Go CVE-2023-45288 - - The version of Go that was used in Boundary release 0.14.0 contained security vulnerabilities. The vulnerabilities were fixed in Go version 1.21.9. Boundary was updated to use the new Go version in release 0.14.6, and the issue is resolved. -

- Learn more:  -

- CVE-2023-45288: HTTP/2 CONTINUATION flood in net/http -

- Upgrade to the latest version of Boundary -
- -## Feature deprecations and EOL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EOLDescription
- vault credential library subtype - - As noted in the v0.12.0 release notes, the vault credential library subtype was renamed to vault-generic. The vault subtype is removed in this release, you must use vault-generic now. -

- Learn more:  - Credential libraries -
- status field - - As noted in the v0.12.0 changelog, using the -format=json option with the CLI produced inconsistent results. The status field is removed in this release. The status_code field is now used for both successful requests and errors. -
- Default port value - - As noted in the v0.12.0 release notes, targets now require a default port value. Previously, any ports that you defined as part of a host address were ignored, but allowed as part of the target definition. From this version on, if you define a port on a host address it results in an error. -

- Learn more:  - Targets -
- Application credentials parameter - - As noted in the v0.10.0 changelog, the target subcommands for application credentials were renamed to brokered credentials. The application credentials subcommands are removed in this release. You must use the brokered credential subcommands instead. -

- Learn more:  - targets -
diff --git a/website/content/docs/release-notes/v0_15_0.mdx b/website/content/docs/release-notes/v0_15_0.mdx deleted file mode 100644 index 7ae139ac3..000000000 --- a/website/content/docs/release-notes/v0_15_0.mdx +++ /dev/null @@ -1,385 +0,0 @@ ---- -layout: docs -page_title: v0.15.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.15.0 release. Understand any deprecations, changes, and known issues. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary 0.15.0 release notes - -**GA date:** January 30, 2024 - -@include 'release-notes/intro.mdx' - -## New features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureDescription
- Session recording storage policies - - Storage policies codify how long session recordings must be kept, and when they should be deleted. You can configure retention periods based on your compliance needs. -

- Learn more: Storage policies and Configure storage bucket policies -
- Search and filter - - A new command was added, boundary search. It allows you to search a local cache for information about session and target resources. The local cache helps prevent your system resources from being overwhelmed. -

- Learn more: boundary search and Boundary list vs. search. -
- Boundary daemon - - The Boundary client daemon now runs on end users' computers and locally caches session and target resource information from Boundary instances. The cache helps expedite searches. -

- Learn more: boundary daemon and Client cache -
- List endpoint pagination - - All list endpoints now support pagination, except for worker resources. You can request a list of updated and deleted resources relative to the last result you received via the API. There are new controller flags page_size and max_page_size to set the default and max size of pages. -

- Learn more: API list pagination -
- Generic commands - - In this release, new generic commands were added for read, update, and delete. You can use these generic commands to operate directly on a resource by specifying the resource ID as the next parameter. You do not need to specify a sub-type. For example, the command boundary update ttcp_1234567890 automatically updates a target with that ID. -

- Learn more: delete, read, and update -
- Multiple grant scopes in roles - - Roles now support multiple grant scopes, along with the special values this, children (global/org scopes only) to apply to all direct children of a scope, and descendants (global only) to apply to all descendants of a scope. You can apply the new values by using the commands add-grant-scopes, set-grant-scopes, and remove-grant-scopes on roles. You can continue to use the existing grant_scope_id field for now, but it has been deprecated. -

- Learn more: add-grant-scopes, remove-grant-scopes, and set-grant-scopes -
- -## Known issues and breaking changes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionIssueDescription
- 0.13.0+ - - Rotation of AWS access and secret keys during a session results in stale recordings - - In Boundary version 0.13.0+, when you rotate a storage bucket's secrets, any new sessions use the new credentials. However, previously established sessions continue to use the old credentials. -

- As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. - Otherwise, you may end up with recordings that aren't stored in the remote storage bucket, and are unable to be played back. -
- 0.13.0+ - - Unsupported recovery workflow during worker failure - - If a worker fails during a recording, there is no way to recover the recording. This could happen due to a network connectivity issue or because a worker is scaled down, for example. -

- Learn more:  - Unsupported recovery workflow -
- 0.14.0+ -

- (Fixed in 0.15.3) -
- Cannot delete IAM access key resource - - When you delete an AWS S3 storage bucket that had credential rotation enabled, Boundary cannot delete the associated IAM access key resource. -

- This issue is fixed in version 0.15.3. -

- Upgrade to the latest version of Boundary -

- Learn more:  - Create a storage bucket -
- 0.15.0 - - Permission grant string change - - The ability to add new grants via the id parameter has been removed. Grants now accept more than one ID per grant string or JSON entry using the ids parameter. This change was noted in the v0.13.1 Changelog, and goes into effect with this release. You must update any code or Terraform configuration that uses the id parameter. -

- Learn more:  - Add grants -
- 0.15.0 - - List result pagination - - All list endpoints now return the first 1,000 items instead of all items, if no parameters are provided. You can configure the number of items returned using the new controller configuration parameter max_page_size. The Admin UI, CLI, and API package automatically paginate results. -

- Learn more:  - API list pagination -
- 0.15.0 - - Storage bucket policy updates - - If you have session recording configured, you must update your IAM policy in AWS before you upgrade your worker to version 0.15.0 to ensure your session recordings continue to get uploaded to S3. The IAM policy now requires the DeleteObjects and ListBucket permissions. -

- Learn more:  - Create storage buckets -
- 0.15.0 -

- (Fixed in 0.15.1) -
- Maximum number of connections allowed is incorrect - - A known issue causes Boundary to permit one less than the allowed number of connections that you configured for a given target. For example, if you configured the session connection limit for a target at 2, Boundary only permits 1 connection to the target. If the value is 1, Boundary does not allow any connections to the target. A value of -1 still means that connections to the target are unlimited. -

- This issue is fixed in version 0.15.1. -

- Upgrade to the latest version of Boundary -

- Learn more:  - Refer to the CLI docs for information about using targets create or targets update to configure a maximum number of connections. -

- Refer to the API docs for information about using Target service to configure a maximum number of connections. -
- 0.15.0 -

- (Fixed in 0.15.2) -
- Go CVE-2024-24783, Go CVE-2024-24784, Go CVE-2024-24785, Go CVE-2024-24786, Go CVE-2023-45289, Go CVE-2023-45290 - - The version of Go that was used in Boundary release 0.15.0 contained security vulnerabilities. The vulnerabilities were fixed in Go version 1.21.8. Boundary was updated to use the new Go version in release 0.15.2, and the issue is resolved. -

- Learn more:  -

- CVE-2024-24783: Verify panics on certificates with an unknown public key algorithm in crypto/x509 -

- CVE-2024-24784: Comments in display names are incorrectly handled in net/mail -

- CVE-2024-24785: Errors returned from JSON marshaling may break template escaping in html/template -

- CVE-2024-24786: Infinite loop in JSON unmarshaling in google.golang.org/protobuf -

- CVE-2023-45289: Incorrect forwarding of sensitive headers and cookies on HTTP redirect in net/http -

- CVE-2023-45290: Memory exhaustion in multipart form parsing in net/textproto and net/http -

- Upgrade to the latest version of Boundary -
- 0.15.0 -

- (Fixed in 0.15.3 and 2.0.2 Desktop) -
- Boundary Desktop does not update - - The macOS Boundary Desktop client displays a prompt to update automatically, but it never actually updates. -

- This issue is fixed in Boundary version 0.15.3 and version 2.0.2 of the Desktop client. -

- Upgrade to the latest version of Boundary -
- 0.15.0 -

- (Fixed in 0.15.4) -
- Go CVE-2023-45288 - - The version of Go that was used in Boundary release 0.15.0 contained security vulnerabilities. The vulnerabilities were fixed in Go version 1.21.9. Boundary was updated to use the new Go version in release 0.15.4, and the issue is resolved. -

- Learn more:  -

- CVE-2023-45288: HTTP/2 CONTINUATION flood in net/http -

- Upgrade to the latest version of Boundary -
- 0.15.0 -

- (Fixed in 0.15.5) -
- Users cannot log in to Boundary Desktop - - A bug caused Boundary Desktop to incorrectly assume the controller was running an unsupported version. It would prevent users from being able to log in to the Desktop client. -

- Learn more:  -

- Boundary Desktop issue #4370 -

- This issue is fixed in Boundary version 0.15.5. -

- Upgrade to the latest version of Boundary -
- -## Feature deprecations and EOL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EOLDescription
- kms worker method - - As noted in the v0.13.0 release notes, the kms worker method has been removed. Since version 0.13.0, you have had to opt in to use the deprecated method. Now it is no longer available and Boundary uses the new kms mechanism. -

- Learn more:  - KMS worker configuration -
- Default port value - - As noted in the v0.14.0 and v0.12.0 release notes, targets now require a default port value. Previously, any ports that you defined as part of a host address were ignored, but allowed as part of the target definition. Now, if you define a port on a host address it results in an error. As of this release, the restriction also affects existing addresses. Any existing addresses that contain a port cannot be used as part of a target's session authorization call. -

- Learn more:  - Targets -
- id field for grants - - As noted in the v0.13.1 Changelog, the ability to add new grants via the id parameter has been removed. Grants now accept more than one ID per grant string or JSON entry using the ids parameter. -

- Learn more:  - Add grants -
- grant-scope-id field for roles - - The grant-scope-id field is now deprecated in favor of multiple grant scope support. -

- Learn more: add-grant-scopes, remove-grant-scopes, and set-grant-scopes -
diff --git a/website/content/docs/release-notes/v0_16_0.mdx b/website/content/docs/release-notes/v0_16_0.mdx deleted file mode 100644 index 48f57a199..000000000 --- a/website/content/docs/release-notes/v0_16_0.mdx +++ /dev/null @@ -1,392 +0,0 @@ ---- -layout: docs -page_title: v0.16.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.16.0 release. Understand any deprecations, changes, and known issues. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary 0.16.0 release notes - -**GA date:** April 30, 2024 - -@include 'release-notes/intro.mdx' - -## Important changes - - - - - - - - - - - - - - - - - - - - -
ChangeDescription
- Role creation - - In a future version Boundary will no longer automatically create roles when new scopes are created. This was implemented prior to multi-scope grants to ensure administrators and users had default permissions in new scopes. Since Boundary 0.15, initial roles created for new clusters provide these permissions by default to all scopes using multi-scope grants. -
- Docker image no longer contains curl - - As of version 0.16.3 and later, the curl binary is no longer included in the published Docker container image for Boundary. The image now includes wget, which you can alternatively use to check the health endpoint for a worker. If your workflow depends on having curl in the image, you can dynamically install it using apk. -

- Learn more:  Known issues and breaking changes -
- -## New features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureUpdateDescription
- Aliases - - GA - - A new resource was introduced in this release. Aliases let you associate a string with a Boundary target. You can then establish a session to the target by referencing its alias, instead of having to provide a target ID or target name and scope ID. -

- Learn more: Aliases. -
- MinIO support for session recording - - GA - - You can now configure external MinIO storage to store recorded sessions. MinIO support provides an on-premises storage option for users who do not use AWS. -

- Learn more: Session recording overview. -
- Admin UI enhanced search and filtering - - GA - - Enhanced search and filter support was added to the Boundary CLI and API through a new list pagination feature in release 0.15.0. This functionality has been extended to the Admin UI in release 0.16.0. -

- Learn more: List pagination. -
- Local storage state health - - GA - - Storage state values have been created to monitor the health of any local workers used for session recording. Boundary monitors the worker's available disk space and compares it to the value you configured for recording capacity. If the worker does not have adequate storage, it cannot be used for session recording. -

- Learn more: Local storage for session recording. -
- X-Correlation-ID HTTP header - - GA - - A new HTTP header was added to identify a transaction over a series of requests and responses. You can use the X-Correlation-ID header to correlate events between external systems and products. The initial release of the X-Correlation-ID header supports correlating events between Boundary and Vault. -

- Learn more: HTTP headers. -
- -## Known issues and breaking changes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionIssueDescription
- 0.13.0+ - - Rotation of AWS access and secret keys during a session results in stale recordings - - In Boundary version 0.13.0+, when you rotate a storage bucket's secrets, any new sessions use the new credentials. However, previously established sessions continue to use the old credentials. -

- As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. - Otherwise, you may end up with recordings that aren't stored in the remote storage bucket, and are unable to be played back. -
- 0.13.0+ - - Unsupported recovery workflow during worker failure - - If a worker fails during a recording, there is no way to recover the recording. This could happen due to a network connectivity issue or because a worker is scaled down, for example. -

- Learn more:  - Unsupported recovery workflow -
- 0.16.0 -

- (Fixed in 0.16.0) -
- Users cannot log in to Boundary Desktop - - A bug caused Boundary Desktop to incorrectly assume the controller was running an unsupported version. It would prevent users from being able to log in to the Desktop client. -

- Learn more:  Boundary Desktop issue #4370 -

- This issue is fixed in Boundary version 0.16.0. -

- Upgrade to the latest version of Boundary -
- 0.16.0 -

- (Fixed in 0.16.1 for Community/Enterprise editions and 0.16.2 for HCP Boundary) -
- Controller dead lock with database connections stuck in idle in transaction state - - If you configured a controller to have the maximum number of open connections and it was under enough load from worker requests, the controller could get stuck. Once the controller consumed all the database connections, it would leave them in an idle in transaction state. In extreme cases, this could cause Boundary clusters to become unresponsive. -

- The cause of this problem was due to a combination of issues. There was no request timeout for worker-to-controller GRPC requests. Also, the session repository attempted to use a separate database connection to retrieve a KMS wrapper after already starting a database transaction. -

- This issue is fixed in release 0.16.1 for the Community and Enterprise editions. It is fixed in release 0.16.2 for HCP Boundary. -

- Boundary now sets a max request duration for GRPC requests based on the cluster's listener configuration. KMS operations now occur outside of the transaction. -

- Upgrade to the latest version of Boundary -
- 0.16.0 -

- (Fixed in 0.16.2) -
- TLS handshake error - - When you rotated credentials for a worker, sometimes the request succeeded on the controller, but the worker did not receive the response. Because the controller and worker used different sets of credentials, the worker was unable to connect to the controller and you received a TLS handshake error. -

- In release 0.16.2, we added a new NodeIDLoader interface. The worker uses the interface to check its key set and correct its stored credential set to match the controller, if necessary. This issue is now resolved. -

- Upgrade to the latest version of Boundary -
- 0.16.0 -

- (Fixed in 0.16.2) -
- OIDC error codes - - In releases 0.16.0 and earlier, Boundary used internal error codes for OIDC errors. The internal error codes could cause confusion, since the codes were non-standard HTTP response codes. -

- In release 0.16.2, we updated the OIDC request handlers to return standard gRPC status codes for errors. The 4xx status codes are more descriptive of the error. -

- Upgrade to the latest version of Boundary -
- 0.16.3+ - - Docker image no longer contains curl - - As of version 0.16.3 and later, the curl binary is no longer included in the published Docker container image for Boundary. -

- The image now includes wget. You can use wget to check the health endpoint for workers. -

- Learn more:  Check the health endpoint using wget -

- If your workflow depends on having curl in the image, you can dynamically install it using apk. Refer to the following commands for examples of using apk to install curl: -

- <CONTAINER-ID> apk add curl -

- or -

- kubectl exec -ti <NAME> -- apk add curl -
- 0.16.0 -

- (Fixed in 0.16.3) -
- Using an invalid alias results in a 401 message - - If you tried to connect to an invalid alias, Boundary returned a message with the 401 status code. The 401 status code could cause users to believe that they did not properly authenticate, rather than realizing the alias resource was invalid. -

- This issue is fixed in Boundary version 0.16.3. If you use an invalid alias, Boundary now properly returns a 404 status code, indicating that it could not find the alias resource. -

- Learn more:  Aliases -

- Upgrade to the latest version of Boundary -
- 0.16.0 -

(Fixed in 0.16.3) -
- Session recording fails when you use Secure File Copy (SCP) - - If you tried to use SCP during a recorded session, the session recording details may shown the recording state as Failed, and you may not have been able to play back the session. -

- This issue occurs when a recorded session file is too large. It can happen when you use SCP to transfer large files during a recorded session, In Boundary version 0.16.3, we have increased the maximum size for recorded session files to 5 GB. This issue should happen less often now, but be careful when you use SCP during a recorded session, because it can result in large recorded session files. -

- Learn more:  Session recording storage considerations -

- Upgrade to the latest version of Boundary -
- 0.8.0 - 0.16.3 -

- (Fixed in Boundary Community Edition and Boundary Enterprise 0.16.4) -
- Boundary controller incorrectly handles HTTP requests and stops prematurely (HCSEC-2024-28) - - Boundary Community Edition and Boundary Enterprise incorrectly handle HTTP requests while the Boundary controller is starting up, which may cause the controller to stop prematurely. Boundary is only vulnerable to this flaw during the controller's initialization, which usually occurs in milliseconds during Boundary's startup process. -

- This vulnerability, HCSEC-2024-28, is fixed in Boundary Community Edition and Boundary Enterprise versions 0.16.4, 0.17.3, and 0.18.2. -

- Learn more: HCSEC-2024-28: Boundary controller incorrectly handles http requests on initialization which may lead to a denial of service -

- Upgrade to the latest version of Boundary -
- -## Feature deprecations and EOL - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EOLDescription
- boundary daemon command - - The boundary daemon command has been deprecated in favor of the new boundary cache command. The functionality remains the same. -

- Learn more:  - boundary cache -
- include_terminated field removed - - The include_terminated field from the list sessions command has been deprecated and will be removed in an upcoming release. Boundary will return terminated sessions in all list session responses, unless they are filtered out using the filter field. For more information, refer to the filter resource documentation. -

- Learn more:  - sessions list command options and Filter resource listings -
- grant_scope_id field removed from roles - - The grant_scope_id field, which was deprecated in release 0.15.0, has been removed from roles. You can now manage roles using the add-grant-scopes, remove-grant-scopes, and set-grant-scopes commands. -

- Learn more: add-grant-scopes, remove-grant-scopes, and set-grant-scopes -
\ No newline at end of file diff --git a/website/content/docs/release-notes/v0_17_0.mdx b/website/content/docs/release-notes/v0_17_0.mdx deleted file mode 100644 index 91cca264e..000000000 --- a/website/content/docs/release-notes/v0_17_0.mdx +++ /dev/null @@ -1,337 +0,0 @@ ---- -layout: docs -page_title: v0.17.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.17.0 release. Understand any deprecations, changes, and known issues. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary 0.17.0 release notes - -**GA date:** July 31, 2024 - -@include 'release-notes/intro.mdx' - -## Important changes - - - - - - - - - - - - - - - - - - - - -
ChangeDescription
- Role creation - - In a future version Boundary will no longer automatically create roles when new scopes are created. This was implemented prior to multi-scope grants to ensure administrators and users had default permissions in new scopes. Since Boundary 0.15, initial roles created for new clusters provide these permissions by default to all scopes using multi-scope grants. -
- Docker image no longer contains curl - - As of version 0.17.1 and later, the curl binary is no longer included in the published Docker container image for Boundary. The image now includes wget, which you can alternatively use to check the health endpoint for a worker. If your workflow depends on having curl in the image, you can dynamically install it using apk. -

- Learn more:  Known issues and breaking changes -
- -## New features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureUpdateDescription
- Centralized tag management for workers - - GA - - Prior to this version, if you wanted to edit or update worker tags, you had to do it using the worker configuration file, the CLI, or the API. Now, you can edit worker tags directly in the Boundary UI. -

- Learn more: Worker tags. -
- Multi-scope roles and inheritance - - GA - - You can now assign a single role to multiple scopes, making it easier to grant permissions to users who must access resources across multiple scopes. You can also configure children scopes to inherit roles. -

- Learn more: Permissions in Boundary. -
- Improved worker failure handling - - GA - - When you attempt to connect to a target, Boundary randomly selects a worker that has the matching tags to proxy the connection. Before release 0.17.0, unhealthy workers that had issues related to the external storage provider were eligible to proxy connections. The connections would fail, and users had to restart the connection until Boundary selected a healthy worker.

- In this release, Boundary removes workers from the pool of available workers if they have issues with the external storage provider for improved worker failure handling. -

- Learn more: Configure workers for session recording. -
- S3-compliant storage options for session recording - - GA - - As of Boundary 0.16.0, the MinIO plugin made it possible to use MinIO storage as a storage option for session recording. Starting in this release, you can use the MinIO plugin to configure storage using other S3-compliant storage providers. -

- Learn more: Configure S3-compliant storage for session recording. -
- -## Known issues and breaking changes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionIssueDescription
- 0.13.0+ - - Rotation of AWS access and secret keys during a session results in stale recordings - - In Boundary version 0.13.0+, when you rotate a storage bucket's secrets, any new sessions use the new credentials. However, previously established sessions continue to use the old credentials. -

- As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. - Otherwise, you may end up with recordings that aren't stored in the remote storage bucket, and are unable to be played back. -
- 0.13.0+ - - Unsupported recovery workflow during worker failure - - If a worker fails during a recording, there is no way to recover the recording. This could happen due to a network connectivity issue or because a worker is scaled down, for example. -

- Learn more:  - Unsupported recovery workflow -
- 0.17.1+ - - Docker image no longer contains curl - - As of version 0.17.1 and later, the curl binary is no longer included in the published Docker container image for Boundary. -

- The image now includes wget. You can use wget to check the health endpoint for workers. -

- Learn more:  Check the health endpoint using wget -

- If your workflow depends on having curl in the image, you can dynamically install it using apk. Refer to the following commands for examples of using apk to install curl: -

- <CONTAINER-ID> apk add curl -

- or -

- kubectl exec -ti <NAME> -- apk add curl -
- 0.17.0 -

- (Fixed in 0.17.1) -
- Using an invalid alias results in a 401 message - - If you tried to connect to an invalid alias, Boundary returned a message with the 401 status code. The 401 status code could cause users to believe that they did not properly authenticate, rather than realizing the alias resource was invalid. -

- This issue is fixed in Boundary version 0.17.1. If you use an invalid alias, Boundary now properly returns a 404 status code, indicating that it could not find the alias resource. -

- Learn more:  Aliases -

- Upgrade to the latest version of Boundary -
- 0.17.0 -

- (Fixed in 0.17.1) -
- Session recording fails when you use Secure File Copy (SCP) - - If you tried to use SCP during a recorded session, the session recording details may shown the recording state as Failed, and you may not have been able to play back the session. -

- This issue occurs when a recorded session file is too large. It can happen when you use SCP to transfer large files during a recorded session, In Boundary version 0.17.1, we have increased the maximum size for recorded session files to 5 GB. This issue should happen less often now, but be careful when you use SCP during a recorded session, because it can result in large recorded session files. -

- Learn more:  Session recording storage considerations -

- Upgrade to the latest version of Boundary -
- 0.8.0 - 0.17.2 -

- (Fixed in Boundary Community Edition and Boundary Enterprise 0.17.3) -
- Boundary controller incorrectly handles HTTP requests and stops prematurely (HCSEC-2024-28) - - Boundary Community Edition and Boundary Enterprise incorrectly handle HTTP requests while the Boundary controller is starting up, which may cause the controller to stop prematurely. Boundary is only vulnerable to this flaw during the controller's initialization, which usually occurs in milliseconds during Boundary's startup process. -

- This vulnerability, HCSEC-2024-28, is fixed in Boundary Community Edition and Boundary Enterprise versions 0.16.4, 0.17.3, and 0.18.2. -

- Learn more: HCSEC-2024-28: Boundary controller incorrectly handles http requests on initialization which may lead to a denial of service -

- Upgrade to the latest version of Boundary -
- 0.16.0 - 0.17.3 -

- (Fixed in Boundary Enterprise 0.17.4) -
- Performance is impacted by query - - A query that was added with the aliases feature performed a full table scan of the target table. The scan could negatively impact performance. -

- The scan was replaced with a more efficient method for scanning targets. This issue has been resolved. -

- Upgrade to the latest version of Boundary -

-
- 0.16.0 - 0.17.3 -

- (Fixed in Boundary Enterprise 0.17.4) -
- Performance is impacted by database transactions - - Database transactions were not using the correct reader and writer functions or context. This issue could cause delays and negatively impact system performance. -

- A number of minor fixes were added to improve the way Boundary performs database transactions. This issue has been resolved. -

- Upgrade to the latest version of Boundary -

-
- 0.17.0 - 0.17.3 -

- (Fixed in Boundary Enterprise 0.17.4) -
- GO-2024-3333 -

- CVE-2024-45338 -

- CVE-2024-45337 -
- The Go dependencies that were used in Boundary release 0.17.x contained security vulnerabilities. Boundary Enterprise 0.17.4 was updated to use new versions of the dependencies. This issue is resolved. -

- Learn more: -

- GO-2024-3333: An attacker can craft an input to the Parse functions that would be processed non-linearly with respect to its length, resulting in extremely slow parsing. This could cause a denial of service. -

- CVE-2024-45338: Non-linear parsing of case-insensitive content in golang.org/x/net/html -

- CVE-2024-45337: Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto -

- Upgrade to the latest version of Boundary -

-
- 0.17.0 - 0.17.4 -

- (Fixed in Boundary Enterprise and HCP Boundary 0.17.5) -
- Canceled SSH connections cause performance issues - - When an SSH connection was canceled, it could cause a spike in CPU usage. In some cases, egress workers become unresponsive, leading to performance issues. The issue occurred when the connection context was canceled at specific times in the process, creating a busy loop that prevented workers from completing tasks. -

- This issue is resolved in Boundary Enterprise and HCP Boundary version 0.17.5. Workers no longer end up in a busy loop when SSH connections are canceled. -

- Upgrade to the latest version of Boundary -
\ No newline at end of file diff --git a/website/content/docs/release-notes/v0_18_0.mdx b/website/content/docs/release-notes/v0_18_0.mdx deleted file mode 100644 index d36605724..000000000 --- a/website/content/docs/release-notes/v0_18_0.mdx +++ /dev/null @@ -1,353 +0,0 @@ ---- -layout: docs -page_title: v0.18.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.18.0 release. Understand any deprecations, changes, and known issues. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary 0.18.0 release notes - -**GA date:** October 15, 2024 - -@include 'release-notes/intro.mdx' - -## Important changes - - - - - - - - - - - - - - - - - - - - - - - - - - -
ChangeDescription
- Role creation - - In a future version Boundary will no longer automatically create roles when new scopes are created. This was implemented prior to multi-scope grants to ensure administrators and users had default permissions in new scopes. Since Boundary 0.15, initial roles created for new clusters provide these permissions by default to all scopes using multi-scope grants. -
- Docker image no longer contains curl - - As of version 0.17.1 and later, the curl binary is no longer included in the published Docker container image for Boundary. The image now includes wget, which you can alternatively use to check the health endpoint for a worker. If your workflow depends on having curl in the image, you can dynamically install it using apk. -

- Learn more:  Known issues and breaking changes -
- Go version 1.23 TLS handshake behavior changes - - Boundary version 0.18.x uses Go version 1.23, which introduced a new TLS handshake behavior. Some VPN providers struggle with the TLS handshake being sent over 2 frames instead of 1, which can lead to Boundary version 0.18.x controllers, workers, or clients being unable to establish connections. As a workaround, you can revert back to the previous TLS handshake behavior. -

- Learn more:  Known issues and breaking changes -
- -## New features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureUpdateDescription
- Transparent sessions - - BETA - - Transparent sessions allows users to eliminate steps in their current workflows using Boundary’s Client Agent, a component that operates in the background to intercept network traffic and automatically route this traffic through a session if the user is authenticated and authorized. -

- Platform teams and access management teams that administer Boundary can now build much faster, simpler secure remote access workflows that feel more intuitive and invisible to their developer customers. -

- Learn more: Transparent sessions and Client Agent. -
- Backblaze B2 support for storage buckets - - GA - - Backblaze B2 is now supported as a storage provider for session recording storage buckets. -

- Learn more: Configure an S3-compliant storage provider. -
- AssumeRole support for AWS dynamic host catalogs - - GA - - AWS host plugins now support AssumeRole. AssumeRole returns a set of temporary security credentials that you can use to access AWS resources. -

- Learn more: AWS dynamic host catalogs. -
- -## Known issues and breaking changes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionIssueDescription
- 0.13.0+ - - Rotation of AWS access and secret keys during a session results in stale recordings - - In Boundary version 0.13.0+, when you rotate a storage bucket's secrets, any new sessions use the new credentials. However, previously established sessions continue to use the old credentials. -

- As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. - Otherwise, you may end up with recordings that aren't stored in the remote storage bucket, and are unable to be played back. -
- 0.13.0+ - - Unsupported recovery workflow during worker failure - - If a worker fails during a recording, there is no way to recover the recording. This could happen due to a network connectivity issue or because a worker is scaled down, for example. -

- Learn more:  - Unsupported recovery workflow -
- 0.17.1+ - - Docker image no longer contains curl - - As of version 0.17.1 and later, the curl binary is no longer included in the published Docker container image for Boundary. -

- The image now includes wget. You can use wget to check the health endpoint for workers. -

- Learn more:  Check the health endpoint using wget -

- If your workflow depends on having curl in the image, you can dynamically install it using apk. Refer to the following commands for examples of using apk to install curl: -

- <CONTAINER-ID> apk add curl -

- or -

- kubectl exec -ti <NAME> -- apk add curl -
- 0.18.0 -

- (Fixed in 0.18.1) -
- Users are incorrectly removed from managed groups - - If your organization has over 10,000 managed groups, Boundary may incorrectly remove users from the managed group memberships. -

- In version 0.18.0 and earlier, there was a maximum number of managed groups supported for an auth method. If you had over 10,000 managed groups, Boundary may have incorrectly removed a user from a group during authentication. This issue is fixed in version 0.18.1. There is no longer a maximum number of managed groups. -

- Learn more:  Managed groups -

- Upgrade to the latest version of Boundary -
- 0.18.0 -

- (Fixed in 0.18.2) -
- Session recordings fail with an error - - When large numbers of sessions were created around the same time using the AssumeRole API, the AWS STS (Security Token Service) credentials sometimes failed to refresh and session recordings would fail. The failure occurred due to throttling from AWS. -

- Version 0.18.2 adds a cache for Amazon S3 clients to store temporary credentials and prevent AWS resources from being overwhelmed. This issue is now resolved. -

- Learn more:  Configure Amazon S3 as a storage provider -

- Upgrade to the latest version of Boundary -
- 0.8.0 - 0.18.1 -

- (Fixed in Boundary Community Edition and Boundary Enterprise 0.18.2) -
- Boundary controller incorrectly handles HTTP requests and stops prematurely (HCSEC-2024-28) - - Boundary Community Edition and Boundary Enterprise incorrectly handle HTTP requests while the Boundary controller is starting up, which may cause the controller to stop prematurely. Boundary is only vulnerable to this flaw during the controller's initialization, which usually occurs in milliseconds during Boundary's startup process. -

- This vulnerability, HCSEC-2024-28, is fixed in Boundary Community Edition and Boundary Enterprise versions 0.16.4, 0.17.3, and 0.18.2. -

- Learn more: HCSEC-2024-28: Boundary controller incorrectly handles http requests on initialization which may lead to a denial of service -

- Upgrade to the latest version of Boundary -
- 0.18.x - - Boundary version 0.18.x CLI is unable to establish connections using the boundary connect command - - Boundary version 0.18.x uses Go version 1.23, which introduced a new TLS handshake behavior. Some VPN providers struggle with the TLS handshake being sent over 2 frames instead of 1, which can lead to Boundary version 0.18.x controllers, workers, or clients being unable to establish connections. As a workaround, you can revert back to the previous TLS handshake behavior. -

- To revert back to the previous TLS handshake behavior, add the tlskyber=0 parameters to the GODEBUG environment variable before the boundary connect command. For example: -

- GODEBUG=tlskyber=0 boundary connect ssh -target-id <ID> -

- Learn more: Go issue #70047 and Go 1.23 Release Notes -

-
- 0.16.0 - 0.18.2 -

- (Fixed in Boundary Enterprise 0.18.3) -
- Performance is impacted by query - - A query that was added with the aliases feature performed a full table scan of the target table. The scan could negatively impact performance. -

- The scan was replaced with a more efficient method for scanning targets. This issue has been resolved. -

- Upgrade to the latest version of Boundary -

-
- 0.16.0 - 0.18.2 -

- (Fixed in Boundary Enterprise 0.18.3) -
- Performance is impacted by database transactions - - Database transactions were not using the correct reader and writer functions or context. This issue could cause delays and negatively impact system performance. -

- A number of minor fixes were added to improve the way Boundary performs database transactions. This issue has been resolved. -

- Upgrade to the latest version of Boundary -

-
- 0.17.0 - 0.18.2 -

- (Fixed in Boundary Enterprise 0.18.3) -
- GO-2024-3333 -

- CVE-2024-45338 -

- CVE-2024-45337 -
- The Go dependencies that were used in Boundary release 0.18.x contained security vulnerabilities. Boundary Enterprise 0.18.3 was updated to use new versions of the dependencies. This issue is resolved. -

- Learn more: -

- GO-2024-3333: An attacker can craft an input to the Parse functions that would be processed non-linearly with respect to its length, resulting in extremely slow parsing. This could cause a denial of service. -

- CVE-2024-45338: Non-linear parsing of case-insensitive content in golang.org/x/net/html -

- CVE-2024-45337: Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto -

- Upgrade to the latest version of Boundary -

-
- 0.17.0 - 0.18.3 -

- (Fixed in Boundary Enterprise and HCP Boundary 0.18.4) -
- Canceled SSH connections cause performance issues - - When an SSH connection was canceled, it could cause a spike in CPU usage. In some cases, egress workers become unresponsive, leading to performance issues. The issue occurred when the connection context was canceled at specific times in the process, creating a busy loop that prevented workers from completing tasks. -

- This issue is resolved in Boundary Enterprise and HCP Boundary version 0.18.4. Workers no longer end up in a busy loop when SSH connections are canceled. -

- Upgrade to the latest version of Boundary -
\ No newline at end of file diff --git a/website/content/docs/release-notes/v0_19_0.mdx b/website/content/docs/release-notes/v0_19_0.mdx deleted file mode 100644 index aa8a8ed0b..000000000 --- a/website/content/docs/release-notes/v0_19_0.mdx +++ /dev/null @@ -1,460 +0,0 @@ ---- -layout: docs -page_title: v0.19.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.19.0 release. Understand any deprecations, changes, and known issues. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary 0.19.0 release notes - -**GA date:** February 10, 2025 - -@include 'release-notes/intro.mdx' - -## Important changes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ChangeDescription
- Role creation - - In a future version Boundary will no longer automatically create roles when new scopes are created. This was implemented prior to multi-scope grants to ensure administrators and users had default permissions in new scopes. Since Boundary 0.15, initial roles created for new clusters provide these permissions by default to all scopes using multi-scope grants. -
- Docker image no longer contains curl - - As of version 0.17.1 and later, the curl binary is no longer included in the published Docker container image for Boundary. The image now includes wget, which you can alternatively use to check the health endpoint for a worker. If your workflow depends on having curl in the image, you can dynamically install it using apk. -

- Learn more:  Known issues and breaking changes -
- Go version 1.23 TLS handshake behavior changes - - Boundary version 0.18.x uses Go version 1.23, which introduced a new TLS handshake behavior. Some VPN providers struggle with the TLS handshake being sent over 2 frames instead of 1, which can lead to Boundary version 0.18.x and later controllers, workers, or clients being unable to establish connections. As a workaround, you can revert back to the previous TLS handshake behavior. -

- Learn more:  Known issues and breaking changes -
- Error when sending requests to aliases using HCP Boundary - - A known issue that was caused by the way default grants were previously configured in HCP Boundary could cause you to receive 500 errors when you attempted to list resolvable aliases. The issue has been resolved. Any clusters that you created on or after April 26, 2025 should not have the issue. -

- You can add grants to resolve the error for any older clusters that exhibit this behavior. -

- Learn more:  Known issues and breaking changes -
- Boundary client version number realignment - - Previously, the Boundary Client Agent and installer used a numbering scheme that was inconsistent with Boundary's release numbers. This inconsistency could make it difficult to understand version support and compatibility. -

- On May 27, 2025 new versions of the Boundary Client Agent and installer were released with a new numbering scheme that more closely follows Boundary's release numbers. Those versions were released as 0.19.5 to match the major Boundary version 0.19.x. Going forward, the Client Agent and installer will use the same major number as the current Boundary release. Any patches or updates will be reflected in the minor number. -

- Learn more about control plane and client compatibility:  Boundary Enterprise supported versions policy -
- Redundant grant scopes are no longer permitted - - You may have redundant grant scopes if you applied a grant to a scope and the scope also inherited the grant from the this, children, or descendants options. As of Boundary version 0.19.3, redundant grant scopes are no longer permitted. -

- When you upgrade a Boundary Enterprise or Community edition cluster to version 0.19.3 or later, the migration will fail with a message if the database contains any redundant grant scopes. The migration tool provides a command that automatically removes any redundant grant scopes so that you can proceed with the upgrade. -

- For HCP Boundary users, the redundant grant scopes are automatically removed as part of the migration process. -

- Learn more about removing redundant grant scopes and upgrading to version 0.19.3 or later:  Known issues and breaking changes -
- -## New features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureUpdateDescription
- Dynamic host catalogs for GCP - - GA - - Boundary now supports dynamic host catalogs for GCP. -

- When you configure dynamic host catalogs, Boundary securely queries infrastructure providers at runtime to discover and configure new services. You can define rules for whether you want Boundary to automatically add any discovered hosts as members of the host set. -

- Learn more: Host discovery and GCP dynamic hosts. -
- Worker filter generator - - GA - - A new filter generator was added to the Admin Console UI, allowing you to more easily create worker filters for targets, credential stores, and storage buckets. -

- Learn more: Worker tags. -
- Vault brokered credentials format change - - GA - - Previously, when you brokered credentials from a Vault credential store, the credentials displayed in raw JSON and could contain special characters. It was difficult to consume the credentials in this format. Credentials are now displayed in a format that is easier to cut and paste. -

- Learn more: Create a Vault credential store. -
- Azure Virtual Machine Scale Set support for dynamic host catalogs - - GA in version 0.19.1 - - The Azure plugin now supports Azure Virtual Machine Scale Sets in both Flexible and Uniform orchestration modes for dynamic host catalogs. It automatically discovers any individual virtual machine instances that are part of the scale sets and adds them as hosts. -

- Learn more: Azure dynamic host catalogs. -
- Transparent sessions - - GA in version 0.19.2 - - The transparent sessions feature is now generally available to HCP Boundary and Boundary Enterprise users. -

- Transparent sessions allows users to eliminate steps in their current workflows using Boundary’s Client Agent, a component that operates in the background to intercept network traffic and automatically route this traffic through a session if the user is authenticated and authorized. -

- Platform teams and access management teams that administer Boundary can now build much faster, simpler secure remote access workflows that feel more intuitive and invisible to their developer customers. -

- Learn more: Transparent sessions and Client Agent. -
- -## Known issues and breaking changes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionIssueDescription
- 0.13.0+ - - Rotation of AWS access and secret keys during a session results in stale recordings - - In Boundary version 0.13.0+, when you rotate a storage bucket's secrets, any new sessions use the new credentials. However, previously established sessions continue to use the old credentials. -

- As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. - Otherwise, you may end up with recordings that aren't stored in the remote storage bucket, and are unable to be played back. -
- 0.13.0+ - - Unsupported recovery workflow during worker failure - - If a worker fails during a recording, there is no way to recover the recording. This could happen due to a network connectivity issue or because a worker is scaled down, for example. -

- Learn more:  - Unsupported recovery workflow -
- 0.17.1+ - - Docker image no longer contains curl - - As of version 0.17.1 and later, the curl binary is no longer included in the published Docker container image for Boundary. -

- The image now includes wget. You can use wget to check the health endpoint for workers. -

- Learn more:  Check the health endpoint using wget -

- If your workflow depends on having curl in the image, you can dynamically install it using apk. Refer to the following commands for examples of using apk to install curl: -

- <CONTAINER-ID> apk add curl -

- or -

- kubectl exec -ti <NAME> -- apk add curl -
- 0.18.x+ - - Boundary version 0.18.x and later CLI is unable to establish connections using the boundary connect command - - Boundary version 0.18.x uses Go version 1.23, which introduced a new TLS handshake behavior. Some VPN providers struggle with the TLS handshake being sent over 2 frames instead of 1, which can lead to Boundary version 0.18.x and later controllers, workers, or clients being unable to establish connections. As a workaround, you can revert back to the previous TLS handshake behavior. -

- To revert back to the previous TLS handshake behavior, add the tlskyber=0 parameters to the GODEBUG environment variable before the boundary connect command. For example: -

- GODEBUG=tlskyber=0 boundary connect ssh -target-id <ID> -

- Learn more: Go issue #70047 and Go 1.23 Release Notes -

-
- 0.19.0 -

- (Fixed in 0.19.1) -
- Soft-deleted users are not properly authenticated - - Version 0.19.0 introduced a soft delete for when a cached user's auth tokens are deleted, but there is a valid refresh token that is less than 20 days old. Boundary considers those users as deleted. But it keeps their user information in the cache so that it can restore the information, if they log in again. -

- However, soft-deleted users were not being properly restored when they logged back in and it affected search capabilities. -

- This issue is resolved in version 0.19.1. Soft-deleted users are now properly restored as active when they log in again if the refresh token is less than 20 days old. -

- Upgrade to the latest version of Boundary -
- 0.17.0 - 0.19.0 -

- (Fixed in 0.19.2) -
- Canceled SSH connections cause performance issues - - When an SSH connection was canceled, it could cause a spike in CPU usage. In some cases, egress workers become unresponsive, leading to performance issues. The issue occurred when the connection context was canceled at specific times in the process, creating a busy loop that prevented workers from completing tasks. -

- This issue is resolved in version 0.19.2. Workers no longer enter a busy loop when SSH connections are canceled. -

- Upgrade to the latest version of Boundary -
- 0.19.0 -

- (Fixed in 0.19.2) -
- Unable to change key type for Vault SSH certificate credential library using the UI - - When you attempted to change the key type for a Vault SSH certificate credential library using the UI, the update failed. -

- This issue is resolved in version 0.19.2. You can now change the key type using the UI. -

- Upgrade to the latest version of Boundary -
- 0.19.0 -

- (Fixed in 0.19.2) -
- CVE-2025-22873 - - The version of Go that was used in Boundary release 0.19.x contained a security vulnerability. Although this vulnerability did not affect Boundary, release 0.19.2 was updated to use a new version of Go. -

- Learn more: -

- CVE-2025-22873 -

- Upgrade to the latest version of Boundary -
- 0.19.0 -

- (Fixed in 0.19.2) -
- 500 error when attempting to list resolvable aliases - - In HCP Boundary, you may receive a 500 error when you attempt to list resolvable aliases. This is a known issue that is caused by the way default grants were previously configured in HCP Boundary. The issue has been resolved, and any clusters that were created on or after April 26, 2025 should not have the issue. -

- For any clusters created before April 26, 2025, you can add grants to resolve the error: -
    -
  1. Create a role in the global scope and assign it to the u_auth user.
  2. -
  3. Configure the role to apply to all descendants in the global scope.
  4. Assign the following grants to the role: -

    - ids={{.User.Id}};type=user;actions=list-resolvable-aliases
    - ids=*;type=target;actions=list,read -
- Learn more: - -
- 0.18.0 - 0.19.0 -

- (Fixed in Boundary installer version 0.19.5) -
- Windows shortcuts are mandatory - - Previously, the Boundary installer for Windows always required you to install Desktop and Start menu shortcuts. This issue has been resolved, and you can now choose whether to install the shortcuts. -

- Learn more: Transparent sessions -

- Upgrade to the latest version of Boundary -
- 0.15.0 - 0.19.2 -

- (Fixed in Boundary version 0.19.3) -
- Redundant grant scopes cause performance issues - - You may have redundant grant scopes if you applied a grant to a scope and the scope also inherited the grant from the this, children, or descendants options. Redundant grant scopes could cause performance issues. As of Boundary version 0.19.3, redundant grant scopes are no longer permitted. -

- When you run the boundary database migrate command to upgrade a Boundary Enterprise or Community edition cluster to version 0.19.3 or later, the migration will fail with a message if the database contains any redundant grant scopes. The migration tool provides the following command to automatically repair the grant scopes: -

- boundary database migrate -repair=oss:97001 -

- Run the command to remove any redundant grant scopes from roles. Any individually granted scopes that are already covered by descendants or children grants are considered invalid and removed. When the migration is complete, the migration tool produces a message that details any changes. -

- HCP Boundary automatically removes the redudant grant scopes as part of the upgrade process. No further action is required. -

- Learn more: - - Upgrade to the latest version of Boundary -
- Client Agent 0.1.4 - 0.19.5 -

- (Fixed in Client Agent version 0.19.6) -
- Transparent session connection and DNS resolution issues - - Two known issues that affected transparent sessions were resolved with the release of Client Agent version 0.19.6: -
    -
  • If you established an SSH transparent session and then canceled the connection, you may have had trouble reconnecting.
  • -
  • If you switched network interfaces between Wi-Fi and Ethernet while the Client Agent was running, you may have experienced connectivity issues with some applications.
  • -
- These connection issues have been resolved in Client Agent version 0.19.6, install the new version to ensure that you do not experience them. -

- Learn more: Transparent sessions -

- Upgrade to the latest version of the Boundary clients -
diff --git a/website/content/docs/release-notes/v0_1_0.mdx b/website/content/docs/release-notes/v0_1_0.mdx deleted file mode 100644 index 90c4022e1..000000000 --- a/website/content/docs/release-notes/v0_1_0.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: docs -page_title: v0.1.0 release notes -description: >- - Learn more about the features included in the Boundary 0.1.0 release. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.1.0 - -v0.1.0 is the first release of Boundary. As a result there are no changes, improvements, or bugfixes from past versions. To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -## Boundary v0.1.0 highlights - -In this initial release, Boundary provides: - -- Password-based authentication -- Authenticated and authorized [TCP-based sessions](/boundary/docs/common-workflows/manage-sessions). -- Identity and access management providing [role-based controls](/boundary/docs/common-workflows/manage-roles) for principals. -- A user interface for administration of Boundary resources. -- A [Terraform provider](https://github.com/hashicorp/terraform-provider-boundary) for managing Boundary resources. -- A fully instrumented command line interface for managing Boundary and for establishing and managing sessions. -- A fully instrumented [Boundary golang SDK](/boundary/docs/api-clients/go-sdk). -- A log of Boundary sessions exposed through Boundary's administrator UI and postgres database. diff --git a/website/content/docs/release-notes/v0_20_0.mdx b/website/content/docs/release-notes/v0_20_0.mdx deleted file mode 100644 index 6efa366c3..000000000 --- a/website/content/docs/release-notes/v0_20_0.mdx +++ /dev/null @@ -1,217 +0,0 @@ ---- -layout: docs -page_title: v0.20.0 release notes -description: >- - Learn more about the new features included in the Boundary 0.20.0 release. Understand any deprecations, changes, and known issues. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary 0.20.0 release notes - -**GA date:** September 25, 2025 - -@include 'release-notes/intro.mdx' - -## Important changes - - - - - - - - - - - - - - - - - - - - - - - - - - -
ChangeDescription
- Error when sending requests to aliases using HCP Boundary - - A known issue that was caused by the way default grants were previously configured in HCP Boundary could cause you to receive 500 errors when you attempted to list resolvable aliases. The issue has been resolved. Any clusters that you created on or after April 26, 2025 should not have the issue. -

- You can add grants to resolve the error for any older clusters that exhibit this behavior. -

- Learn more:  Known issues and breaking changes -
- Boundary client version number realignment - - Previously, the Boundary Client Agent and installer used a numbering scheme that was inconsistent with Boundary's release numbers. This inconsistency could make it difficult to understand version support and compatibility. -

- On May 27, 2025 new versions of the Boundary Client Agent and installer were released with a new numbering scheme that more closely follows Boundary's release numbers. Those versions were released as 0.19.5 to match the major Boundary version 0.19.x. Going forward, the Client Agent and installer will use the same major number as the current Boundary release. Any patches or updates will be reflected in the minor number. -

- Learn more about control plane and client compatibility:  Boundary Enterprise supported versions policy -
- Redundant grant scopes are no longer permitted - - You may have redundant grant scopes if you applied a grant to a scope and the scope also inherited the grant from the this, children, or descendants options. As of Boundary version 0.19.3, redundant grant scopes are no longer permitted. -

- When you upgrade a Boundary Enterprise or Community edition cluster to version 0.19.3 or later, the migration will fail with a message if the database contains any redundant grant scopes. The migration tool provides a command that automatically removes any redundant grant scopes so that you can proceed with the upgrade. -

- For HCP Boundary users, the redundant grant scopes are automatically removed as part of the migration process. -

- Learn more about removing redundant grant scopes and upgrading to version 0.19.3 or later:  Known issues and breaking changes -
- -## New features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureUpdateDescription
- RDP targets - - GA - - Boundary now supports a new RDP target type. RDP targets let you use injected credentials to authenticate an RDP session between the client and end host in Windows environments that use Active Directory authentication. RDP targets use the new username password domain credential type. -

- Learn more: Target types and targets create command. -
- Username password domain credentials - - GA - - There is a new username password domain credential type for Windows environments that use Active Directory authentication. You can use username password domain credentials for credential injection when you connect to an RDP target. -

- Learn more: Credential management, Credentials in Boundary, and credentials create command. -
- RDP credential injection - - BETA - - Boundary now supports RDP credential injection as a beta feature. When users connect to RDP targets, Boundary can automatically inject credentials into the RDP session on behalf of the user. -

The initial beta release supports static credentials from Boundary's built-in static credential store or Vault's KV store. Refer to the documentation for known limitations, configuration requirements, and Windows compatibility. -

- Learn more: RDP credential injection compatibility. -
- -## Known issues and breaking changes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VersionIssueDescription
- 0.13.0+ - - Rotation of AWS access and secret keys during a session results in stale recordings - - In Boundary version 0.13.0+, when you rotate a storage bucket's secrets, any new sessions use the new credentials. However, previously established sessions continue to use the old credentials. -

- As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. - Otherwise, you may end up with recordings that aren't stored in the remote storage bucket, and are unable to be played back. -
- 0.13.0+ - - Unsupported recovery workflow during worker failure - - If a worker fails during a recording, there is no way to recover the recording. This could happen due to a network connectivity issue or because a worker is scaled down, for example. -

- Learn more:  - Unsupported recovery workflow -
- 0.17.1+ - - Docker image no longer contains curl - - As of version 0.17.1 and later, the curl binary is no longer included in the published Docker container image for Boundary. -

- The image now includes wget. You can use wget to check the health endpoint for workers. -

- Learn more:  Check the health endpoint using wget -

- If your workflow depends on having curl in the image, you can dynamically install it using apk. Refer to the following commands for examples of using apk to install curl: -

- <CONTAINER-ID> apk add curl -

- or -

- kubectl exec -ti <NAME> -- apk add curl -
- 0.18.x+ - - Boundary version 0.18.x and later CLI is unable to establish connections using the boundary connect command - - Boundary version 0.18.x uses Go version 1.23, which introduced a new TLS handshake behavior. Some VPN providers struggle with the TLS handshake being sent over 2 frames instead of 1, which can lead to Boundary version 0.18.x and later controllers, workers, or clients being unable to establish connections. As a workaround, you can revert back to the previous TLS handshake behavior. -

- To revert back to the previous TLS handshake behavior, add the tlskyber=0 parameters to the GODEBUG environment variable before the boundary connect command. For example: -

- GODEBUG=tlskyber=0 boundary connect ssh -target-id <ID> -

- Learn more: Go issue #70047 and Go 1.23 Release Notes -

-
diff --git a/website/content/docs/release-notes/v0_2_0.mdx b/website/content/docs/release-notes/v0_2_0.mdx deleted file mode 100644 index c944ed923..000000000 --- a/website/content/docs/release-notes/v0_2_0.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: docs -page_title: v0.2.0 release notes -description: >- - Learn more about the features included in the Boundary 0.2.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.2.0 - -The release notes below contain information about Boundary v0.2.0 as well as new features since Boundary's 0.1.0 that became available in 0.1.x releases. To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.2.0, please review Boundary’s [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.2.0 highlights - -**Open ID Connect (OIDC) Authentication**: Boundary 0.2 adds support for OIDC authentication methods, which allow users to delegate authentication to an OIDC provider. -This feature enables Boundary to integrate with popular identity providers like Microsoft Azure Active Directory, Okta, -cloud identity management systems such as AWS IAM, and others. To get started with creating OIDC auth methods to log into Boundary with common OIDC providers, -get started with the new [Boundary OIDC learn tutorial](/boundary/tutorials). - -**Boundary Desktop for MacOS:** Boundary Desktop enables users to use Boundary to access resources through a convenient GUI application. Boundary Desktop enables users to - -- **Login with available auth methods**: Users can now login to Boundary Desktop with all support auth methods, including OIDC. -- **Find targets:** Users can browse available targets. -- **Connect to targets:** Users can connect to targets via Boundary Desktop. -- **Manage sessions:** Users can manage all of their active sessions or drill down to sessions associated with a specific target. -- **AutoUpdate:** AutoUpdate the Boundary Desktop app as new versions become available. - -**Worker tags & filters (0.1.5):** Enable target traffic to be effectively “tied” to a given set of workers with [worker tags](/boundary/docs/workers/worker-tags), forcing the session to occur through specified workers for a specific target. - -Improvements to list actions:\*\* There have been numerous improvements to listing actions since Boundary 0.1.0. - -- **Resource filtering (0.1.8):** allows users to navigate their resources more easily by [filtering list actions based on resource information](/boundary/docs/filtering). -- **Recursive listing (0.1.5):** allows users to recursively list resources across a scope. -- **List authorizations (0.1.5):** allows users to see what actions they’re authorized to perform against the resources returned in a list command. - -**Database migrations (0.1.5):** Boundary provides an [easy upgrade path](/boundary/tutorials/oss-configuration/upgrade-version) with fail-safes in the event of migration issues. -This includes support for database upgrades in a single transaction. - -## What's changed - -- **Authentication:** The auth-methods \{id}:authenticate:login action is deprecated and will be removed in a few releases. (Yes, this was meant to deprecate the authenticate action; apologies for going back on this!) To better support future auth methods, and especially the potential for plugins, rather than defining custom actions on the URL path the authenticate action will consume both a map of parameters but also a command parameter that specifies the type of command. This allows workflows that require multiple steps, such as OIDC, to not require custom subactions. Additionally, the credentials map in the authenticate action has been renamed attributes to better match other types of resources. credentials will still work for now but will be removed in a few releases. Finally, in the Go SDK, the Authenticate function now requires a command value to be passed in. -- Related to the above change, the output of an API auth-methods \{id}:authenticate call will return the given command value and a map of attributes that depend on the given command. On the SDK side, the output of the Authenticate function returns a map, from which a concrete type can be easily umarshaled (see the updated authenticate password command for an example). - -**For more detailed information of all changes since 0.1.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md)** diff --git a/website/content/docs/release-notes/v0_3_0.mdx b/website/content/docs/release-notes/v0_3_0.mdx deleted file mode 100644 index 3d15c6cb0..000000000 --- a/website/content/docs/release-notes/v0_3_0.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: docs -page_title: v0.3.0 release notes -description: >- - Learn more about the features included in the Boundary 0.3.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.3.0 - -The release notes below contain information about Boundary v0.3.0, Boundary Desktop v1.1.0, as well as new features since Boundary's 0.2.0 that became available in 0.2.x releases. To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.3.0, please review Boundary’s [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.3.0 highlights - -**Boundary Desktop for Windows:** [Boundary Desktop v1.1.0](https://releases.hashicorp.com/boundary-desktop/) gives users the ability to connect to remote targets and view active session details. Boundary Desktop is now available for both Windows and MacOS. - -**Managed groups:** Managed groups allow the population of Boundary groups based on external IdP metadata. This feature allows users of our OIDC authentication method to automatically create groups based on the IdP they’re integrating with over OIDC. - -**OIDC configuration improvements:** Administrators can now configure Boundary authentication from OIDC identity providers in the Boundary admin console and Boundary's Terraform Provider. - -## What's changed - -For detailed information of all changes since 0.2.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md) diff --git a/website/content/docs/release-notes/v0_4_0.mdx b/website/content/docs/release-notes/v0_4_0.mdx deleted file mode 100644 index 32e29c350..000000000 --- a/website/content/docs/release-notes/v0_4_0.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: docs -page_title: v0.4.0 release notes -description: >- - Learn more about the features included in the Boundary 0.4.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.4.0 - -The release notes below contain information about new functionality available in Boundary v0.4.0. To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.4.0, please review Boundary’s [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.4.0 highlights - -**Session Credential Brokering:** Boundary 0.4, adds a Vault integration for the brokering of [Vault](https://www.vaultproject.io/) secrets to Boundary clients (both command line and desktop clients) for use -in Boundary sessions. Brokering of Vault secrets is the foundation of Boundary’s larger credential-management story for seamless single sign-on to infrastructure targets. This feature introduces new Boundary resources - [credential stores](/boundary/docs/domain-model/credential-stores), [credential libraries](/boundary/docs/domain-model/credential-libraries), and [credentials](/boundary/docs/domain-model/credentials) - -to support binding credentials with user sessions, as well as surfacing those credentials during session initialization on the command line and in Boundary Desktop. - -**`boundary connect` Credential Brokering Integration:** Additionally, we have started integration into the [boundary connect helpers](/boundary/docs/getting-started/connect-to-target), starting in this release with the Postgres helper; if the credential contains a username/password and boundary connect postgres is the helper being used, the command will automatically pass the credentials to the psql process. - -**Session Security Improvements:** Boundary workers will now close any existing proxy connections they're handling when they cannot make a status request to the worker. The timeout for this behavior is currenly 15 seconds. - -## What's changed - -For more detailed information of all changes since 0.3.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md) diff --git a/website/content/docs/release-notes/v0_5_0.mdx b/website/content/docs/release-notes/v0_5_0.mdx deleted file mode 100644 index 86fc8ed7a..000000000 --- a/website/content/docs/release-notes/v0_5_0.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: docs -page_title: v0.5.0 release notes -description: >- - Learn more about the features included in the Boundary 0.5.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.5.0 - -The release notes below contain information about new functionality available in Boundary v0.5.0. -To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). -To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.5.0, please review Boundary’s [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.5.0 highlights - -**Event Logging:** 0.5.0 includes significant improvements to Boundary's event logging system with goal of giving operators greater visibility into system information in a well-defined, structured format. -When enabled, event logs are the only type of logging Boundary performs, meaning standard system information and debug logs will no longer appear in stdout. -The new structured event logs are filterable by event type and other expressions that users define. Legacy HCLog output is still supported through a user-configurable setting. - -For more about event logging usage, see our [documentation](/boundary/docs/configuration/events/overview). - -**Credential CRUD operations for Administrative Console:** The 0.5.0 release enables administration to configure Vault credential libraries and Vault credential set resources through the administrative console. -Vault credential resources allows users to create Boundary sessions with credentials brokered by a Vault deployment. - -## What's changed - -For more detailed information of all changes since 0.4.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md) diff --git a/website/content/docs/release-notes/v0_6_0.mdx b/website/content/docs/release-notes/v0_6_0.mdx deleted file mode 100644 index 8a91733d7..000000000 --- a/website/content/docs/release-notes/v0_6_0.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: docs -page_title: v0.6.0 release notes -description: >- - Learn more about the features included in the Boundary 0.6.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.6.0 - -The release notes below contain information about new functionality available in Boundary v0.6.0 and the corresponding Boundary Desktop v1.3.0 and Boundary Terraform Provider v1.0.5 releases. -To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). -To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.6.0, please review Boundary’s [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.6.0 highlights - -**Permissions-based UI:** Boundary 0.6.0 dynamically tailors the administrator console to individual users’ permissions, ensuring users are presented only with actions and workflows that can succeed. - -**Linux Support for Boundary Desktop:** Boundary Desktop 1.3 adds support for Debian-based Linux distributions in addition to existing macOS and Windows support. - -**Managed group configurations via Terraform:** Managed groups can now be configured via Terraform using v1.0.5 of [Boundary's Terraform Provider](https://registry.terraform.io/providers/hashicorp/boundary/latest) - -## What's changed - -For more detailed information of all changes since 0.5.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md) diff --git a/website/content/docs/release-notes/v0_7_0.mdx b/website/content/docs/release-notes/v0_7_0.mdx deleted file mode 100644 index d6aef65fd..000000000 --- a/website/content/docs/release-notes/v0_7_0.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: docs -page_title: v0.7.0 release notes -description: >- - Learn more about the features included in the Boundary 0.7.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.7.0 - -The release notes below contain information about new functionality available in Boundary v0.7.0 and the corresponding Boundary Desktop v1.4.0 release. -To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). -To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.7.0, please review Boundary’s [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.7.0 highlights - -**Dynamic Host Catalogs:** Boundary introduces a new resource type, dynamic host catalogs, which automate the discovery of host resources from a catalog provider. The 0.7 release includes -initial support for Azure and AWS host catalogs with more catalog providers to follow in future releases. Catalogs are implemented via Boundary's (currently internal) new go-plugin system. - -**Managed group configuration in the admin console**: Managed groups are a special type of IAM group which populate users based on administrator-defined filters of external identity provider (IdP) metadata. -Configuration of managed groups is now available in the Boundary admin console. - -**UI Support for Resource Filtering:** Users may now filter auth method and session resources in the admin console and Boundary Desktop. - -## What's changed - -For more detailed information of all changes since 0.6.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md) diff --git a/website/content/docs/release-notes/v0_8_0.mdx b/website/content/docs/release-notes/v0_8_0.mdx deleted file mode 100644 index 52352ab6f..000000000 --- a/website/content/docs/release-notes/v0_8_0.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: docs -page_title: v0.8.0 release notes -description: >- - Learn more about the features included in the Boundary 0.8.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.8.0 - -The release notes below contain information about new functionality available in the Boundary v0.8.0 release. -To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). -To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.8.0, please review Boundary’s [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.8.0 highlights - -**Metrics and Health Endpoint:** Boundary is adding [Prometheus metrics](/boundary/docs/oss/operations/metrics) to monitor the operations of workers and controllers, -as well as a [health endpoint](/boundary/docs/oss/operations/health) for controllers. - -**Audit Event Logs:** We are expanding the audit event logs by increasing the captured [audit events](/boundary/docs/configuration/events/overview), -with support for sanitizing sensitive information from audit events. All of the events are now classified and events contain more usable data, with sensitive information redacted by default. - -**UI Support for Worker Tags:** Users can now set and edit [worker tag](/boundary/docs/workers/worker-tags) filters in the Boundary admin console. - -**Performance Improvements:** We have implemented changes to improve performance on larger deployments; such as adding a refresh button in the admin console and desktop client, -and improving response times listing sessions and targets. We plan to continue these efforts as Boundary users grow their deployments! - - -## What's changed - -For more detailed information of all changes since 0.7.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md) diff --git a/website/content/docs/release-notes/v0_9_0.mdx b/website/content/docs/release-notes/v0_9_0.mdx deleted file mode 100644 index 3834c61a7..000000000 --- a/website/content/docs/release-notes/v0_9_0.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: docs -page_title: v0.9.0 release notes -description: >- - Learn more about the features included in the Boundary 0.9.0 release and discover what has changed. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Boundary v0.9.0 - -The release notes below contain information about new functionality available in the Boundary v0.9.0 release. -To see a granular record of when each item was merged into the Boundary project, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md). -To learn about what Boundary consists of, we highly recommend you start at the [Getting Started Page](/boundary/docs/getting-started). - -Lastly, for instructions on how to upgrade an existing Boundary deployment to v0.9.0, please review Boundary's [general upgrade guide](/boundary/tutorials/oss-configuration/upgrade-version). - -## Boundary v0.9.0 highlights - -**HCP Boundary Public Beta:** Boundary is coming to the HashiCorp Cloud Platform! HCP Boundary provides an easy way to securely access -critical systems with fine-grained authorizations based on trusted identities. Boundary on HashiCorp Cloud Platform provides a fully managed, -single workflow to securely connect to hosts and critical systems across Kubernetes clusters, cloud service catalogs, and on-premises infrastructure. -You can now [try HCP Boundary](/boundary/tutorials/hcp-getting-started) for free during our [Public Beta](https://cloud.hashicorp.com/products/boundary). - -**Self-Managed Workers:** With HCP Boundary, administrators have the option of setting up private, self-managed workers for infrastructure access. This provides the -security of having privately managed workers while providing the low overhead of a managed service. Learn more about setting up self-managed workers -[here](/boundary/tutorials/hcp-administration/hcp-manage-workers). - -**Worker Registration Enhancements:** Administrators now have a second method of authenticating workers, and we call these PKI Workers (the original -authentication method is now called KMS Workers). PKI Workers authenticate to Boundary using a new certificate-based method, allowing for worker deployment -without using a shared KMS. - -**Static Credential Store:** In Boundary 0.9.0, we are introducing the static credential store, a basic -[credential store](/boundary/docs/domain-model/credential-stores) that is native to Boundary. These credentials -are encrypted and stored directly in Boundary. For users interested in integrated secrets management to Boundary targets, the new basic -credential store removes the dependency on HashiCorp Vault. Currently, the static credential store only supports username/password type credentials. Note: If you -wish to use the Desktop Client for credential brokering, version 1.4.4 and up is required. - -**Admin UI Quickstart:** Users can now access a quickstart tool on the Admin UI which sets up a target along with a host, project, and organization. - -## What's changed - -For more detailed information of all changes since 0.8.0, please refer to the [Changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md) diff --git a/website/content/docs/secure/encryption/connections-tls.mdx b/website/content/docs/secure/encryption/connections-tls.mdx deleted file mode 100644 index 8a18d5b1c..000000000 --- a/website/content/docs/secure/encryption/connections-tls.mdx +++ /dev/null @@ -1,315 +0,0 @@ ---- -layout: docs -page_title: Connections/TLS -description: >- - Learn how Boundary uses transport layer security (TLS) to secure connections and establish sessions. Understand how workers authenticate to resources. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# TLS in Boundary - -As a security product, Boundary has been designed from the ground up to ensure -its connections are secure. There are three types of connections in Boundary; -this page will describe how TLS works with each of them. - -Some of the ways that Boundary uses TLS, e.g. for client-to-worker connections, -are different from most other products. It may not be readily apparent that user -configuration of TLS on the listening port of Workers is not only not required, -but more secure; however, when it comes to TLS, Boundary tries to provide high -security by default with simplicity of operation. - -Details are in the individual sections below. - -## Client-to-controller TLS - -Boundary's API access (that is, the Controller server defaulting to port 9200) -uses standard PKI. TLS is configured by providing a valid certificate (and -optionally CA certificate or chain) and clients must trust that CA chain. This -provides broad compatibility with a wide array of clients. - -It is possible to require client certificates; see the configuration for -`listener` blocks to see the available TLS parameters. - -## Client-to-worker TLS - -Workers do not require any configuration for their client-facing listeners to -support a high degree of security. Instead, the TLS configuration to use is -determined dynamically via SNI, and the session is then mutually authenticated. -Here's how it works: - -TLS establishment is performed as follows: - -1. When the session is authorized, the Controller generates a TLS certificate - acting as a self-contained chain. This is similar to the Worker-to-Controller - flow above, but in this case the key is an Ed25519 key generated via - derivation from a base key within the Controller, which itself is protected - at rest via the "root" KMS for the scope that contains the target. The - derivation uses HKDF-SHA256 with the user ID and the session ID as inputs. - The lifetime of the certificate is tied to the lifetime of the session. - -2. The certificate and private key (along with other session authorization data, - notably the session ID) are returned to the client as part of the output of an - `authorize-session` action against a target, in the form of a marshaled object. - The controller persists the certificate in the database, but not the private - key. - -3. The client (that is, the `boundary connect` command) parses this session - authorization data and uses the certificate and private key to construct a TLS - stack. It then makes a TLS 1.3 connection to a Worker, passing the session ID as - the SNI value. - -4. The worker sees the SNI value and makes a call to the Controller to fetch - session authorization information, keyed by the session ID. - -5. The Controller looks for a session with the given ID and fetches the - information. Using the session ID and the user ID tied to the session, it - re-derives the private key and passes all of the information back to the Worker. - Notably, this may include a TOFU (Trust On First Use) token. - -6. The Worker uses the given data to construct a TLS stack with the same - certificate and key. - -7. The connection is mutually authenticated; on each end, only the single - self-signed CA certificate that was securely transmitted is configured as a - valid root CA for validation checking. - -8. If successful, the client and Worker perform a handshake, where the client - passes a TOFU (Trust On First Use) value to the Worker. This value is derived - when the client is created; that is, when `boundary connect` is run. This allows - for a single client to make multiple connections within a session, without the - credentials being usable via a different client: - -9. If the worker was not given a TOFU token in step 5, the worker submits the - value to the Controller. The Controller verifies (via a database transaction) - that the session has not had a different TOFU token submitted prior and stores - it. Otherwise it's rejected, and so is the connection, as a possible replay - attack. - -10. If the Worker was given a TOFU token in step 5, it checks to see whether the - token values match. If not, the connection is rejected as a possible replay - attack. - -In the future, to support other client paradigms, we may support user -configuration of the Worker's client-facing TLS. In this model, the shared -certificate/private key would instead act as credentials for the session, -similar to a username/password. - - -## Worker-to-upstream TLS - -Workers connect to upstreams (Controllers, or other Workers) via TLS -connections. In order to make these connections, Workers have to be -authenticated to the cluster. How this authentication and session establishment -takes place can happen in one of two ways: by a built-in X.509-based PKI system, -or by leveraging a KMS system to provide secure transport of authentication -information. - -The KMS-based mechanism provides zero-touch registration of Workers to a -cluster, while the PKI mechanism provides positive access control at -registration time. Currently, HCP Boundary deployments only support PKI -authentication for self-managed Workers. - -### PKI-based worker authentication - -In the PKI-based authentication mechanisms, Workers are registered to the -cluster by informing the cluster of a Worker's public signing and encryption -keys. The cluster then returns to the Worker a set of signed certificates and a -Controller public encryption key. This process is arbited by the operator (or a -provisioning system) to provide security for transport of the initial public key -material. - -The PKI mechanism is set up via transport of a single value from the Worker to -any cluster Controller. Once established, certificates and encryption keys are -automatically rotated periodically, currently at a period of two weeks. - -There are two variations on this mechanism: _worker-led_, where the Worker -produces the initial key material, and _controller-led_, where the Controller produces -the initial key material. - -Note that the mechanisms described in this section omit detail for clarity. - -#### Worker-led PKI-based registration - -Registration proceeds as follows: - -1. The Worker generates a signing public/private Ed25519 keypair and an - encryption public/private X25519 keypair, along with a registration nonce, - and provides these values in a bundle to the operator or orchestration - system. The bundle is signed with the Worker's private Ed25519 key (signing - ensures that a Meddler-in-the-Middle (MITM) that is able to snoop traffic - will be unable to masquerade as the Worker in requests sent to the - Controller, due to lacking the Worker's private signing key; as a result it - should never be properly registered or sent sessions to proxy). - -2. The operator or orchestration system submits this bundle to a Controller in - the cluster via an authenticated and authorized API call, requesting that a - Worker resource be created tied to the given key information. - -3. The Controller creates a Worker resource and associates it to the given key - material. The Controller also signs a _client-only_ certificate - authenticating the Worker's signing key and generates its own encryption - public/private keypair specific to that Worker. - -4. The Worker requests to its configured upstream(s) to fetch its issued - credentials. It provides its public keys and original registration nonce in - the request, which is signed via the Worker's private Ed25519 key. (Here - again this means that a MitM cannot masquerade as the Worker due to lacking - the signing key.) If the configured upstream is a Controller, it can respond - directly; otherwise the request is relayed up to the cluster Controllers. - -5. A Controller receiving the request validates that the provided nonce matches - the nonce in the bundle provided by the operator/orchestration system in step - 2, and that the keys also match. If so, the Controller uses its - Worker-specific encryption private key and the Worker's encryption public key - to derive a shared symmetric encryption key, and uses it to encrypt the - Worker certificate, its CA certificate, and the nonce, and returns it to the - Worker along with its encryption public key. - -6. The Worker uses the given Controller encryption public key and its private - key to derive the shared symmetric key; confirms it can decrypt the returned - bundle; and validates the nonce, storing the issued certificate and CA - certificate. - -#### Controller-led PKI-based registration - -Registration proceeds as follows: - -1. An operator requests a worker activation token. The Controller creates a Worker resource and generates a single-use -activation token and nonce, returning this value to the operator. - -2. The operator puts this token in the `controller_generated_activation_token` field of a worker's configuration -file. - -3. The Worker generates a signing public/private Ed25519 keypair and an -encryption public/private X25519 keypair, and signs this bundle. - -4. The Worker sends a request to its configured upstream(s) to fetch its issued -credentials. It provides its public keys and the activation token in -the request, which is signed via the Worker's private Ed25519 key. (A man-in-the-middle cannot masquerade as the Worker due to lacking -the signing key.) If the configured upstream is a Controller, it can respond -directly; otherwise the request is relayed to the cluster's Controllers. - -5. A Controller receiving the request validates the activation token generated in step 1. -If the token is validated, the Controller associates the given key material with the premade Worker resource. -The Controller also signs a _client-only_ certificate authenticating the Worker's signing key, -and generates its own encryption public/private keypair specific to that Worker. The keypair is used -to derive a shared symmetric encryption key, and to encrypt the -Worker certificate and its CA certificate. The Controller returns it to the -Worker along with its public encryption key. - -6. The Worker uses the given Controller encryption public key and its private -key to derive the shared symmetric key, confirms it can decrypt the returned -bundle, and stores the issued certificate and CA certificate. - -#### PKI-based session establishment - -Using the stored credentials, a PKI-based worker establishes a session as -follows: - -1. The Worker initiates a TLS connection to an upstream, presenting its TLS - certificate along with a signed bundle containing a nonce. - -2. The upstream requests a just-in-time server certificate (remember, - certificates issued during registration are client-only), either directly (if - a Controller) or via a proxied request to a Controller (if another Worker). - The request conveys the Worker's nonce as well as the key ID from the client - certificate. - -3. A cluster Controller validates the key ID to ensure it is a registered - worker, then creates a certificate with a short validation period that embeds - the Worker's nonce, signed with the cluster's CA certificate. The Controller - issuing this certificate has now authenticated the incoming Worker to the - upstream, as the Controller has now vouched for the validity of the Worker - tied to the client certificate. (Technically client certificate verification - happens later in the TLS handshake, but conceptually this is when the - incoming Worker is authenticated to the upstream.) - -4. The upstream presents this server certificate to the Worker. The Worker - validates that its nonce is embedded in the certificate and that the - certificate chain can be validated to one of its saved CAs. This - authenticates the upstream to the incoming Worker, since the trusted root has - issued a new certificate containing the expected nonce and provided it to the - upstream. - -5. The TLS connection is now established, and the upstream can handle the Worker - protocol. - -#### PKI-based credential rotation - -Periodically, a PKI-based Worker will trigger rotation of its credentials. The -mechanism is as follows: - -1. The Worker generates a new signing public/private Ed25519 keypair and a new - encryption X25519 public/private keypair. - -2. The Worker creates a request to fetch new credentials from the Controller, - providing its new public keys and an operation nonce in the request, - encrypted with the current shared symmetric encryption key via the current - X25519 parameters. As only the Controllers and the Worker can derive this - shared symmetric key, the Worker knows that for the request to be satisfied - it must be handled by an already-trusted Controller. - -3. The Controller decrypts the bundle and registers the new key information to - the Worker resource. It generates a new certificate and encryption - public/private keypair and returns the certificate, current CA, operation - nonce, and encryption public key to the worker. All but the encryption public - key are encrypted with the symmetric key derived from the new Controller - encryption private key/new Worker encryption public key. - -4. This information is itself encrypted with the existing symmetric encryption - key, and this value returned to the Worker. - -5. The Worker decrypts the outer bundle with its current information, uses that - to retrieve an authenticated new encryption public key from the Controller, - then uses that with its new encryption private key to derive the new shared - symmetric encryption key. That new key is used to decrypt the rest of the - parameters, and the nonce is checked to ensure that the response is for the - current operation started by the Worker in step 1. - -6. The Worker has validated that a trusted Controller provided the new - certificate information and encryption parameters and that those parameters - can be used to successfully derive a shared symmetric encryption key. The - Worker saves the new credentials and uses them going forwardl - -### KMS-based worker authentication - -Workers can take advantage of the [KMS](/boundary/docs/secure/encryption/data-encryption) -key designated for `worker-auth` within Boundary's configuration file, which -must point to the same key on the KMS for both the Controller and the Worker. -Security of the connection relies on secure transmission of a single set of -allowed TLS parameters, which forms the entire allowable CA chain for the -connection. - -TLS establishment is performed as follows: - -1. The Worker generates a TLS certificate acting as a self-contained chain, as - well as a nonce. The generated key type is currently Ed25519. The certificate is - valid for a total of 2.5 minutes: thirty seconds before the current time (to - allow for some minor clock drift) and two minutes after (to allow time to - establish the connection). - -2. The Worker marshals the TLS chain and nonce and encrypts the resulting bytes - via the shared KMS. This value is marshaled and split into chunks. - -3. The Worker establishes a TLS 1.3 connection to the Controller. The encrypted - value is transmitted to the Controller via the TLS ALPN field as numbered - chunks. - -4. The Controller reads the chunks and reassembles them into the original - encrypted value. - -5. The Controller decrypts this value via the shared KMS. If successful, the - Controller validates that the nonce is not known to ensure that this is not a - replay. The nonce value is checked against and stored into the database, - ensuring that nonce replay cannot occur across controllers. - -6. The Controller uses the decrypted parameters to configures its TLS stack with - the same certificate and key. - -7. The connection is mutually authenticated; on each end, only the single - self-signed CA certificate that was securely transmitted is configured as a - valid root CA for validation checking. diff --git a/website/content/docs/secure/encryption/data-encryption.mdx b/website/content/docs/secure/encryption/data-encryption.mdx deleted file mode 100644 index 1f940e86d..000000000 --- a/website/content/docs/secure/encryption/data-encryption.mdx +++ /dev/null @@ -1,196 +0,0 @@ ---- -layout: docs -page_title: Data encryption -description: >- - Learn how key management services protect the encryption keys used for securing data. Understand key lifecycle management best practices. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Data encryption in Boundary - -Boundary has multiple mechanisms to ensure secure end-to-end behavior of the -system. A key part of this is [support for various Key Management -Systems](/boundary/docs/configuration/kms) that protect the base encryption keys used -for various functions. This page describes the various KMS key purposes that -Boundary supports and how they are used within the system. - -## The `worker-auth-storage` KMS key - -The `worker-auth-storage` KMS key can be used by [Workers registered using worker-led or controller-led -methods](/boundary/docs/workers/registration#authorization-methods) for storage of authentication -keys. It is optional for workers; if not specified the authentication keys -will not be encrypted on disk. This can not used by workers registered using an external KMS. - -## The `root` KMS key and per-scope KEK/DEKs - -Following best practices of using different encryption keys for different -purposes, Boundary has a number of encryption keys generated within each scope. -Each key further contains versions, which hold the key material used to encrypt -data. You can create new key versions by _rotating_ the keys. A key version -can be destroyed, which will re-encrypt any existing data before destroying the -key material permanently. - -The `root` KMS key acts as a KEK (Key Encrypting Key) for the scope-specific -KEKs (also referred to as the scope's `root` key). The scope's `root` KEK -and the various DEKs (Data Encryption Keys) are created when a scope is created. -The DEKs are encrypted with the scope's `root` KEK, and this is in turn -encrypted with the KMS key marked for the `root` purpose. - -You can configure `root` KMS keys for self-managed Enterprise or Community edition deployments. - -The current scoped DEKs and their purposes are detailed below: - -- `audit`: This is used to encrypt secret values in the event log. For more - information about the event log, refer to - [the events config](/boundary/docs/monitor/events). - -- `database`: This is the general-purpose DEK used to encrypt values within the - database. Values that are encrypted are those generally considered to be - secret, such as API keys, third-party tokens, certificate private keys, and so - on. - -- `oidc`: This is used to encrypt OIDC information in cookies and authentication - requests. - -- `oplog`: This is used for encrypting oplog (operation log) values for the - given scope. - -- `tokens`: This is used for encrypting tokens generated by auth methods within - the given scope. - -- `sessions`: This is used as a base key against which to derive - session-specific encryption keys. - -### Key version lifecycle management - -You can control the lifecycles of the per-scope KEK and DEKs via the CLI or -API using the key endpoints under the scopes section. To rotate all the keys -in a scope, use the `rotate-keys` endpoint: - -```shell-session -$ boundary scopes rotate-keys -scope-id p_A4jfDjZ9jf -``` - -This endpoint creates new key versions for all keys in the scope -`p_A4jfDjZ9jf`, and makes these key versions the active key versions for -encrypting new data. The previous key version(s) will continue to be used for -decrypting existing data. You can use the `-rewrap` flag to immediately rewrap -all DEK versions with the new KEK version. Otherwise, the DEK versions remain -encrypted by the prior KEK version from when they were created. - -To list all keys in a scope and their versions, use the `list-keys` endpoint: - -```shell-session -$ boundary scopes list-keys -scope-id p_A4jfDjZ9jf -``` - -To destroy a key version, use the `destroy-key-version` endpoint: - -```shell-session -$ boundary scopes destroy-key-version -scope-id p_A4jfDjZ9jf -key-version-id kdkv_tr6ZN8opYr -``` - -The latest key version cannot be destroyed, so if you want to destroy the -latest key version, you will need to call the `rotate-keys` endpoint first, -to create a new set of key versions. The `oplog` purpose key versions also -cannot be destroyed at this time. - -Destroying a key version sometimes requires background work before it can be -completed. This is because DEK versions that currently encrypt data -necessitate re-encrypting that data with the latest DEK version for each -purpose before they can be deleted. You can monitor the progress of this -re-encryption job via the `list-key-destruction-jobs` endpoint: - -```shell-session -$ boundary scopes list-key-version-destruction-jobs -scope-id p_A4jfDjZ9jf -``` - -Once the job disappears from this list, the associated key version will have -been destroyed and any existing data will have been re-encrypted. - -## The `bsr` KMS key - -This feature requires HCP Boundary or Boundary Enterprise - -The `bsr` KMS key is required for [session recording](/boundary/docs/session-recording). -If you do not add a `bsr` key to your controller configuration, you will receive an error when you attempt to enable session recording. -The key is used for encrypting data and checking the integrity of recordings. - -## The `previous-root` KMS key - -The `previous-root` KMS key is used when migrating to a new `root` key. Adding -the `previous-root` KMS key to your configuration informs the Controller to use -it for decrypting the existing information in the database, allowing you to -rotate and rewrap the KEKs to complete the migration to the new root key. - -You can configure `previous-root` KMS keys for self-managed Enterprise or Community edition deployments. - -## The `worker-auth` KMS key - -The `worker-auth` KMS key is a key shared by the Controller and Worker in order -to authenticate a Worker to the Controller. Specifics of this mechanism can be -found on the [Connections/TLS page](/boundary/docs/secure/encryption/connections-tls). If -a worker is registered with [worker-led or controller-led -methods](/boundary/docs/workers/registration#authorization-methods) this is unnecessary. - -You can configure `worker-auth` KMS keys for HCP, Enterprise, and Community edition deployments. -However, you cannot configure `worker-auth` keys for the first set of workers that connect to your HCP workers. - -## The `recovery` KMS key - -The `recovery` KMS key is used for rescue/recovery operations that can be used -by a client to authenticate almost any operation within Boundary. Its mechanism -of operation is very similar to the `worker-auth` flow in terms of using a -shared KMS between the client and the Controller for authentication. A nonce and -creation time are included as an encrypted payload, formatted as a token and -sent to the Controller. The time and nonce are used to ensure that a value -cannot be replayed by an adversary, and also to ensure that each operation must -be individually authenticated by a client so that revoking access to the KMS has -an immediate result. - -You can configure `recovery` KMS keys for self-managed Enterprise or Community edition deployments. - - - -It is not required for this `kms` configuration block to exist in the -Controller's configuration file. It's best practice to leave it out except when -actually needed, and to use change control capabilities to ensure that the -configuration file modification is authorized. After it's no longer needed, the -block should be removed. - - - -On the client side, a user can use the `-recovery-config` flag with any -operation on the CLI to specify a configuration file containing a suitable `kms` -block. This functionality is also accessible via the Go SDK. - -Requests authorized via this mechanism will show a user of `u_recovery`. This -mechanism _cannot_ be used to authorize a session, as there is no uniquely -identifying user information available. - -There are some other situations where this mechanism can be useful. For example, -it is possible to use this mechanism, along with some defaults in the Terraform -provider, to ensure that _everything_ in Boundary is created through Terraform, -with the exception of resources that cannot themselves be deleted. (This -consists of built-in anonymous (`u_anon`), authenticated (`u_auth`), and -recovery (`u_recovery`) users and the `global` scope.). By initializing Boundary -with the options to skip creating default resources, Terraform can be used to -create the specific resources needed instead, with the `recovery` KMS used to -authenticate setting up the initial auth method(s). - -## The `config` KMS key - -This key can be used to encrypt values within Boundary's configuration file. By -sharing this block between Boundary and an operator, the operator can put -sensitive or secret values (such as cloud API keys for KMSes) in Boundary's -configuration file, run `boundary config encrypt` to encrypt the file, and then -safely pass the file to a change control system. Only another operator or system -with access to that KMS can decrypt the values. Boundary will check for a -`config` KMS block on startup, and if it exists, will use it to decrypt any -encrypted values found at startup time. - -You can configure `config` KMS keys for self-managed Enterprise or Community edition deployments. diff --git a/website/content/docs/secure/security-model.mdx b/website/content/docs/secure/security-model.mdx deleted file mode 100644 index f54e2510b..000000000 --- a/website/content/docs/secure/security-model.mdx +++ /dev/null @@ -1,147 +0,0 @@ ---- -layout: docs -page_title: Boundary security model -description: >- - Understand the mechanisms involved in a secure Boundary deployment, which threats are considered part of the security model, and HCP Boundary's architecture. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Security model - -Boundary brokers secure, auditable connections to infrastructure targets while keeping credentials hidden and enforcing least-privilege policy. -The security model ensures [confidentiality, integrity, authentication, and accountability](http://www.wikipedia.org/wiki/Information_security) for all access and session brokering operations. - -Defense in depth is crucial for secure privileged access management, and deployment requirements may differ dramatically depending on your use case. -This documentation may need to be adapted to your situation, but the general mechanisms for a secure Boundary deployment revolve around: - -- [mTLS](/boundary/docs/secure/encryption/connections-tls) - Mutual TLS authentication between client, controller, and worker components prevents unauthorized access by requiring all parties to present valid certificates. -This requirement protects internal communications and session brokering operations. -- [RBAC](/boundary/docs/rbac) - Boundary's allow-only permissions model enables authorization for authenticated connections by granting capabilities to roles which are then assigned to users, groups, or managed groups. -- [Scopes](/boundary/docs/domain-model) - Access to targets within organizations and projects can be controlled to allow for granular access to infrastructure resources. -- [Data encryption](/boundary/docs/secure/encryption/data-encryption) - Sensitive data stored in Boundary's database is protected using envelope encryption with external key management systems. - -The combination of these mechanisms creates a strong security posture, enabling administrators to enforce least-privilege access, decouple credentials from end users, maintain comprehensive audit logs, and ensure secure network traversal without direct connectivity to sensitive networks. - -## Threat model - -The following are the various parts of the Boundary threat model: - -- **Eavesdropping on any Boundary communication**. -All communication between clients, controllers, and workers is protected by TLS or mutually authenticated TLS, ensuring confidentiality and integrity. -- **Tampering with data at rest or in transit**. -Any unauthorized modification of session information, configuration, or persistent state should be detected, causing transaction abort or session termination. -- **Access to targets or controls without authentication or authorization**. -All requests must be authenticated and authorized according to defined granular policies. -- **Access to targets or controls without accountability**. -When audit logging is enabled, all access attempts and privileged operations must be logged before sensitive data is transmitted. -- **Confidentiality of managed credentials**. -Credentials brokered by Boundary must never be exposed to clients unless explicitly authorized, preventing credential leakage. -- **Availability of session brokering services**. -Boundary supports highly available deployments to maintain access in case of infrastructure failures. - -## Not in scope - -The following are explicitly not considered part of the Boundary threat model: - -- **Protecting against compromise of Boundary hosts (controllers, workers)**. -An attacker with arbitrary code execution or privileged access on controller or worker hosts can undermine security guarantees. -This includes access to: - - The Boundary data directory containing configuration and state - - Memory of running Boundary controller or worker processes - - The capability to run modified Boundary binaries - - The capability to redirect worker host network traffic -- **Protecting against compromise of end-user or administrator devices**. - - If an attacker compromises a user's device and obtains valid Boundary credentials, they can perform actions with those credentials' privileges. - - Brokered credentials may be returned to the user's device and displayed in plain text. - - Boundary Client Agent specifics: - - The Client Agent stores session credentials and related information in memory. - Boundary CLI persists auth tokens to platform-specific keyring storage. - If an attacker can read the memory of the Client Agent process or has compromised the OS user account under which the Client Agent is running and authenticated, they may be able to access these active session credentials. - - The Client Agent's security relies on the OS user context; an OS user can only connect to sessions managed by the Client Agent if they are the same OS user that initiated the DNS lookup that created the session. - Compromise of this OS user account bypasses the local protection. - - An attacker could subvert the Client Agent's DNS interception mechanism on the local host. -- **Protecting against vulnerabilities in external credential sources**. -Boundary integrates with systems like HashiCorp Vault, cloud IAM services, and other credential stores, but cannot protect against exploits targeting these external services. -- **Protecting against the leakage of the existence of resources**. -While Boundary protects credential details, an attacker with read access to the backend might be able to see that certain targets or auth methods exist, even if they cannot access them. -- **Protecting against network-level denial of service attacks**. -While Boundary supports high-availability configurations and provides rate limiting, it does not include inherent protections against volumetric DoS attacks targeting its network surfaces. -- **Protecting against target application vulnerabilities**. -Once a session is established to a target (SSH server, database, etc.), Boundary cannot protect against vulnerabilities in that target application. - -## HCP Boundary - -HCP Boundary is deployed onto a single AWS region across three availability zones in that region. -Each customer cluster is deployed as a Nomad job of Docker containers. -The Nomad jobs are controlled by an external service that accesses the Nomad cluster through the VPC's PrivateLink. - -![High-level diagram of HCP Boundary architecture](/img/security-model/boundary-architecture.png) - -For a given HCP Boundary cluster, the only user-accessible endpoints are the controllers, which have a randomly-generated 32-character cluster UUID, `https://.boundary.hashicorp.cloud`. -These machine-generated URLs provide no discernible patterns, guarding against the enumeration of controllers. - -### Tenancy model - -HCP Boundary uses a multi-tenant RDS Postgres cluster with a separate database per tenant. -This architecture uses security controls inherent to Postgres' database isolation. -All secret and sensitive row data is encrypted with scope-specific, per-tenant keys. - -This model is commonly referred to as a **siloed** multi-tenant database, as opposed to **bridge** or **pool** models. -A siloed model allows us to maintain the strictest security while simplifying the architecture. - -### Self-managed workers - -Self-managed workers are workers that are managed by administrators outside of the HCP infrastructure, in their cloud or on-premises environments. -Just like all Boundary worker-to-controller and client-to-worker communication, self-managed workers connect to the controller and clients over mutually-authenticated TLS. -For more information about how self-managed workers authenticate to the HCP Boundary controller, refer to [PKI-based worker authentication](/boundary/docs/secure/encryption/connections-tls#pki-based-worker-authentication). - -A compromised worker may result in the compromise of any targets assigned to the worker as well as the integrity of any log data provided by the compromised worker. - -### Storage - -The Boundary controller and worker infrastructure is stateless, whereby all state lives in the RDBMS. -Each HCP Boundary cluster is provided with a separate database inside of an Aurora Postgres cluster. -The [Vault database engine](/vault/docs/secrets/databases) provides access to the database using dynamic credentials that are regularly rotated. - -![High-level diagram of HCP Boundary data at rest](/img/security-model/data-at-rest.png) - -### Data encryption - -HCP Boundary clusters use the [Vault Transit secrets engine](/vault/docs/secrets/transit) for their root, recovery, and worker-auth KMS keys. -Boundary controllers are provided access to the Vault transit keys with a token that is assigned a policy that allows them to access only their individual keys. -These tokens are regularly rotated. - -Administrators may also use an external key management system, including Vault or HCP Vault, to manage the key-encrypting root key. -Refer to the [kms stanza](/boundary/docs/configuration/kms) documentation for more information about supported external KMS systems. - -### Data in transit - -All user-to-controller communication is performed over TLS. -Refer to the [TLS configuration options](/boundary/docs/configuration/listeners/tcp-listeners#tls) in the TCP listeners documentation. - -All other communication, including worker-to-controller and client-to-worker, is performed over mutually-authenticated TLS. -Boundary automatically generates and manages the TLS keys. - -![High-level diagram of HCP Boundary data in transit](/img/security-model/data-in-transit.png) - -### Identity - -The HCP Platform allows administrators to perform high-level cluster operations such as creation and deletion. -You can manage HCP users and their permissions using the [HCP Portal](https://portal.cloud.hashicorp.com). -Once you create an HCP Boundary cluster, you manage Boundary users and permissions within Boundary itself. - -When an administrator creates an HCP cluster tenant, they are prompted to create administrative credentials to bootstrap the cluster. -The administrator can then use Boundary-specific authentication methods to connect directly to the controller and perform administrative tasks. - -## More information - -Refer to the following topics for more information: - -- [TLS in Boundary](/boundary/docs/secure/encryption/connections-tls) -- [Permissions in Boundary](/boundary/docs/rbac) -- [Boundary domain model overview](/boundary/docs/domain-model) -- [Data encryption in Boundary](/boundary/docs/secure/encryption/data-encryption) \ No newline at end of file diff --git a/website/content/docs/session-recording/compliance/configure-storage-policy.mdx b/website/content/docs/session-recording/compliance/configure-storage-policy.mdx deleted file mode 100644 index e569ff4b9..000000000 --- a/website/content/docs/session-recording/compliance/configure-storage-policy.mdx +++ /dev/null @@ -1,704 +0,0 @@ ---- -layout: docs -page_title: Configure storage bucket policies -description: >- - Configure storage bucket policies to manage the lifecycles of session recordings. Specify retention and deletion policies to codify compliance periods. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure storage bucket policies - -This feature requires HCP Boundary Plus or Boundary Enterprise - -Retention policies can codify storage bucket lifecycle management for [session recordings][]. -A Boundary resource known as a [storage bucket][] is used to store recorded sessions. -A resource known as a [storage policy][] is used to codify how long session recordings must be kept and when they should be deleted. - -A storage policy exists in either the global scope or an org scope. -Storage policies that are created in the global scope can be associated with any org scope. -However, a storage policy created in an org scope can only be associated with that org scope. -Any storage policies associated with an org scope are deleted when you delete the org itself. - -For more information about using session recording to audit user sessions, refer to [Session recording](/boundary/docs/session-recording). - -## Requirements - -Before you can create a storage bucket in Boundary, you must ensure that your environment meets certain requirements. Session recording requires specific configuration for both the external storage provider and the Boundary worker. - -A Boundary worker configured for local storage is also required to set up session recording and configure recording bucket policies. - -Refer to [Create a storage bucket](/boundary/docs/session-recording/configuration/create-storage-bucket) to learn more about setting up storage for session recordings. - -## Example storage policies - -A storage policy defines how long the recording within a scope should retain its session recordings. Storage policy examples include: - -- Keep forever -- Do not delete -- Do not retain -- Custom retention period - -## Create a storage policy - -Complete the following steps to create a storage policy in Boundary for session recording: - - - - -1. Log in to Boundary. -1. Click **Storage Policies** in the navigation panel in the `global` scope. -1. Click **Create a new storage policy**. -1. Complete the following fields to create the Boundary storage policy: - - **Name**: (Optional) The name field is optional, but if you enter a name it must be unique. - - **Description**: (Optional) An optional description of the Boundary storage policy for identification purposes. - - **Retention Policy**: (Required) Specifies how long a recording must be stored, in days. - Policy values include: - - `Forever`: If enabled, the **Deletion Policy** field is disabled. - - `Custom`: Specify a custom retention policy in days. - - `Do not protect, allow deletion at any time` - - `SOC 2 (7 years)` - - `HIPPA (6 years)` - - **Deletion Policy**: (Required) Specifies when to delete a recording, in days. - Policy values include: - - `Do not delete`: Do not delete recordings, even after the retention policy is met. - - `Custom`: Specifies the number of days after creation when a session recording should be deleted. - - As an example, the following settings would create a SOC 2 compliant policy: - - - **Name**: `soc2-policy` - - **Description**: `SOC 2 compliant storage policy for session recordings` - - **Retention Policy**: `SOC 2 (7 years)` - - **Deletion Policy**: `Custom` - - Delete after: `2657` days - - Toggle the switch beside **Allow orgs to override**. - -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create a storage policy in Boundary: - - ```shell-session - $ boundary policies create storage \ - -name soc2-policy \ - -description 'SOC 2 compliant storage policy for session recordings' \ - -scope-id global \ - -retain-for-days 2557 \ - -retain-for-overridable false \ - -delete-after-days 2657 \ - -delete-after-overridable true - ``` - - The following [attributes](/boundary/docs/domain-model/storage-policy) can be used when defining a storage policy: - - - `name`: (Optional) An optional human readable name. - - `description`: (Optional) An optional human readable description. - - `scope-id`: (Optional) The ID of the scope (global or an org) that owns the policy. Defaults to `global`. - - `retain-for-days`: (Optional) The number of days a session recording must be kept. A value of `-1` indicates an infinite retention. - - `retain-for-overridable`: (Optional) Indicates that a lower scope can override the `retain_for_days` attribute value. Defaults to `true`. - - `delete-after-days`: (Optional) The number of days after creation when a session recording should be deleted. - - `delete-after-overridable`: (Optional) Indicates that a lower scope can override the `delete_after_days` attribute value. Defaults to `true`. - - - - -Apply the following Terraform policy: - -```hcl -resource "boundary_policy_storage" "example" { - name = "soc2-policy" - description = "SOC 2 compliant storage policy for session recordings" - scope_id = data.boundary_scope.org.id - - retain_for_days = 2557 - retain_for_overridable = false - - delete_after_days = 2657 - delete_after_overridable = true -} -``` - - - - -The following API call is an example of creating a storage policy in Boundary: - -```shell-session -$ curl --header "Content-Type: application/json" \ - --header "Authorization: Bearer $(boundary config get-token)" \ - --request POST \ - --data '{"attributes":{"retain_for":{"days":2557,"overridable":false},"delete_after":{"days":2657,"overridable":true}},"scope_id":"global","description":"SOC 2 compliant storage policy for session recordings","name":"soc2-policy","type":"storage"}' \ - $BOUNDARY_ADDR/v1/policies | jq -``` - - - - This example uses [jq](https://stedolan.github.io/jq/download/) to process the JSON output for readability. - - - -**Example output:** - - - -```plaintext -{ - "id": "pst_wV4bWSYYwL", - "scope_id": "global", - "scope": { - "id": "global", - "type": "global", - "name": "global", - "description": "Global Scope" - }, - "name": "soc2-api-test", - "description": "SOC 2 compliant storage policy for session recordings", - "created_time": "2024-01-26T03:44:58.119640Z", - "updated_time": "2024-01-26T03:44:58.119640Z", - "type": "storage", - "version": 1, - "attributes": { - "delete_after": { - "days": 2657, - "overridable": true - }, - "retain_for": { - "days": 2557, - "overridable": false - } - }, - "authorized_actions": [ - "no-op", - "read", - "update", - "delete" - ] -} -``` - - - - - - -In this example, recordings stored within the global scope must be retained for 7 years (2557 days), and will be automatically deleted 100 days later (at 2657 days). Scopes beneath `global` will not be able to override this retention policy, but are able to override the deletion policy. - - - - Boundary does not support an undo action. Storage policies are meant to enforce compliance to a specific law or regulation. Updating the storage policy of a session recording can have immediate and possibly unexpected results such as the immediate deletion of session recordings. - - - -## Attach storage policies to a scope - -You must apply storage policies to a scope (`global` or a specific org) to take effect. Once attached, all recordings within the child scopes inherit the storage policy, unless overridden by a policy applied to the child scope. - -The following example applies the policy created above to an org named `prod-databases` with the org ID `o_aDkVBCDTvY`. - - - - -1. Log in to Boundary. -1. Click **Orgs** in the navigation panel and select the `prod-databases` org. -1. Click **Org Settings** in the navigation panel for the `prod-databases` org. -1. Under **Storage Policy**, click **Add Storage Policy**. -1. Select the `soc2-policy`. -1. Click **Save**. This applies the policy to this scope and its children. - - - - -1. Log in to Boundary. -1. Obtain the storage policy ID: - - - - ```shell-session - $ boundary policies list - Policy information: - ID: pst_WZ3SQSSYJY - Version: 1 - Type: storage - Name: soc2-policy - Description: SOC 2 compliant storage policy for session recordings - Authorized Actions: - read - update - delete - no-op - ``` - - - -1. Use the following command to apply the storage policy to the `prod-databases` org: - - ```shell-session - $ boundary scopes attach-storage-policy \ - -id o_aDkVBCDTvY \ - -storage-policy-id pst_WZ3SQSSYJY - ``` - - - - -Apply the following Terraform policy: - -```hcl -resource "boundary_scope_policy_attachment" "example" { - policy_id = boundary_policy_storage.example.id - scope_id = data.boundary_scope.org.id -} -``` - - - - -The following API call is an example of attaching a storage policy to a scope. - -First, obtain the storage policy ID. - -```shell-session -$ curl --header "Content-Type: application/json" \ - --header "Authorization: Bearer $(boundary config get-token)" \ - --request POST \ - $BOUNDARY_ADDR/v1/policies?scope_id=global' | jq -``` - -In this example, the storage policy ID is `pst_WZ3SQSSYJY`. - -Now attach the policy to the org. - -```shell-session -$ curl --header "Content-Type: application/json" \ - --header "Authorization: Bearer $(boundary config get-token)" \ - --request POST \ - --data '{"storage_policy_id":"pst_WZ3SQSSYJY","version":2}'' \ - $BOUNDARY_ADDR/v1/scopes/o_aDkVBCDTvY:attach-storage-policy' | jq -``` - -**Example output:** - - - -```plaintext -{ - "id": "o_aDkVBCDTvY", - "scope_id": "global", - "scope": { - "id": "global", - "type": "global", - "name": "global", - "description": "Global Scope" - }, - "name": "prod-databases", - "created_time": "2024-01-26T04:22:45.891800Z", - "updated_time": "2024-01-26T05:00:27.333892Z", - "version": 3, - "type": "org", - "authorized_actions": [ - "delete", - "attach-storage-policy", - "detach-storage-policy", - "no-op", - "read", - "update" - ], - "authorized_collection_actions": { - "auth-methods": [ - "create", - "list" - ], - "auth-tokens": [ - "list" - ], - "groups": [ - "create", - "list" - ], - "policies": [ - "list", - "create" - ], - "roles": [ - "list", - "create" - ], - "scopes": [ - "list", - "list-keys", - "rotate-keys", - "list-key-version-destruction-jobs", - "destroy-key-version", - "create" - ], - "session-recordings": [ - "list" - ], - "storage-buckets": [ - "list", - "create" - ], - "users": [ - "create", - "list" - ] - }, - "storage_policy_id": "pst_WZ3SQSSYJY" -} -``` - - - - - - -### Verify attached policies - -Check that the storage policy was successfully attached to the `prod-databases` scope. - - - - -1. Log in to Boundary. -1. Click **Orgs** in the navigation panel and select the `prod-databases` org. -1. Click **Org Settings** in the navigation panel for the `prod-databases` org. -1. Verify that the `soc2-policy` is listed under **Storage Policy**. - - - - -1. Log in to Boundary. -1. Read the details of the `prod-databases` org: - - - - ```shell-session - $ boundary scopes read -id o_aDkVBCDTvY - Scope information: - Created Time: Thu, 25 Jan 2024 21:22:45 MST - ID: o_aDkVBCDTvY - Name: prod-databases - Storage Policy ID: pst_WZ3SQSSYJY - Updated Time: Thu, 25 Jan 2024 22:00:27 MST - Version: 7 - - Scope (parent): - ID: global - Name: global - Type: global - - Authorized Actions: - detach-storage-policy - no-op - read - update - delete - attach-storage-policy - ... - ... More Output ... - ... - ``` - - - - Verify that the `soc2-policy` ID (`pst_WZ3SQSSYJY` in this example) is listed under **Storage Policy ID**. - - - - -The following API call is an example of reading the details of the `prod-databases` scope by ID (`o_aDkVBCDTvY` in this example). - -```shell-session -$ curl --header "Content-Type: application/json" \ - --header "Authorization: Bearer $(boundary config get-token)" \ - --request GET \ - $BOUNDARY_ADDR/v1/scopes/o_aDkVBCDTvY | jq -``` - -**Example output:** - - - -```plaintext -{ - "id": "o_aDkVBCDTvY", - "scope_id": "global", - "scope": { - "id": "global", - "type": "global", - "name": "global", - "description": "Global Scope" - }, - "name": "prod-databases", - "created_time": "2024-01-26T04:22:45.891800Z", - "updated_time": "2024-01-26T05:00:27.333892Z", - "version": 7, - "type": "org", - "authorized_actions": [ - "update", - "delete", - "attach-storage-policy", - "detach-storage-policy", - "no-op", - "read" - ], - "authorized_collection_actions": { - "auth-methods": [ - "create", - "list" - ], - "auth-tokens": [ - "list" - ], - "groups": [ - "create", - "list" - ], - "policies": [ - "list", - "create" - ], - "roles": [ - "list", - "create" - ], - "scopes": [ - "list", - "list-keys", - "rotate-keys", - "list-key-version-destruction-jobs", - "destroy-key-version", - "create" - ], - "session-recordings": [ - "list" - ], - "storage-buckets": [ - "create", - "list" - ], - "users": [ - "create", - "list" - ] - }, - "storage_policy_id": "pst_WZ3SQSSYJY" -} -``` - - - -Verify that the `soc2-policy` ID (`pst_WZ3SQSSYJY` in this example) is listed under `storage_policy_id`. - - - - -### Read and list session recordings - -New session recordings under the `prod-databases` scope should now show a `retain_until` and `delete_after` date corresponding to the `soc2-policy` storage policy. - - - - -1. Create a new session recording on a target within the `prod-databases` org. -1. Log in to Boundary. -1. Click **Session Recordings** in the navigation panel. -1. Click **View** for a new recording that was made after the storage policy was attached to the `prod-databases` scope. -1. Under **Session details**, verify that the *Retain until* and *Delete after* dates match the durations defined in the `soc2-policy`. - - - - -1. Create a new session recording on a target within the `prod-databases` org. -1. Log in to Boundary. -1. List the available session recordings: - - - - ```shell-session - $ boundary session-recordings list - - Session Recording information: - ID: sr_nt5dFeBYdh - Storage Bucket ID: sb_DC8SPb9uc2 - Created Time: Mon, 29 Jan 2024 23:25:31 MST - Updated Time: Tue, 30 Jan 2024 00:26:01 MST - Start Time: Mon, 29 Jan 2024 23:25:32 MST - End Time: Mon, 29 Jan 2024 23:25:53 MST - Type: ssh - State: available - Retain Until: Wed, 29 Jan 2031 23:25:53 MST - Delete After: Sat, 10 May 2031 00:25:53 MDT - Authorized Actions: - reapply-storage-policy - no-op - read - download - delete - ``` - - - - Copy the recording **ID** (such as `sr_nt5dFeBYdh`). - -1. Read the recording details by ID. - - - - ```shell-session - $ boundary session-recordings read -id sr_nt5dFeBYdh - - Session Recording information: - Bytes Down: 710 - Bytes Up: 36 - Created Time: Mon, 29 Jan 2024 23:25:31 MST - Delete After: Sat, 10 May 2031 00:25:53 MDT - Duration (Seconds): 21.01881 - Endpoint: ssh://xx.xxx.xxx.xxx:22 - ID: sr_nt5dFeBYdh - Retain Until: Wed, 29 Jan 2031 23:25:53 MST - Scope ID: global - Start Time: Mon, 29 Jan 2024 23:25:32 MST - State: available - Storage Bucket ID: sb_DC8SPb9uc2 - Type: ssh - Updated Time: Mon, 29 Jan 2024 23:25:53 MST - - ... - ... More Output ... - ... - ``` - - - - Verify that the `Retain Until` and `Delete After` dates match the durations defined in the 'soc2-policy'. - - - - -1. Create a new session recording on a target within the `prod-databases` org. -1. The following API call is an example of reading the details of a session recording with the `soc2-policy` storage policy applied to the `prod-databases` scope. - - List the available session recordings. This example recursively lists all recordings within the global scope. - - ```shell-session - $ curl --header "Content-Type: application/json" \ - --header "Authorization: Bearer $(boundary config get-token)" \ - --request GET \ - $BOUNDARY_ADDR/v1/session-recordings?recursive=true&scope_id=global | jq - ``` - - **Example output:** - - - - ```plaintext - { - "items": [ - { - "id": "sr_nt5dFeBYdh", - "scope": { - "id": "global", - "type": "global", - "name": "global", - "description": "Global Scope" - }, - "storage_bucket_id": "sb_DC8SPb9uc2", - "created_time": "2024-01-30T06:25:31.873628Z", - "updated_time": "2024-01-30T07:26:01.182513Z", - "start_time": "2024-01-30T06:25:32.412373Z", - "end_time": "2024-01-30T06:25:53.431183Z", - "duration": "21.018810s", - "type": "ssh", - "state": "available", - "endpoint": "ssh://xx.xxx.xxx.xxx:22", - "create_time_values": { - "user": { - "id": "u_lLWuYy70Wo", - "name": "admin_user", - "description": "Global admin user", - "scope": { - "id": "global", - "type": "global", - "name": "global", - "description": "Global Scope" - } - }, - "target": { - "id": "tssh_cjTsFSU10p", - "name": "recording-target", - "scope": { - "id": "p_ocJPxzrz2p", - "type": "project", - "name": "recording-project", - "parent_scope_id": "o_aDkVBCDTvY" - }, - "session_max_seconds": 28800, - "session_connection_limit": -1, - "egress_worker_filter": "\"recording-worker\" in \"/tags/type\"", - "type": "ssh", - "attributes": { - "default_port": 22 - } - } - }, - "authorized_actions": [ - "reapply-storage-policy", - "no-op", - "read", - "download", - "delete" - ], - "retain_until": "2031-01-30T06:25:53.431183Z", - "delete_after": "2031-05-10T06:25:53.431183Z" - } - ], - "response_type": "complete", - "list_token": "GnJNt3mPNy6Cp62MUBCnZPdrQF7cvh4udEoW4CjL5k2ufvesMfKAheSJyNHmKf3zwL5aVKHT4P6q", - "sort_by": "created_time", - "sort_dir": "desc", - "est_item_count": 1 - } - ``` - - - -1. Verify that the `retain_until` and `delete_after` dates match the durations defined in the `soc2-policy`. - -Alternatively, the recording details can also be queried directly by ID: - -```shell-session -$ curl --header "Content-Type: application/json" \ - --header "Authorization: Bearer $(boundary config get-token)" \ - --request GET \ - $BOUNDARY_ADDR/v1/session-recordings/sr_nt5dFeBYdh | jq -``` - - - - - - - Existing recordings within a scope or its children do not automatically have new or updated polices applied to them. Policies must be re-applied to existing recordings to take effect. Refer to the [Update storage bucket policies](/boundary/docs/session-recording/compliance/update-storage-policy) page for more details. - - - -### Manual deletion - -Deleting a session recording will set the `delete_after` field of a session recording to the current database time. Deleting a session recording will fail if the retention duration has not been met. - -If `delete_after` or `delete_time` is after the current time, the session recording will no longer be included in list responses; it also cannot be read, downloaded or played back. - -## Next steps - -After the storage policy is configured in Boundary, new recordings within the applied scope adhere to the defined policy. To retroactively apply the configured policy to existing recordings, refer to [update storage bucket policies](/boundary/docs/session-recording/compliance/update-storage-policy). - -[storage bucket]: /boundary/docs/domain-model/storage-buckets -[storage policy]: /boundary/docs/domain-model/storage-policy -[session recordings]: /boundary/docs/domain-model/session-recordings diff --git a/website/content/docs/session-recording/compliance/update-storage-policy.mdx b/website/content/docs/session-recording/compliance/update-storage-policy.mdx deleted file mode 100644 index 5de33c0a2..000000000 --- a/website/content/docs/session-recording/compliance/update-storage-policy.mdx +++ /dev/null @@ -1,355 +0,0 @@ ---- -layout: docs -page_title: Update storage bucket policies -description: >- - Update storage bucket policies to manage the lifecycles of session recordings. Understand how changing a policy affects existing and new recorded sessions. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Update storage bucket policies - -This feature requires HCP Boundary Plus or Boundary Enterprise - -A [storage policy][] codifies [storage bucket][] lifecycle management for [session recordings][]. - -A storage policy exists in either the global scope or an org scope. Storage policies that are created in the global scope can be associated with any org scope. - -When you update a storage policy, new session recordings within a scope where the policy is applied will conform to the updated policy. Existing recordings will maintain the previous policy unless the new policy is retroactively applied. - -This page describes the process for applying updated storage policies to existing recordings within a scope. - -For more information about setting up storage bucket policies, refer to the [configure storage bucket policies](/boundary/docs/session-recording/compliance/configure-storage-policy) page. - -## Requirements - -This page continues the workflows outlined in the [configure storage bucket policies](/boundary/docs/session-recording/compliance/configure-storage-policy) page. The requirements outlined in that page are prerequisites for the workflow defined below. - -To apply an updated storage policy to existing session recordings, you first need: - -1. An external storage provider configured to store session recordings. -1. A Boundary worker configured for local storage. -1. A Boundary storage bucket with a defined retention and/or deletion policy. -1. A scope with the storage policy attached. -1. A set of session recordings made when the storage policy was attached. - -The policies mentioned here demonstrate how to apply an updated storage policy to an existing set of [session recordings][]. - -## Storage policy changes - -A storage policy defines how long the recording within a scope should retain its session recordings. - -Over time, you may update storage policies to reflect new organizational requirements, compliance changes, or cost management strategies. While updated policies automatically apply to new session recordings within the scopes associated with that policy, existing recordings maintain the previous policies unless you apply the new policy directly to those recordings. - -In the [configure storage bucket policies](/boundary/docs/session-recording/compliance/configure-storage-policy) page, the following policy was created to implement compliance with SOC-2 retention requirement of 7 years: - -- Name: `soc2-policy` -- Description: `SOC 2 compliant storage policy for session recordings` -- Retention policy: `2557` days, Overridable: `false` -- Deletion policy: `2657` days, Overridable: `true` - -## Update a storage policy - -In the following example, the `soc2-policy` should be updated to the following: - -- Name: `soc2-policy` -- Description: `SOC 2 compliant storage policy for session recordings, V2` -- Retention policy: `2557` days, Overridable: `false` -- Deletion policy: `2757` days, Overridable: `false` - -The updated policy requires the deletion of recordings after `2757` days, 200 days after the standard SOC 2 retention requirements. It also changes Overridable to `false`, preventing lower scopes from overwriting the Deletion policy. - -The following is an example of updating the `soc2-policy` policy. - - - - -1. Log in to Boundary. -1. Select **Storage Policies** in the navigation panel and select the `global` scope. -1. Click on **`soc2-policy`**. -1. Click the **Edit Form** button and update the following fields: - - **Description**: `SOC 2 compliant storage policy for session recordings, V2` - - **Retention Policy**: `SOC 2 (7 years)` - - **Deletion Policy**: `Custom` - - **Delete after**: `2757` days - - Toggle the switch beside **Allow orgs to override** to the off position. - -1. Click **Save**. - - - - -1. Log in to Boundary. -1. List the available storage policies and copy the `soc2-policy` ID. - - - - ```shell-session - $ boundary policies list - Policy information: - ID: pst_WZ3SQSSYJY - Version: 1 - Type: storage - Name: soc2-policy - Description: SOC 2 compliant storage policy for session recordings - Authorized Actions: - read - update - delete - no-op - ``` - - - -1. Use the following command to update the `soc2-policy` storage policy to reflect the new deletion requirements: - - ```shell-session - $ boundary policies update storage \ - -id pst_WZ3SQSSYJY \ - -description 'SOC 2 compliant storage policy for session recordings, V2' \ - -scope-id global \ - -retain-for-days 2557 \ - -retain-for-overridable false \ - -delete-after-days 2757 \ - -delete-after-overridable false - ``` - - - - -Due to the declarative nature of Terraform, you update policies by modifying your existing Terraform configuration. To perform the requested changes, update your existing block of code as shown below, and then execute `terraform apply`. - -```hcl -resource "boundary_policy_storage" "example" { - name = "soc2-policy" - v2" - scope_id = data.boundary_scope.org.id - - retain_for_days = 2557 - retain_for_overridable = false - - delete_after_days = 2757 - delete_after_overridable = false -} -``` - - - - -The following API call is an example of updating a storage policy in Boundary: - -```shell-session -$ curl --header "Content-Type: application/json" \ - --header "Authorization: Bearer $(boundary config get-token)" \ - --request PATCH \ - --data '{"attributes":{"retain_for":{"days":2557,"overridable":false},"delete_after":{"days":2757,"overridable":false}},"scope_id":"global","description":"SOC 2 compliant storage policy for session recordings, V2","type":"storage","version":"2"}' \ - $BOUNDARY_ADDR/v1/policies/pst_WZ3SQSSYJY | jq -``` - - - - This example uses [jq](https://stedolan.github.io/jq/download/) to process the JSON output for readability. - - - -**Example output:** - - - -```plaintext -{ - "id": "pst_WZ3SQSSYJY", - "scope_id": "global", - "scope": { - "id": "global", - "type": "global", - "name": "global", - "description": "Global Scope" - }, - "name": "soc2-policy", - "description": "SOC 2 compliant storage policy for session recordings, V2", - "created_time": "2024-01-25T22:05:52.112677Z", - "updated_time": "2024-01-30T22:44:08.890715Z", - "type": "storage", - "version": 2, - "attributes": { - "delete_after": { - "days": 2757, - "overridable": false - }, - "retain_for": { - "days": 2557, - "overridable": false - } - }, - "authorized_actions": [ - "no-op", - "read", - "update", - "delete" - ] -} -``` - - - - - - -This policy was applied to the `prod-databases` org in the [configure storage bucket policies](/boundary/docs/session-recording/compliance/configure-storage-policy) page. - -New recordings within the `prod-databases` org will automatically have the updated version of the `soc2-policy` applied. - -### Reapply a storage policy - -Many organizations compliance standards will require that previous versions of storage policies remain applied to existing recordings. - - - - During the initial migration to a Boundary version that includes storage policies, all existing session recordings will have a `retain_for` attribute of `-1`, which retains the recording forever. - - - -In the event that an updated policy should be retroactively applied to existing session recordings, you must reapply the storage policy. - - - - -1. Log in to Boundary. -1. Select **Session Recordings** in the navigation panel in the `global` scope. -1. Click on **View** for a session recording that should have the storage policy re-applied. -1. Click the **Manage** dropdown and select **Re-apply storage policy**. -1. Verify the *Delete after* field has been updated under the recording's **Session details**. - - - - -1. Log in to Boundary. -1. Find the ID of the session recording that should have the storage policy re-applied. - - - - ```shell-session - $ boundary session-recordings list - Session Recording information: - ID: sr_nt5dFeBYdh - Storage Bucket ID: sb_DC8SPb9uc2 - Created Time: Mon, 29 Jan 2024 23:25:31 MST - Updated Time: Tue, 30 Jan 2024 16:14:13 MST - Start Time: Mon, 29 Jan 2024 23:25:32 MST - End Time: Mon, 29 Jan 2024 23:25:53 MST - Type: ssh - State: available - Retain Until: Wed, 29 Jan 2031 23:25:53 MST - Delete After: Mon, 18 Aug 2031 00:25:53 MDT - Authorized Actions: - no-op - read - download - delete - reapply-storage-policy - ``` - - - -1. Re-apply the storage policy to the session recording by providing its ID: - - - - ```shell-session - $ boundary session-recordings reapply-storage-policy -id sr_nt5dFeBYdh - Session Recording information: - Bytes Down: 710 - Bytes Up: 36 - Created Time: Mon, 29 Jan 2024 23:25:31 MST - Delete After: Mon, 18 Aug 2031 00:25:53 MDT - Duration (Seconds): 21.01881 - Endpoint: ssh://54.159.144.135:22 - ID: sr_nt5dFeBYdh - Retain Until: Wed, 29 Jan 2031 23:25:53 MST - Scope ID: global - Start Time: Mon, 29 Jan 2024 23:25:32 MST - State: available - Storage Bucket ID: sb_DC8SPb9uc2 - Type: ssh - Updated Time: Mon, 29 Jan 2024 23:25:53 MST - - ... - ... More Output ... - ... - ``` - - - - Verify that the `Delete After` attribute reflects the updated storage policy. - - - - -Once the policy changes have been applied with Terraform, you can reapply the policy as needed by following the CLI instructions in this section. - - - - -The following API call is an example of re-applying a storage policy to a session recording by providing the recording's ID: - -```shell-session -$ curl --header "Content-Type: application/json" \ - --header "Authorization: Bearer $(boundary config get-token)" \ - --request POST \ - $BOUNDARY_ADDR/v1/session-recordings/sr_nt5dFeBYdh:reapply-storage-policy | jq -``` - -**Example output:** - - - -```plaintext -{ - "id": "sr_nt5dFeBYdh", - "scope": { - "id": "global", - "type": "global", - "name": "global", - "description": "Global Scope" - }, - "storage_bucket_id": "sb_DC8SPb9uc2", - "bytes_up": "36", - "bytes_down": "710", - "created_time": "2024-01-30T06:25:31.873628Z", - "updated_time": "2024-01-30T23:14:13.881110Z", - "start_time": "2024-01-30T06:25:32.412373Z", - "end_time": "2024-01-30T06:25:53.431183Z", - "duration": "21.018810s", - "type": "ssh", - "state": "available", - "endpoint": "ssh://xx.xxx.xxx.xxx:22", - -... -... More Output ... -... - - "retain_until": "2031-01-30T06:25:53.431183Z", - "delete_after": "2031-08-18T06:25:53.431183Z" -} -``` - - - -Verify that the `delete_after` attribute reflects the updated storage policy. - - - - -### Detached or deleted storage policies - -If a scope's storage policy is detached or deleted, new session recordings within that scope will automatically be retained forever, unless there is an overriding policy. - -Existing session recordings will maintain their existing storage policy attributes until a new policy is re-applied, including any overriding policy from another scope. - -[storage bucket]: /boundary/docs/domain-model/storage-buckets -[storage policy]: /boundary/docs/domain-model/storage-policy -[session recordings]: /boundary/docs/domain-model/session-recordings diff --git a/website/content/docs/session-recording/compliance/validate-data-store.mdx b/website/content/docs/session-recording/compliance/validate-data-store.mdx deleted file mode 100644 index efaea6095..000000000 --- a/website/content/docs/session-recording/compliance/validate-data-store.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: docs -page_title: Validate data integrity in the external object store -description: >- - Learn about how Boundary validates the data integrity of the BSR file in the external data store to ensure that the file has not been tampered with. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -# How Boundary validates data integrity in the external object store - -This feature requires HCP Boundary or Boundary Enterprise - -When a Boundary worker uploads a BSR file to AWS S3 through the Boundary AWS plugin, the plugin calculates the SHA256 checksum of the contents of the BSR file and attaches this information to the object that is uploaded to S3. -The SHA256 checksum value attached to the S3 object is returned to the Boundary worker. -The Boundary worker calculates the SHA256 checksum value of the BSR file's content from -local disk and compares it to the plugin value. - -This process ensures that no tampering of BSR files occurs between the worker, plugin, and S3. -The SHA256 checksum value generated by the plugin is not a part of the BSR file structure and should not be confused with how Boundary cryptographically verifies the BSR directory's contents. - -For more information, refer to the [overview of session recording](/boundary/docs/session-recording). \ No newline at end of file diff --git a/website/content/docs/session-recording/compliance/validate-session-recordings.mdx b/website/content/docs/session-recording/compliance/validate-session-recordings.mdx deleted file mode 100644 index 5bc0903d2..000000000 --- a/website/content/docs/session-recording/compliance/validate-session-recordings.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -layout: docs -page_title: Validate recorded session integrity -description: >- - View the components of the Boundary Session Recording (BSR) file. Verify the integrity of the contents of a BSR cryptographically to ensure security compliance. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Validate the integrity of session recordings - -This feature requires HCP Boundary or Boundary Enterprise - -BSR directories are validated based on the contents in the directory. -Boundary cryptographically verifies each individual Boundary Session Recording (BSR) file. -The keys used for verifying all Boundary Session Recording files are written to storage and wrapped by the KMS you configured. -Each session recording has its own individual key. -Boundary generates the following keys when a session recording is authorized: - -- The BSR key is a plaintext AES-GCM key. -It is not uploaded to the external object store. - -- The private and public key pair is a ed25519 key pair. -The key pair is not uploaded to the external object store. - -The following files are stored in the BSR file structure to ensure the integrity of a session recording: - -- `bsrKey.pub` is the public ed25519 key. -- `wrappedBsrKey` is the BSR key wrapped by the external KMS AES-GCM key that you configure. -- `wrappedPrivKey` is the private ed25519 key wrapped by the external KMS AES-GCM key that you configure. -- `pubKeySelfSignature.sign` is a self-signature of the plaintext public ed25519 key created with its private key. -- `pubKeyBsrSignature.sign` is a signature of the plaintext public ed25519 key created with the BSR key. -- `SHA256SUM.sig` is a signature of the plaintext `SHA256SUM` file created with the private key. - -Encrypting the BSR key with an external KMS means that Boundary is not responsible for the longevity of the keys. -The Boundary admin can always use that external KMS to unwrap the `wrappedBsrKey` and `wrappedPrivKey`. -A BSR’s key is encrypted using the `go-kms-wrapping` package, and therefore the encrypted BlobInfo includes the metadata required to identify the key-version used during encryption. -So if the wrapper is reinitialized properly, you can unwrap the keys even if the key has been rotated. - -Each BSR directory contains a SHA256SUM and SHA256SUM.sig file that you can use to cryptographically verify the BSR directory's contents. -The SHA256SUM file contains rows of file names paired with a checksum for the file contents. -The SHA256SUM.sig is a copy of the SHA256SUM file, signed with the BSR's private key. -Refer to the following example of a SHA256SUM file: - - ``` - dc8ce2c42553ce510197c99efe21d89d6229feb4b49170511f49965f2e3cf1a3 wrappedBsrKey - a5a91b1b52fb53c4bab661b2e5846bb2a836f050e3d745e436078871914a0bc2 wrappedPrivKey - 1ca281852ec0d447b94708f28a51b562d47b84affdba25e13a97b0fbd9126424 pubKeyBsrSignature.sign - 7b5e18e5930bb4cce12a3f203328d9065cae29f26aba3963bb5faece2cf97231 pubKeySelfSignature.sign - dc7c6b1316624c7c486a22bab157f947df92b9f2ce4a72469b1f335399a043d5 bsrKey.pub - 4d3966c458f4e5d67f9ac70b804540b927c718965267c3f36526bf0b18c40ad9 session-meta.json - 6fec2173d331828677fb5e77fc19168daad3c5f0e82517a82e5701e6c2bdcbe1 session-recording.meta - ad76483e7cf3e65391a3a1d0b86a3ad436333ee225bea042b13900abc188b226 session-recording-summary.json - ``` - -Follow these steps to validate a session recording: - -1. Unwrap `wrappedBsrKey` using the external KMS you configured to retrieve the BSR key. -2. Unwrap `wrappedPrivKey` using the external KMS you configured to retrieve the private key. -3. Use the BSR key or the private key to verify the `bsrKey.pub` key using `go-kms-wrapping` HmacSha256(...). -4. When the key is verified, use the `bsrKey.pub` key to verify the BSR SHA256SUM.sig file using `go-kms-wrapping` ed25519.Sign(...). -5. After verifying the SHA256SUM.sig file, use the `sha256` commandline tool to verify BSR checksums using `sha256sum -c SHA256SUM`. -6. Examine the *.meta files in the directory. For session-recording.meta, every connection logged in the meta file should -correspond to a connection folder in the directory. For a connection-recording.meta, every channel logged in the meta file should -correspond to a channel folder in the directory. diff --git a/website/content/docs/session-recording/configuration/configure-worker-storage.mdx b/website/content/docs/session-recording/configuration/configure-worker-storage.mdx deleted file mode 100644 index 4afad6a20..000000000 --- a/website/content/docs/session-recording/configuration/configure-worker-storage.mdx +++ /dev/null @@ -1,120 +0,0 @@ ---- -layout: docs -page_title: Configure workers for local storage -description: >- - Configure workers for session recording storage. View requirements and an example configuration. Understand possible storage states for local and remote storage. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure workers for session recording - -This feature requires HCP Boundary or Boundary Enterprise - -Session recording requires that you configure at least one worker for local storage. - - - - You cannot use an HCP managed worker for the local storage. HCP Boundary users must configure a self-managed worker to enable session recording. - - - -## Requirements - -Workers that you configure for storage must: - -- Have access to the external storage provider -- Have an accessible directory defined by `recording_storage_path` for storing session recordings while they are in progress. On session closure, Boundary moves the local session recording to remote storage and deletes the local copy. - - For HCP Boundary, refer to the [Self-managed worker configuration](/hcp/docs/boundary/self-managed-workers/session-recording) documentation. - - For Boundary Enterprise, refer to the refer to the [worker configuration](/boundary/docs/workers#session-recording) documentation. -- Have available disk space defined by `recording_storage_minimum_available_capacity`. If you do not configure the minimum available storage capacity, Boundary uses the default value of 500MiB. -For more information about how much space is required to store BSR files, refer to [storage considerations](/boundary/docs/session-recording#storage-considerations). -- Run Darwin, Windows, or Linux. The following binaries are not supported for session recording: NetBSD, OpenBSD, Solaris. - -## Local storage - -Workers require sufficient local disk space in the `recording_storage_path` to store session recordings while they are in progress. Local disk space is also required for session recording playback. - -The `recording_storage_minimum_available_capacity` vaule defines the minimum available disk space that must be available on the worker for session recording and session recording playback. This threshold determines the local storage state of the worker. - -The possible storage states determined by the `recording_storage_minimum_available_capacity` are: - -- `Available`: The worker is above the storage threshold and is available to proxy sessions that are enabled with session recording. - -- `Low storage`: The worker is below the storage threshold. Existing sessions can continue without interruption, but new sessions that are enabled with session recording cannot be proxied. The worker is not available to record new sessions or play back existing recordings. - -- `Critically low storage`: The worker is below half the storage threshold. Existing sessions that are enabled with session recording will be forcefully closed. The worker is not available to record new sessions or play back existing recordings. - -- `Out of storage`: The worker is out of local disk space. It is not available to record new sessions or play back existing recordings. The worker is in a unrecoverable state. An administrator must intervene to remedy the issue. - -- `Not configured`: The worker does not have a `recording_storage_path` configured. - -- `Unknown`: The default local storage state of a worker. This state indicates that the local storage state of a worker is not yet known. Older workers (< 0.16.0) will be in this state. - -If a worker is in an unhealthy local storage state, Boundary does not allow new session recordings or session recording playback until the worker is in an `available` local storage state. - -## Remote storage state - -The workers that you configure for session recording storage must have access to the external object store. Workers report permission states back to Boundary, depending on the availability of the external object store. -Boundary uses the permission states to determine what actions the worker can perform on the configured external storage. - -Workers can have the following permission states: - -- `read`: The worker can read from the external storage. It can also play back recorded sessions, if the permission state is `ok`. -- `write`: The worker can write to the external storage. It can also record sessions, if the permission state is `ok`. -- `delete`: The worker can delete data from the external storage. It can also clean up recorded sessions, if the permission state is `ok`. - -Boundary uses the permission states to determine the remote storage state of a worker. The worker can have the following remote storage states: -- `available`: All permission states are healthy. The worker has the required access to the external storage. -- `error`: One or more of the permission states are not healthy. Workers may not be able to perform certain actions on the external storage. - -Boundary periodically checks the states of any workers that use the external storage, and then reports them back to the controller. - -You can check the remote storage state of a worker using the `boundary workers read -id $WORKER_ID` command. - -``` -Worker information: - Active Connection Count: 0 - Address: 0.0.0.0:9202 - Created Time: Tue, 04 Jun 2024 13:52:27 PDT - ID: w_RPfBj239to - Last Status Time: 2024-06-04 20:55:35.589282 +0000 UTC - Local Storage State: available - Remote Storage State: - sb_fhde575e: - Status: available - Permissions: - Write: ok - Read: ok - Delete: ok - sb_jksdgh4: - Status: error - Permissions: - Write: error - Read: ok - Delete: ok - Release Version: Boundary v0.17.0+ent - Type: pki - Updated Time: Tue, 04 Jun 2024 13:55:35 PDT - Version: 1 -``` - -## Example configuration - -Refer to the following example configuration to configure workers for session recording storage: - -```hcl -worker { - auth_storage_path = "/boundary/demo-worker-1" - initial_upstreams = ["10.0.0.1"] - recording_storage_path = "/local/storage/directory" - recording_storage_minimum_available_capacity = "500MB" -} -``` - -## Next steps - -After you configure worker storage, you can configure the external storage for [Amazon S3](/boundary/docs/session-recording/configuration/storage-providers/configure-s3), [MinIO](/boundary/docs/session-recording/configuration/storage-providers/configure-minio), or an [S3-compliant provider](/boundary/docs/session-recording/configuration/storage-providers/configure-s3-compliant). \ No newline at end of file diff --git a/website/content/docs/session-recording/configuration/create-storage-bucket.mdx b/website/content/docs/session-recording/configuration/create-storage-bucket.mdx deleted file mode 100644 index aaaac2388..000000000 --- a/website/content/docs/session-recording/configuration/create-storage-bucket.mdx +++ /dev/null @@ -1,490 +0,0 @@ ---- -layout: docs -page_title: Create a storage bucket -description: >- - Create a storage bucket in an external storage provider to store recorded sessions. You can review recorded sessions later for compliance and threat management. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Create a storage bucket - -This feature requires HCP Boundary Plus or Boundary Enterprise - -You can record and audit user sessions. A Boundary resource known as a [storage bucket](/boundary/docs/domain-model/storage-buckets) is used to store the recorded sessions. -The storage bucket represents a bucket in an external storage provider. -Before you can enable session recording, you must create one or more storage buckets in Boundary and associate them with the external store. - -A storage bucket can only belong to the global scope or an org scope. A storage bucket that is associated with the global scope can be associated with any target. However, a storage bucket in an Org scope can only be associated with targets in a project from the same org scope. Any storage buckets associated with an Org scope are deleted when the org itself is deleted. - -## Requirements - -Before you create a storage bucket in Boundary, you must: - -- [Configure workers for storage](/boundary/docs/session-recording/configuration/configure-worker-storage) -- Configure one of the following storage providers: - - [Amazon S3](/boundary/docs/session-recording/configuration/storage-providers/configure-s3) - - [MinIO](/boundary/docs/session-recording/configuration/storage-providers/configure-minio) - - [S3-compliant](/boundary/docs/session-recording/configuration/storage-providers/configure-s3-compliant) - -## Create a storage bucket - -Select a storage provider. - - - - -Complete the following steps to create a storage bucket in Boundary. - - - - -1. Log in to Boundary. -1. Click **Storage Buckets** in the navigation bar. -1. Click **New Storage Bucket**. -1. Complete the following fields to create the Boundary storage bucket: - - **Name**: (Optional) The name field is optional, but if you enter a name it must be unique. - - **Description**: (Optional) An optional description of the Boundary storage bucket for identification purposes. - - **Scope**: (Required) A storage bucket can belong to the Global scope or an Org scope. - It can only associated with targets from the scope it belongs to. - - **Provider**: (Required) The external storage bucket provider. - - **Bucket name**: (Required) Name of the AWS bucket you want to associate with the Boundary storage bucket. - - **Bucket prefix**: (Optional) A base path where session recordings are stored. - - **Region**: (Required) The AWS region to use. - - **Credential type**: (Required) The type of credential you want to use to authenticate to the external storage. - The required fields for creating a storage bucket vary depending on whether you configured the Amazon S3 bucket with static or dynamic credentials: - - **Static**: Authenticates to the storage bucket using an access key that AWS generates. - - **Dynamic**: Authenticates to the storage bucket using credentials that were generated by AWS `AssumeRole`. - - - - - - **Access key ID**: (Required) The access key ID that AWS generates for the IAM user to use with the storage bucket. - - **Secret access key**: (Required) The secret access key that AWS generates for the IAM user to use with this storage bucket. - - **Worker filter**: (Required) A filter expression that indicates which Boundary workers have access to the storage. The filter must match an existing worker to create a Boundary storage bucket. This should be a boolean expression. To generate a worker filter in the correct format, toggle the **Show filter generator** switch. Refer to [the filter example for storage buckets](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) to learn about worker tags and filters. - - **Disable credential rotation**: (Optional) Prevents the AWS plugin from automatically rotating credentials. - - Although credentials are stored encrypted in Boundary, by default the [AWS plugin](https://github.com/hashicorp/boundary-plugin-aws) attempts to rotate the credentials you provide. The given credentials are used to create a new credential, and then the original credential is revoked. - After rotation, only Boundary knows the client secret the plugin uses. - - - - - - **Role ARN**: (Required) The ARN (Amazon Resource Name) role that is attached to the EC2 instance that the self-managed worker runs on. - - **Role external ID**: (Optional) A required value if you delegate third party access to your AWS resources. - For more information, refer to the AWS documentation for [How to use an external ID when granting access to your AWS resources to a third party](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html). - - **Role session name**: (Optional) A unique identifier for the AWS session. - You can use this value to control how IAM principals and applications name their role sesions when they assume an IAM role. - By providing a session name, you enable tracking session actions in AWS CloudTrail logs. - For more information, refer to the AWS documentation for [Logging IAM and AWS STS API calls with AWS CloudTrail](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html). - - **Role tags**: An object with key-value pair attributes that is passed when you assume an IAM role. - For more information, refer to the AWS documentation for [Passing session tags in AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html). - - **Worker filter**: (Required) A filter expression that indicates which Boundary workers have access to the storage. The filter must match an existing worker to create a Boundary storage bucket. This should be a boolean expression. To generate a worker filter in the correct format, toggle the **Show filter generator** switch. Refer to [the filter example for storage buckets](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) to learn about worker tags and filters. - - **Disable credential rotation**: (Required) Prevents the AWS plugin from automatically rotating credentials. - This option is required if you use dynamic credentials. - - - - -1. Click **Save**. - - - - -The required fields for creating a storage bucket depend on whether you configured the Amazon S3 bucket with static or dynamic credentials: - - - - - - - The preferred way to authenticate to the S3 bucket is by using dynamic credentials. The example below uses static credentials instead. - - - -1. Log in to Boundary. -1. Use the following command to create a storage bucket in Boundary: - - ```shell-session - $ boundary storage-buckets create \ - -bucket-name mybucket1 \ - -plugin-name aws \ - -scope-id o_1234567890 \ - -worker-filter ‘“aws-worker” in “/tags/type”’ \ - -secret ‘{“access_key_id”: “123456789” , “secret_access_key” : “123/456789/12345678”}’ \ - -attributes ‘{“region”:”us-east-1”,”disable_credential_rotation”:true}’ - ``` - - Replace the values above with the following required AWS secrets and any [attributes](/boundary/docs/domain-model/storage-buckets) you want to associate with the Boundary storage bucket: - - - `region`: (Required) The AWS region to use. - - `bucket-name`: (Required) The name of the AWS bucket you want to associate with the Boundary storage bucket. - - `plugin-name`: (Required) The name of the Boundary storage plugin. - - `scope_id`: (Required) A storage bucket can belong to the Global scope or an Org scope. - - `worker-filter`: (Required) A filter expression that indicates which Boundary workers have access to the storage. The filter must match an existing worker in order to create a Boundary storage bucket. Refer to [the filter example for storage buckets](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) to learn about worker tags and filters. - - `secret`: (Required) The AWS credentials to use. - - `access_key_id`: (Required) The AWS access key to use. - - `secret_access_key_id`: (Required) The AWS secret access key to use. - This attribute contains the secret access key for static credentials. - - `attributes` or `-attr`: Attributes of the Amazon S3 storage bucket. - - `shared_credentials_file`: (Optional) The shared credentials file to use. - - `shared_credentials_profile`: (Optional) The profile name to use in the shared credentials file. - - `disable_credential_rotation`: (Optional) Prevents the AWS plugin from automatically rotating credentials. - - Although credentials are stored encrypted in Boundary, by default the [AWS plugin](https://github.com/hashicorp/boundary-plugin-aws) attempts to rotate the credentials you provide. The given credentials are used to create a new credential, and then the original credential is revoked. After rotation, only Boundary knows the client secret the plugin uses. - - - - - -1. Log in to Boundary. -1. Use the following command to create a storage bucket in Boundary: - - ```shell-session - $ boundary storage-buckets create \ - -bucket-name mys3bucket \ - -plugin-name aws \ - -scope-id o_1234567890 \ - -worker-filter ‘“s3” in “/tags/type”’ \ - -attributes ‘{“region”:”us-east-1”,”disable_credential_rotation”:true,"role_arn":"arn:aws:iam::123456789012:role/S3Access"}’ - ``` - - Replace the values above with the following required AWS secrets and any [attributes](/boundary/docs/domain-model/storage-buckets) you want to associate with the Boundary storage bucket: - - - `region`: (Required) The AWS region to use. - - `bucket-name`: (Required) The name of the AWS bucket you want to associate with the Boundary storage bucket. - - `plugin-name`: (Required) The name of the Boundary storage plugin. - - `scope_id`: (Required) A storage bucket can belong to the Global scope or an Org scope. - - `worker-filter`: (Required) A filter expression that indicates which Boundary workers have access to the storage. The filter must match an existing worker in order to create a Boundary storage bucket. Refer to [the filter example for storage buckets](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) to learn about worker tags and filters. - - `attributes` or `-attr`: Attributes of the Amazon S3 storage bucket. - - `role_arn`: (Required) The ARN (Amazon Resource Name) role that is attached to the EC2 instance that the self-managed worker runs on. - - `role_external_id`: (Optional) A required value if you delegate third party access to your AWS resources. - For more information, refer to the AWS documentation for [How to use an external ID when granting access to your AWS resources to a third party](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html). - - `role_session_name`: (Optional) A unique identifier for the AWS session. - You can use this value to control how IAM principals and applications name their role sesions when they assume an IAM role. - By providing a session name, you enable tracking session actions in AWS CloudTrail logs. - For more information, refer to the AWS documentation for [Logging IAM and AWS STS API calls with AWS CloudTrail](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html). - - `role_tags`: (Optional) An object with key-value pair attributes that is passed when you assume an IAM role. - For more information, refer to the AWS documentation for [Passing session tags in AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html). - - - - - - - -The HCL code for creating a storage bucket is different depending on whether you configured the AWS S3 bucket with static or dynamic credentials. This page provides example configurations for a generic Terraform deployment. - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Support for Amazon S3 storage providers leverages the [Boundary AWS plugin](https://github.com/hashicorp/boundary-plugin-aws). - - - - - - - The preferred way to authenticate to the S3 bucket is by using dynamic credentials. The code below uses static credentials instead. - - - -Apply the following Terraform policy: - -```hcl -resource "boundary_storage_bucket" "aws_static_credentials_example" { - name = "My aws storage bucket with static credentials" - description = "My first storage bucket" - scope_id = "o_1234567890" - plugin_name = "aws" - bucket_name = "mybucket1" - attributes_json = jsonencode({ "region" = "us-east-1" }) - - # recommended to pass in aws secrets using a file() or using environment variables - # the secrets below must be generated in aws using an iam user with programmatic access - secrets_json = jsonencode({ - "access_key_id" = "aws_access_key_id_value", - "secret_access_key" = "aws_secret_access_key_value" - }) - worker_filter = "\"aws-worker\" in \"/tags/type\"" -} - -output "storage_bucket_id" { - value = boundary_storage_bucket.aws_static_credentials_example.id -} -``` - - - - -Apply the following Terraform policy: - -```hcl -resource "boundary_storage_bucket" "aws_dynamic_credentials_example" { - name = "My aws storage bucket with dynamic credentials" - description = "My first storage bucket" - scope_id = "o_1234567890" - plugin_name = "aws" - bucket_name = "mybucket1" - - # the role_arn value should be the same arn used in the instance profile attached to the ec2 instance - # https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html - attributes_json = jsonencode({ - "region" = "us-east-1" - "role_arn" = "arn:aws:iam::123456789012:role/S3Access" - "disable_credential_rotation" = true - }) - worker_filter = "\"s3-worker\" in \"/tags/type\"" -} - -output "storage_bucket_id" { - value = boundary_storage_bucket.aws_dynamic_credentials_example.id -} -``` - - - - - - - - - - -Complete the following steps to create a storage bucket in Boundary. - - - - MinIO requires a service account and its associated access keys to set up a Boundary storage bucket. Refer to the [Configure MinIO](/boundary/docs/session-recording/configuration/storage-providers/configure-minio#minio-requirements) page to learn more. - - - - - - -1. Log in to Boundary. -1. Click **Storage Buckets** in the navigation bar. -1. Click **New Storage Bucket**. -1. Complete the following fields to create the Boundary storage bucket: - - **Name**: (Optional) The name field is optional, but if you enter a name it must be unique. - - **Description**: (Optional) An optional description of the Boundary storage bucket for identification purposes. - - **Scope**: (Required) A storage bucket can belong to the Global scope or an Org scope. - It can only be associated with targets from the scope it belongs to. - - **Provider**: (Required) The external storage bucket provider. - - **Endpoint URL**: (Required) The fully-qualified endpoint pointing to a MinIO S3 API, such as `https://my-minio-instance.dev:9000`. - - **Bucket name**: (Required) Name of the AWS bucket you want to associate with the Boundary storage bucket. - - **Region**: (Optional) The region to configure the storage bucket for. - - **Access key ID** (Required): The MinIO service account's access key to use with this storage bucket. - - **Secret access key** (Required): The MinIO service account's secret key to use with this storage bucket. - - **Worker filter**: (Required) A filter expression that indicates which Boundary workers have access to the storage. The filter must match an existing worker to create a Boundary storage bucket. This should be a boolean expression. To generate a worker filter in the correct format, toggle the **Show filter generator** switch. Refer to [the filter example for storage buckets](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) to learn about worker tags and filters. - - **Disable credential rotation**: (Optional) Controls whether the plugin will rotate the incoming credentials and manage a new MinIO service account. If this attribute is set to false, or not provided, the plugin will rotate the incoming credentials, using them to create a new MinIO service account, then delete the incoming credentials. - -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create a storage bucket in Boundary: - - ```shell-session - $ boundary storage-buckets create \ - -bucket-name myminiobucket \ - -plugin-name minio \ - -scope-id o_1234567890 \ - -bucket-prefix="foo/bar/zoo" \ - -worker-filter '"minio-worker" in "/tags/type"' \ - -attr endpoint_url="https://my-minio-instance.dev:9000" \ - -attr region="REGION" \ - -attr disable_credential_rotation=true \ - -secret access_key_id="KEY" \ - -secret secret_access_key="SECRET" - ``` - - Replace the values above with the following required secrets and any optional [attributes](/boundary/docs/domain-model/storage-buckets) you want to associate with the Boundary storage bucket: - - - `bucket-name`: (Required) Name of the MinIO bucket you want to associate with the Boundary storage bucket. - - `plugin-name`: (Required) The name of the Boundary storage plugin. - - `scope_id`: (Required) A storage bucket can belong to the Global scope or an Org scope. - - `worker-filter`: (Required) A filter expression that indicates which Boundary workers have access to the storage. The filter must match an existing worker in order to create a Boundary storage bucket. Refer to [the filter example for storage buckets](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) to learn about worker tags and filters. - - `secret`: (Required) The MinIO credentials to use. - - `access_key_id` (Required): The MinIO service account's access key to use with this storage bucket. - - `secret_access_key` (Required): The MinIO service account's secret key to use with this storage bucket. - - `attributes` or `-attr`: Attributes of the MinIO storage bucket. - - `endpoint_url` (Required): Fully-qualified endpoint pointing to a MinIO S3 API. - - `region`: (Optional) The region to configure the storage bucket for. - - `disable_credential_rotation`: (Optional) Controls whether the plugin will rotate the incoming credentials and manage a new MinIO service account. If this attribute is set to `false`, or not provided, the plugin will rotate the incoming credentials to create a new MinIO service account, then delete the incoming credentials. - - This option must be set to `true` if you use dynamic credentials. - - - - -This page provides example configurations for a generic Terraform deployment. - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Support for MinIO storage providers leverages the [Boundary MinIO plugin](https://github.com/hashicorp/boundary-plugin-minio). - -Apply the following Terraform policy: - -```hcl -resource "boundary_storage_bucket" "minio_credentials_example" { - name = "My MinIO storage bucket" - description = "My first storage bucket" - scope_id = "o_1234567890" - plugin_name = "minio" - bucket_name = "mybucket1" - - attributes_json = jsonencode({ - "endpoint_url" = "minio_access_key_id_value", - "disable_credential_rotation" = true - }) - - secrets_json = jsonencode({ - "access_key_id" = "minio_access_key_id_value", - "secret_access_key" = "minio_secret_access_key_value" - }) - worker_filter = "\"minio-worker\" in \"/tags/type\"" -} - -output "storage_bucket_id" { - value = boundary_storage_bucket.minio_credentials_example.id -} -``` - - - - - - - -Complete the following steps to create a storage bucket in Boundary using an S3-compliant storage provider. Hitachi Content Platform is used as an example below. - - - - S3-compliant storage requires a service account and its associated access keys to set up a Boundary storage bucket. Refer to the [Configure S3-compliant storage](/boundary/docs/session-recording/configuration/storage-providers/configure-s3-compliant#s3-compliant-storage-provider-requirements) page to learn more. - - - - - - -1. Log in to Boundary. -1. Click **Storage Buckets** in the navigation bar. -1. Click **New Storage Bucket**. -1. Complete the following fields to create the Boundary storage bucket: - - **Name**: (Optional) The name field is optional, but if you enter a name it must be unique. - - **Description**: (Optional) An optional description of the Boundary storage bucket for identification purposes. - - **Scope**: (Required) A storage bucket can belong to the Global scope or an Org scope. - It can only be associated with targets from the scope it belongs to. - - **Provider**: (Required) The external storage bucket provider. - For S3-compliant storage, select **MinIO**. - - **Endpoint URL**: (Required) The fully-qualified endpoint pointing to a storage provider's S3 API, such as `https://my-hitachi-instance.dev:9000`. - - **Bucket name**: (Required) Name of the S3-compliant storage bucket you want to associate with the Boundary storage bucket. - - **Region**: (Optional) The region to configure the storage bucket for. - - **Access key ID** (Required): The storage provider's service account's access key to use with this storage bucket. - - **Secret access key** (Required): The storage provider's service account's secret key to use with this storage bucket. - - **Worker filter**: (Required) A filter expression that indicates which Boundary workers have access to the storage. The filter must match an existing worker to create a Boundary storage bucket. This should be a boolean expression. To generate a worker filter in the correct format, toggle the **Show filter generator** switch. Refer to [the filter example for storage buckets](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) to learn about worker tags and filters. - - **Disable credential rotation**: (Optional) Controls whether the plugin will rotate the incoming credentials and manage a new storage service account. If this attribute is set to false, or not provided, the plugin will rotate the incoming credentials, using them to create a new storage service account, then delete the incoming credentials. - - Note that credential rotation is not supported for Hitachi Content Platform, and it may not function for other S3-compatible providers. - -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create a storage bucket in Boundary: - - ```shell-session - $ boundary storage-buckets create \ - -bucket-name mystoragebucket \ - -plugin-name minio \ - -scope-id o_1234567890 \ - -bucket-prefix="foo/bar/zoo" \ - -worker-filter '"storage-worker" in "/tags/type"' \ - -attr endpoint_url="https://my-hitachi-instance.dev:9000" \ - -attr region="REGION" \ - -attr disable_credential_rotation=true \ - -secret access_key_id="KEY" \ - -secret secret_access_key="SECRET" - ``` - - Replace the values above with the following required secrets and any optional [attributes](/boundary/docs/domain-model/storage-buckets) you want to associate with the Boundary storage bucket: - - - `bucket-name`: (Required) Name of the S3-compliant storage bucket you want to associate with the Boundary storage bucket. - - `plugin-name`: (Required) The name of the Boundary storage plugin. - Use the `minio` plugin for S3-compatible storage. - - `scope_id`: (Required) A storage bucket can belong to the Global scope or an Org scope. - - `worker-filter`: (Required) A filter expression that indicates which Boundary workers have access to the storage. The filter must match an existing worker in order to create a Boundary storage bucket. Refer to [the filter example for storage buckets](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) to learn about worker tags and filters. - - `secret`: (Required) The storage provider's credentials to use. - - `access_key_id` (Required): The storage provider's service account's access key to use with this storage bucket. - - `secret_access_key` (Required): The storage provider's service account's secret key to use with this storage bucket. - - `attributes` or `-attr`: Attributes of the S3-compliant storage bucket. - - `endpoint_url` (Required): Fully-qualified endpoint pointing to an S3-compliant API. This example uses Hitachi, but you should substitute your storage provider's endpoint. - - `region`: (Optional) The region to configure the storage bucket for. - - `disable_credential_rotation`: (Optional) Controls whether the plugin will rotate the incoming credentials and manage a new storage service account. If this attribute is set to `false`, or not provided, the plugin will rotate the incoming credentials to create a new storage service account, then delete the incoming credentials. - - Note that credential rotation is not supported for Hitachi Content Platform, and it may not function for other S3-compatible providers. - - - - -This page provides example configurations for a generic Terraform deployment. - -Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes. - -Support for S3-compliant storage providers leverages the [Boundary MinIO plugin](https://github.com/hashicorp/boundary-plugin-minio). - -Apply the following Terraform policy: - -```hcl -resource "boundary_storage_bucket" "storage_credentials_example" { - name = "My storage bucket" - description = "My first storage bucket" - scope_id = "o_1234567890" - plugin_name = "minio" - bucket_name = "mybucket1" - - attributes_json = jsonencode({ - "endpoint_url" = "minio_access_key_id_value", - "disable_credential_rotation" = true - }) - - secrets_json = jsonencode({ - "access_key_id" = "storage_access_key_id_value", - "secret_access_key" = "storage_secret_access_key_value" - }) - worker_filter = "\"storage-worker\" in \"/tags/type\"" -} - -output "storage_bucket_id" { - value = boundary_storage_bucket.storage_credentials_example.id -} -``` - - - - - - - -Boundary creates the storage bucket resource and provides you with the bucket's ID. - -## Next steps - -After the storage bucket is created in Boundary, you can use the bucket's ID to [enable session recording on targets](/boundary/docs/session-recording/configuration/enable-session-recording). - -## Resources - -The following docs are relevant to configuring storage buckets: - -- [Storage bucket attributes](/boundary/docs/domain-model/storage-buckets) -- [Storage bucket worker filter example](/boundary/docs/workers/filters#example-worker-filter-for-storage-buckets) -- [Boundary AWS plugin](https://github.com/hashicorp/boundary-plugin-aws) -- [Boundary MinIO plugin](https://github.com/hashicorp/boundary-plugin-minio) -- [Filtering and listing resources](/boundary//docs/filtering) \ No newline at end of file diff --git a/website/content/docs/session-recording/configuration/enable-session-recording.mdx b/website/content/docs/session-recording/configuration/enable-session-recording.mdx deleted file mode 100644 index cccc235fe..000000000 --- a/website/content/docs/session-recording/configuration/enable-session-recording.mdx +++ /dev/null @@ -1,121 +0,0 @@ ---- -layout: docs -page_title: Enable session recording on a target -description: >- - Enable session recording for targets so that user sessions are recorded for compliance and threat management. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Enable session recording on a target - -This feature requires HCP Boundary Plus or Boundary Enterprise - -You must enable session recording for any targets that you want to record sessions on. -When you [create a storage bucket](/boundary/docs/session-recording/configuration/create-storage-bucket), Boundary provides you with an ID. -You use the storage bucket's ID to associate a target with the storage bucket. - -## Requirements - -- One or more storage buckets to store the recordings. -- Session recording is only supported for SSH targets at this time. -- A KMS key with the purpose `bsr` must be added to the controller configuration. -The key is used for encrypting data and checking the integrity of recordings. -Refer to [Create the controller configuration](/boundary/docs/deploy/self-managed/configure-controllers#create-the-controller-configuration) and [the `bsr` KMS key](/boundary/docs/secure/encryption/data-encryption#the-bsr-kms-key) documentation for more information about configuring a KMS block. -- The targets must be configured with an ingress or egress worker filter that includes a worker with access to the storage bucket you created. -Refer to [SSH target attributes](/boundary/docs/domain-model/targets#ssh-target-attributes) for more information. -- You must enable injected application credentials on any target that you want to use for session recording. -Refer to [Configure targets with credential injection](/boundary/docs/credentials/configure-credential-injection) for more information about injecting application credentials. - -Complete the following steps to enable session recording on a target. - - - - -1. Log in to Boundary. -1. Click **Orgs** in the navigation pane. -1. Select the org that contains the target you want to enable for session recording. -1. Select the project that contains the target you want to enable for session recording. -1. Select **Targets** in the navigation pane. -1. Do one of the following: - - - To create a new target, select **New Target**. - - To edit an existing target, select the target, and then select **Edit Form**. -1. Configure the target with any relevant [attributes](/boundary/docs/domain-model/targets). -The following setting is required for session recording: - - - Select **SSH** for the **Type**. - -1. Click **Save**. -1. Click **Enable recording**. - - ![Example of enabling session recording](/img/ui/enable-session-recording_light.png#light-theme-only) - ![Example of enabling session recording](/img/ui/enable-session-recording_dark.png#dark-theme-only) - -1. Enable the **Record sessions for this target** option. -1. Select the storage bucket where you want to store recordings from this target. - - You can also [create a new storage bucket](/boundary/docs/session-recording/configuration/create-storage-bucket). - -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Do one of the following: - - - To enable an existing SSH target for session recording, run the following commmand: - - ```shell-session - $ boundary targets update ssh -scope-id p_1234567890 -id tssh_1234567890 -enable-session-recording true -storage-bucket-id sb_1234567890 - ``` - - Make sure to add the `-enable-session-recording true` flag to turn on session recording for the target. - Add the `-storage-bucket-id ID` for the storage bucket you want to associate with this target. - - - To create a new target and enable it for session recording, run the following command: - - ```shell-session - $ boundary targets create ssh -scope-id p_1234567890 -default -port 22 -name test1 -address 99.12.345.67 -enable-session-recording true -storage-bucket-id sb_1234567890 - ``` - - Make sure to add the `-enable-session-recording true` flag to turn on session recording for the target. - Add the `-storage-bucket-id ID` for the storage bucket you want to associate with this target. - You can configure any other [target attributes](/boundary/docs/domain-model/targets). - - You can now view the target from the **Targets** page in the Boundary console. - - - - -Apply the following Terraform policy: - -```hcl -resource "boundary_target" "address_foo" { - name = "address_foo" - description = "Foo target with an address" - type = "tcp" - default_port = "22" - scope_id = boundary_scope.project.id - address = "127.0.0.1" - - # Add the next two lines to an existing target to enable session recording. - # Modify the value of storage_bucket_id as appropriate - enable_session_recording = true - storage_bucket_id = boundary_storage_bucket.aws_example.id -} -``` - - - - -The target is now enabled for session recording. -Any user session that connects to the target is automatically recorded. - -## Next steps - -After you have enabled session recording, you may want to [configure storage policies](/boundary/docs/session-recording/compliance/configure-storage-policy) to codify the lifecycle management of your session recordings. diff --git a/website/content/docs/session-recording/configuration/manage-recorded-sessions.mdx b/website/content/docs/session-recording/configuration/manage-recorded-sessions.mdx deleted file mode 100644 index 888e463c8..000000000 --- a/website/content/docs/session-recording/configuration/manage-recorded-sessions.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -layout: docs -page_title: Find and view recorded sessions -description: >- - Find and view recorded sessions. View a list of all recorded sessions, or search for a specific recording. Download recorded sessions to meet compliance needs. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Find and view recorded sessions - -This feature requires HCP Boundary or Boundary Enterprise - -Boundary converts recorded sessions into an asciicast format so that you can play back interactive SSH sessions. -Make sure to refer to the [asciicast](/boundary/docs/session-recording#asciicast) documentation to understand potential limitations to the asciicast format. - -You can view a list of all recorded sessions, or if you know the ID of a specific recorded session, you can find any channels associated with that recording. - - - - -## Find all recorded sessions - -Complete the following steps to find all recorded sessions using the CLI. - -1. Authenticate to Boundary in the CLI. -1. Type the following command to view a list of all recorded sessions: - - ```bash - boundary session-recordings list -recursive - ``` - - Boundary displays a list of all recorded sessions by scope. - -## Find a specific recorded session by ID - -If you have the ID of a recorded session, you can use the following command to list the connections and channels associated with a session recording. - -```bash -boundary session-recordings read -id -``` - -## Download recorded session channels - -You can download a recording of SSH shell or exec sessions for a channel from a recorded session. -The channel ID is required for the download. - -If you have the ID of a recorded session, you can use the following command to list the connections and channels associated with a session recording. - -```bash -boundary session-recordings read -id -``` - -Complete the following steps to download a recorded session channel: - -1. Authenticate to Boundary in the CLI. -1. Type the following command to download a recorded session channel. -Substitute the ID of the channel for **chr_1234567890**: - - ```bash - boundary session-recordings download -id chr_1234567890 - ``` - - - - -## Find all recorded sessions - -You can find all recorded sessions in the UI from the global scope. - -1. Log in to Boundary. -1. Select **Session Recordings** in the navigation pane. - - The **Session Recordings** page displays the created time, user, project, - target, and duration of the recording. - -## View session recording details - -1. Select **View** next to the session recording you want to view. - - The details page has information related to the session recording and - links to related information like user, target, and storage bucket. - -## Play back channel recording - -1. Select **Play** next to the channel recording you want to view. - - The recorded session appears in the media player. - Click the **Play** button located at the bottom of the media player - to watch the recording. - - If a recorded session channel does not support playback, a **View** button - is shown. The playback page displays a message stating that playback - is not supported, but still shows details specific to that channel. - - - - -## More information - -Refer to the following topics for more information: - -- [Session recording](/boundary/docs/session-recording) -- [asciicast](/boundary/docs/session-recording#asciicast) diff --git a/website/content/docs/session-recording/configuration/storage-providers/configure-minio.mdx b/website/content/docs/session-recording/configuration/storage-providers/configure-minio.mdx deleted file mode 100644 index 1523a9d31..000000000 --- a/website/content/docs/session-recording/configuration/storage-providers/configure-minio.mdx +++ /dev/null @@ -1,120 +0,0 @@ ---- -layout: docs -page_title: Configure MinIO storage -description: >- - Configure MinIO as a storage provider for recorded sessions. Understand session recording and MinIO requirements. View an example configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure MinIO as a storage provider - -This feature requires HCP Boundary or Boundary Enterprise - -This page describes how to configure MinIO as a storage provider for session recording with Boundary. - -## Requirements - -Before you can create a storage bucket in Boundary, you must ensure that your environment meets certain requirements. - -Session recording requires specific configuration for both the external storage provider and the Boundary worker. - -Refer to [Configure workers for session recording](/boundary/docs/session-recording/configuration/configure-worker-storage) to learn about configuring self-managed workers for session recording. - -When you determine storage requirements for the external bucket, you should consider: - -- [BSR storage considerations](/boundary/docs/session-recording#storage-considerations) -- [Storage bucket retention policies](/boundary/docs/session-recording/compliance/configure-storage-policy) - -### MinIO requirements - -- A MinIO storage bucket - - You must associate the Boundary storage bucket with a MinIO storage bucket. A Boundary MinIO storage bucket contains the bucket name, endpoint URL, optional region, optional prefix, and the service account credentials needed to access the bucket. To enable credential rotation, you cannot add a Boundary storage bucket without a MinIO service account. You can disable credential rotation when you create the Boundary storage bucket. - - At the time of the 0.18.0 release, the latest tested and supported MinIO version is `RELEASE.2024-10-02T17-50-4Z`. - Newer versions may work as well, but they have not been tested. - - - - At this time, the NetBSD operating system is not supported for the MinIO storage bucket. - - - -- A MinIO service account and access keys - - You must provide service account access keys when you configure a Boundary storage bucket later on. - - Refer to the [MinIO Access Keys](https://min.io/docs/minio/kubernetes/upstream/administration/console/security-and-access.html#access-keys) documentation page to learn how to set up a MinIO service account. - -- A MinIO storage bucket must be configured with R/W access. If you use a - restricted IAM user policy, the following policy actions must be allowed at a minimum. - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "s3:PutObject", - "s3:GetObject", - "s3:GetObjectAttributes", - "s3:DeleteObject" - ], - "Effect": "Allow", - "Resource": "arn:aws:s3:::test-session-recording-bucket/*" - }, - { - "Action": "s3:ListBucket", - "Effect": "Allow", - "Resource": "arn:aws:s3:::test-session-recording-bucket" - } - ] - } - ``` - -- HashiCorp recommends that you enable credential rotation. To enable credential rotation, use the following service account policy: - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "s3:PutObject", - "s3:GetObject", - "s3:GetObjectAttributes", - "s3:DeleteObject" - ], - "Effect": "Allow", - "Resource": "arn:aws:s3:::test-session-recording-bucket/*" - }, - { - "Action": "s3:ListBucket", - "Effect": "Allow", - "Resource": "arn:aws:s3:::test-session-recording-bucket" - }, - { - "Action": [ - "admin:CreateServiceAccount", - "admin:RemoveServiceAccount" - ], - "Effect": "Allow" - } - ] - } - ``` - -## Resources - -The following docs MinIO docs are relevant for configuring storage buckets and service accounts: - -- Refer to the [MinIO Policy Action Keys](https://min.io/docs/minio/linux/administration/identity-access-management/policy-based-access-control.html#mc-admin-policy-action-keys) documentation to learn more about restricting IAM user policies. -- Refer to the [MinIO Object Encryption with KES](https://min.io/docs/minio/linux/operations/server-side-encryption/configure-minio-kes.html#minio-sse-vault) documentation to learn more about KMS and data encryption with vault key management. - -## Next steps - -After you configure the external storage provider, you can [create the storage bucket](/boundary/docs/session-recording/configuration/create-storage-bucket) in Boundary. \ No newline at end of file diff --git a/website/content/docs/session-recording/configuration/storage-providers/configure-s3-compliant.mdx b/website/content/docs/session-recording/configuration/storage-providers/configure-s3-compliant.mdx deleted file mode 100644 index 691b7a6fc..000000000 --- a/website/content/docs/session-recording/configuration/storage-providers/configure-s3-compliant.mdx +++ /dev/null @@ -1,119 +0,0 @@ ---- -layout: docs -page_title: Configure S3-compliant storage -description: >- - Configure an S3-compliant storage provider for recorded sessions. Understand session recording and storage provider requirements. View an example configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure an S3-compliant storage provider - -This feature requires HCP Boundary or Boundary Enterprise - -The [MinIO plugin](https://github.com/hashicorp/boundary-plugin-minio/) lets you configure S3-compliant storage providers for session recording. - - -HashiCorp has tested and confirmed that you can configure the following S3-compliant storage products for session recording using the MinIO plugin: - -- [Hitachi Content Platform](https://www.hitachivantara.com) - - At the time of the 0.18.0 release, the latest tested and supported Hitachi Content Platform version is `2.6.0.0`. - Newer versions may work as well, but they have not been tested. - -- [Backblaze B2](https://www.backblaze.com/cloud-storage) - -You can also configure other providers' S3-compliant storage products for session recording storage. -We will update the list of providers as we test them. - -The process for [configuring the Hitachi Content Platform](#hitachi-content-platform-configuration) is included below as an example. -Configuring other S3-compliant storage products for use with session recording should be a similar process. - -## Requirements - -Before you can create a storage bucket in Boundary, you must ensure that your environment meets certain requirements. - -Session recording requires specific configuration for both the external storage provider and the Boundary worker. - -Refer to [Configure workers for session recording](/boundary/docs/session-recording/configuration/configure-worker-storage) to learn about configuring self-managed workers for session recording. - -When you determine storage requirements for the external bucket, you should consider: - -- [BSR storage considerations](/boundary/docs/session-recording#storage-considerations) -- [Storage bucket retention policies](/boundary/docs/session-recording/compliance/configure-storage-policy) - -### S3-compliant storage provider requirements - -- A storage bucket - - You must associate the Boundary storage bucket with a third-party storage bucket. A third-party storage bucket contains the bucket name, endpoint URL, optional region, optional prefix, and the service account credentials needed to access the bucket. - -- A service account and access keys for the storage provider - - You must provide service account access keys when you configure a Boundary storage bucket later on. - Refer to your storage provider's documentation to learn how to set up a service account. - -- The storage bucket must be configured with R/W access. If you use a - restricted IAM user policy, you must allow the following policy actions at a minimum. - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "s3:PutObject", - "s3:GetObject", - "s3:GetObjectAttributes", - "s3:DeleteObject" - ], - "Effect": "Allow", - "Resource": "arn:aws:s3:::test-session-recording-bucket/*" - }, - { - "Action": "s3:ListBucket", - "Effect": "Allow", - "Resource": "arn:aws:s3:::test-session-recording-bucket" - } - ] - } - ``` - -### Hitachi Content Platform configuration - -HashiCorp has tested and confirmed that you can configure the Hitachi Content Platform for external session recording storage using the MinIO plugin. -It is included as an example in this topic. -You should be able to configure other S3-compliant storage providers to work for session recording storage as well, but we have only tested a [limited number of providers](#providers). - -You must have an account with Hitachi Content Platform to create storage buckets. -You can sign up for an account at the following URL: - -[https://www.hitachivantara.com](https://www.hitachivantara.com) - -When you sign up for an account, Hitachi sends you the details you need to connect to the instance including the endpoint, S3 access key ID, and S3 secret key. -Log in to Hitachi's S3 console to create a storage bucket, and make a note of the bucket's name. - -In Boundary, set the following environment variables using your Hitachi credentials and the name of the bucket: - -``` -export BUCKET_NAME= -export STORAGE_ACCESS_KEY_ID= -export STORAGE_SECRET_ACCESS_KEY= -``` - - - -Credential rotation is not supported for Hitachi Content Platform. - - - -## Resources - -Refer to your S3-compliant storage provider's documentation for more information about configuring storage buckets and service accounts. - -## Next steps - -After you configure the external storage provider, you can [create the storage bucket](/boundary/docs/session-recording/configuration/create-storage-bucket) in Boundary. \ No newline at end of file diff --git a/website/content/docs/session-recording/configuration/storage-providers/configure-s3.mdx b/website/content/docs/session-recording/configuration/storage-providers/configure-s3.mdx deleted file mode 100644 index e5d56940e..000000000 --- a/website/content/docs/session-recording/configuration/storage-providers/configure-s3.mdx +++ /dev/null @@ -1,136 +0,0 @@ ---- -layout: docs -page_title: Configure Amazon S3 storage -description: >- - Configure Amazon S3 as a storage provider for recorded sessions. Understand session recording and AWS requirements. View an example configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure Amazon S3 as a storage provider - -This feature requires HCP Boundary or Boundary Enterprise - -This page describes how to configure Amazon S3 as a storage provider for session recording with Boundary. - -## Requirements - -Before you can create a storage bucket in Boundary, you must ensure that your environment meets certain requirements. - -Session recording requires specific configuration for both the external storage provider and the Boundary worker. - -Refer to [Configure workers for session recording](/boundary/docs/session-recording/configuration/configure-worker-storage) to learn about configuring self-managed workers for session recording. - -When you determine storage requirements for the external bucket, you should consider: - -- [BSR storage considerations](/boundary/docs/session-recording#storage-considerations) -- [Storage bucket retention policies](/boundary/docs/session-recording/compliance/configure-storage-policy) - -### AWS requirements - -- An Amazon S3 storage bucket - - You must associate the Boundary storage bucket with an Amazon S3 storage bucket. A Boundary Amazon S3 storage bucket contains the bucket name, region, and optional prefix, as well as any credentials needed to access the bucket. - - The Amazon S3 storage bucket can use static or dynamic credentials. - You can configure static credentials using an access key and secret key or dynamic credentials using the AWS [`AssumeRole` API](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole). - -- An AWS IAM role policy with the following statement: - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "s3:PutObject", - "s3:GetObject", - "s3:GetObjectAttributes", - "s3:DeleteObject", - "s3:ListBucket" - ], - "Effect": "Allow", - "Resource": "arn:aws:s3:::session_recording_storage*", - "Resource": "arn:aws:s3:::session_recording_storage/foo/bar/zoo/*" - }, - { - "Action": [ - "iam:DeleteAccessKey", - "iam:GetUser", - "iam:CreateAccessKey" - ], - "Effect": "Allow", - "Resource": "arn:aws:iam::123456789012:user/JohnDoe" - } - ] - } - ``` - -- If you apply KMS encryption to the storage bucket, you must add these additional permissions to the role policy for the storage bucket's IAM user: - - ```json - { - "Action": [ - "kms:Decrypt", - "kms:GenerateDataKey", - "kms:DescribeKey" - ], - "Effect": "Allow", - "Resource": "arn:aws:kms:us-east-1:1234567890:key/uuid" - } - ``` - - The following is an example working policy with KMS encryption configured on the S3 bucket: - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "S3Permissions", - "Effect": "Allow", - "Action": [ - "s3:PutObject", - "s3:GetObject", - "s3:GetObjectAttributes", - "s3:DeleteObject", - "s3:ListBucket" - ], - "Resource": [ - "arn:aws:s3:::test-session-recording-bucket/*" - ] - }, - { - "Sid": "UserPermissions", - "Effect": "Allow", - "Action": [ - "iam:DeleteAccessKey", - "iam:GetUser", - "iam:CreateAccessKey" - ], - "Resource": [ - "arn:aws:iam::1234567890:user/test-boundary" - ] - }, - { - "Sid": "KMSPermissions", - "Effect": "Allow", - "Action": [ - "kms:Decrypt", - "kms:GenerateDataKey", - "kms:DescribeKey" - ], - "Resource": [ - "arn:aws:kms:us-east-2:1234567890:key 4b887395-c376-4936-8f37-80c592ea582c" - ] - } - ] - } - ``` - -## Next steps - -After you configure the external storage provider, you can [create the storage bucket](/boundary/docs/session-recording/configuration/create-storage-bucket) in Boundary. \ No newline at end of file diff --git a/website/content/docs/session-recording/configuration/troubleshoot-recorded-sessions.mdx b/website/content/docs/session-recording/configuration/troubleshoot-recorded-sessions.mdx deleted file mode 100644 index d22fd59a0..000000000 --- a/website/content/docs/session-recording/configuration/troubleshoot-recorded-sessions.mdx +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: docs -page_title: Troubleshoot session recordings -description: >- - View known issues and troubleshoot problems with Boundary's recorded sessions. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Troubleshoot session recordings - -This feature requires HCP Boundary or Boundary Enterprise - -Refer to the following for information about how to troubleshoot recorded sessions. - -## Known bugs - -**Rotation of AWS access and secret keys during a session results in stale recordings:** - -When you rotate a storage bucket's secrets, any new sessions use the new credentials. -However, previously established sessions continue to use the old credentials. - -As a best practice, administrators should rotate credentials in a phased manner, ensuring that all previously established sessions are completed before revoking the stale credentials. -Otherwise, you may end up with recordings that aren't stored in the remote storage bucket and are unable to be played back. - - - - -**Unsupported recovery workflow during worker failure:** - -If a worker fails during a recording, there is no way to recover the recording. -This could happen due to a network connectivity issue or because a worker is scaled down, for example. -There are a number of currently unsupported failure cases, including when the worker: - -- Crashes and restarts while servicing connections and channels for session to an SSH target -- Crashes and restarts while closing a channel before all files are synced to remote storage -- Crashes and restarts while closing a connection recorder before all files are synced to remote storage -- Crashes and restarts while closing a session recorder before all files are synced to remote storage -- Crashes and never restarts or is seen again while closing a channel/connection recorer/session recorder -- Loses its connection to the controller and cancels sessions; it must resend the information when communication resumes - -## Tips - -When you create or update a storage bucket, the actions `GetBucketAcl` and `GetEncryptionConfiguration` can be helpful in debugging access issues. diff --git a/website/content/docs/session-recording/data/bsr-file-structure.mdx b/website/content/docs/session-recording/data/bsr-file-structure.mdx deleted file mode 100644 index 4a7346b43..000000000 --- a/website/content/docs/session-recording/data/bsr-file-structure.mdx +++ /dev/null @@ -1,276 +0,0 @@ ---- -layout: docs -page_title: BSR file data structure -description: >- - Understand the data structure in Boundary's proprietary BSR file that stores session recording data. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# BSR file data structure - -This feature requires HCP Boundary or Boundary Enterprise - -The BSR (Boundary Session Recording) defines a hierarchical directory structure of files and a binary file format. -It contains all the data transmitted between a user and a target during a single session. - -Boundary creates the top-level directory of the BSR as `.bsr`. This top level directory contains session summary -information and subdirectories for connections. - -A BSR connections directory contains a summary of connections, as well as inbound and outbound requests. -If you use a multiplexed protocol, there are subdirectories for the channels. - -Every directory contains a SHA256SUMS and SHA256SUMS.sig file, to be used for cryptographically verifying the contents of -that directory. The SHA256SUMS file contains rows of file names paired with a checksum for file contents. The -SHA256SUMS.sign is a copy of the SHA256SUMS file, signed with the BSR’s private key. For more information on verifying a -session recording, refer to [Validating the integrity of session recordings](/boundary/docs/session-recording/compliance/validate-session-recordings). - -The example BSR below is for a multiplexed session recording with the ID `sr_iNCdGSREeX`. The session recording contains one connection, -`cr_3bB78W53Y9`. Connection `cr_3bB78W53Y9` contains two channels, `chr_VUnVuVnITu` and `chr_nITuVUnVuV`. -The files in each directory are explained in the following sections. - -``` -└── sr_iNCdGSREeX.bsr - ├── SHA256SUM - ├── SHA256SUM.sig - ├── bsrKey.pub - ├── pubKeyBsrSignature.sign - ├── pubKeySelfSignature.sign - ├── session-meta.json - ├── session-recording-summary.json - ├── session-recording.meta - ├── wrappedBsrKey - ├── wrappedPrivKey - ├── cr_3bB78W53Y9.connection - │ ├── SHA256SUM - │ ├── SHA256SUM.sig - │ ├── connection-recording-summary.json - │ ├── connection-recording.meta - │ ├── requests-inbound.data - │ ├── requests-outbound.data - │ ├── chr_VUnVuVnITu.channel - │ │ ├── SHA256SUM - │ │ ├── SHA256SUM.sig - │ │ ├── channel-recording-summary.json - │ │ ├── channel-recording.meta - │ │ ├── messages-inbound.data - │ │ ├── messages-outbound.data - │ │ ├── requests-inbound.data - │ │ └── requests-outbound.data - │ ├── chr_nITuVUnVuV.channel - │ │ ├── SHA256SUM - │ │ ├── SHA256SUM.sig - │ │ ├── channel-recording-summary.json - │ │ ├── channel-recording.meta - │ │ ├── messages-inbound.data - │ │ ├── messages-outbound.data - │ │ ├── requests-inbound.data - │ │ └── requests-outbound.data - │ └── - └── - - -``` - -## BSR Session folder - -A BSR session folder contains the following files: - -- `SHA256SUM.sig` is a plaintext file that contains rows of file names paired with a checksum for file contents. -- `SHA256SUM.sig` is a signature of the plaintext `SHA256SUM` file created with the private key. -- `bsrKey.pub` is the public ed25519 key. -- `pubKeySelfSignature.sign` is a self-signature of the plaintext public ed25519 key created with its private key. -- `pubKeyBsrSignature.sign` is a signature of the plaintext public ed25519 key created with the BSR key. -- `wrappedBsrKey` is the BSR key wrapped by the external KMS AES-GCM key that you configure. -- `wrappedPrivKey` is the private ed25519 key wrapped by the external KMS AES-GCM key that you configure. -- `session-meta.json` is a JSON file that contains metadata about the session, including the session id, endpoint, -user, target, host, worker, and credentials used to access the target. The intention of this file is to provide all information -relevant to the recorded session so that the BSR provides a complete snapshot of a session even in the absence of the Boundary -control plane. -- `session-recording.meta` is a plaintext file that contains metadata about the session, including the session id, protocol, -and a connection ids. For each connection id listed, there should be a corresponding connection directory in the session directory. -- `session-recording-summary.json` is a JSON file that contains a summary of the session recording, including the session id, connection count, -start time, end time, and any errors encountered during recording of the session. - -`session-recording.meta` file example: - -``` -id: sr_iNCdGSREeX -protocol: BSSH -connection: cr_3bB78W53Y9.connection -``` - -`session-recording-summary.json` file example: - -``` -{ - "Id": "sr_iNCdGSREeX", - "ConnectionCount": 1, - "StartTime": "2023-09-19T15:05:39.343307163Z", - "EndTime": "2023-09-19T15:08:02.953159598Z", - "Errors": "" -} - -``` - -`session-meta.json` file example: - -``` -{ - "PublicId": "s_HQbVb8fJaM", - "Endpoint": "ssh://openssh-server:2222", - "User": { - "PublicId": "u_5Ry4oDiEVp", - "Scope": { - "PublicId": "global", - "Name": "global", - "Description": "Global Scope", - "Type": "global", - "ParentId": "", - "PrimaryAuthMethodId": "ampw_CdIa5KR9iw" - }, - "Name": "admin", - "Description": "Initial admin user within the \"global\" scope" - }, - "Target": { - "PublicId": "tssh_TIx4ENZMdA", - "Scope": { - "PublicId": "p_7Qe46uNMYX", - "Name": "session-recording-project", - "Description": "", - "Type": "project", - "ParentId": "o_yK7GoA6OG2", - "PrimaryAuthMethodId": "" - }, - "Name": "session-recording-target", - "Description": "", - "DefaultPort": 2222, - "DefaultClientPort": 0, - "SessionMaxSeconds": 28800, - "SessionConnectionLimit": -1, - "WorkerFilter": "", - "EgressWorkerFilter": "", - "IngressWorkerFilter": "\"pki\" in \"/tags/type\"", - "EnableSessionRecording": true, - "StorageBucketId": "sb_vqn871JdQf" - }, - "Worker": { - "PublicId": "w_ogOQt0rsuQ", - "Version": "0.13.0", - "Sha": "" - }, - "StaticHost": null, - "DynamicHost": null, - "StaticJSONCredentials": null, - "StaticUsernamePasswordCredentials": [ - { - "PublicId": "credup_gdzeB5UWJv", - "Name": "", - "Description": "", - "Username": "username", - "PasswordHmac": "PasswordHmac, - "Purposes": [ - "injected_application" - ], - "CredentialStore": { - "PublicId": "csst_agwIT97uZ7", - "ProjectId": "p_7Qe46uNMYX", - "Name": "ssh static store", - "Description": "SSH Static Cred store" - } - } - ], - "StaticSshPrivateKeyCredentials": null, - "VaultGenericLibraries": null, - "VaultSshCertificateLibraries": null -} -``` - -## BSR Connection folder - -A BSR connection folder contains the following files: - -- `SHA256SUM.sig` is a plaintext file that contains rows of file names paired with a checksum for file contents. -- `SHA256SUM.sig` is a signature of the plaintext `SHA256SUM` file created with the private key. -- `connection-recording.meta` is a plaintext file that contains metadata about the connection, including the connection id, -requests seen, channel ids, and any errors seen. For each channel id listed, there should be a corresponding channel directory in the connection directory. -- `connection-recording-summary.json` is a JSON file that contains a summary of the connection, including the connection id, -start time, end time, bytes up, bytes down, and any errors encountered during recording the connection. -- `requests-inbound.data` is a binary file containing all inbound SSH request messages transmitted for the connection. -- `requests-outbound.data` is a binary file containing all outbound SSH request messages transmitted for the connection. - -`connection-recording.meta` file example: - -``` -id: cr_W53Y93bB78 -requests: outbound -requests: inbound -channel: chr_uVVuUITnVn.channel -error: error message would be appear here -``` - -`connection-recording-summary.json` file example: - -``` -{ - "Id": "cr_W53Y93bB78", - "ChannelCount": 1, - "StartTime": "2023-07-13T20:21:49.164105381Z", - "EndTime": "2023-07-13T20:22:37.241911112Z", - "BytesUp": 125, - "BytesDown": 748, - "Errors": null -} -``` - -### BSR Channel folder - -A BSR connection folder contains the following files: - -- `SHA256SUM.sig` is a plaintext file that contains rows of file names paired with a checksum for file contents. -- `SHA256SUM.sig` is a signature of the plaintext `SHA256SUM` file created with the private key. -- `channel-recording.meta` is a plaintext file that contains metadata about the channel, including the channel id, -inbound and outbound requests seen, and inbound and outbound messages seen. -- `channel-recording-summary.json` is a JSON file that contains a summary of the channel, including the channel id, -start time, end time, bytes up, bytes down, channel type, session program, subsystem name (if applicable), exec program (if applicable), -and file transfer direction (if applicable). -- `requests-inbound.data` is a binary file containing all inbound SSH request messages transmitted for the channel. -- `requests-outbound.data` is a binary file containing all outbound SSH request messages transmitted for the channel. -- `messages-inbound.data` is a binary file containing all inbound SSH data transmitted for the channel. -- `messages-outbound.data` is a binary file containing all outbound SSH data transmitted for the channel. - -`channel-recording.meta` file example: - -``` -id: chr_uVVuUITnVn -channelType: session -messages: outbound -requests: outbound -messages: inbound -requests: inbound -``` - -`channel-recording-summary.json` file example: - -``` -{ - "ChannelSummary": { - "Id": "chr_uVVuUITnVn", - "ConnectionRecordingId": "cr_W53Y93bB78", - "StartTime": "2023-07-13T20:21:49.230916214Z", - "EndTime": "2023-07-13T20:22:37.229379944Z", - "BytesUp": 125, - "BytesDown": 748, - "ChannelType": "session" - }, - "SessionProgram": "shell", - "SubsystemName": "", - "ExecProgram": "", - "FileTransferDirection": "not applicable" -} -``` - -For more information, refer to the [overview of session recording](/boundary/docs/session-recording). diff --git a/website/content/docs/session-recording/data/read-bsr-file.mdx b/website/content/docs/session-recording/data/read-bsr-file.mdx deleted file mode 100644 index 77538e78b..000000000 --- a/website/content/docs/session-recording/data/read-bsr-file.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: docs -page_title: Read a BSR file -description: >- - Learn how to read the data in Boundary's proprietary BSR file that stores session recording data. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Read a BSR file - -BSR data files are where all the data transmitted during a session is stored. BSR data files -have the file suffix `.data` and are binary files written in network byte or big-endian order. The first eight bytes of a -BSR data file always contains the following signature, which identifies the file as a BSR file: `"\x89BSR\r\n\x1a\n"`. - -Following the BSR signature, a BSR file contains “chunks” of data. Each chunk contains the same basic metadata information: -length, protocol, chunk type, direction, and a timestamp. The chunk type indicates the expected data payload. The first -chunk in a BSR file is the header chunk, and the last chunk in a BSR file is the EOF chunk. The remaining -chunks in the file depend on the protocol identified in the BSR header. - -The only protocol currently supported for session recording is SSH. Data files for SSH are prefixed with either `messages-` -or `requests-`, and suffixed with either `inbound` or `outbound` to indicate the direction the data came from. Message -files contain raw data from an SSH session and contain a header chunk, data chunks, and an EOF chunk. Request files -contain a header chunk, SSH request message chunks, and an EOF chunk. - -SSH request message chunks follow the SSH connection and channel request definitions. Boundary populates these chunks -using a protobuf definition provided here: [SSH Chunks](https://github.com/hashicorp/boundary/blob/main/internal/bsr/proto/ssh/v1/ssh_chunks.proto). - -Boundary session recording playback generates an asciinema from a session channel’s `messages-outbound.data` file. For more -information on finding and viewing BSR data using the asciinema, refer to [Find and view recorded sessions](/boundary/docs/session-recording/configuration/manage-recorded-sessions). - -While Boundary does not currently provide tooling to read other BSR .data files, the BSR definition is available in our -[community repository](https://github.com/hashicorp/boundary/tree/main/internal/bsr), and you can use it to develop external tooling. diff --git a/website/content/docs/session-recording/index.mdx b/website/content/docs/session-recording/index.mdx deleted file mode 100644 index bfd4dbe5a..000000000 --- a/website/content/docs/session-recording/index.mdx +++ /dev/null @@ -1,176 +0,0 @@ ---- -layout: docs -page_title: Session recording -description: >- - Discover resources to help you learn more about using session recording to audit user sessions and meet compliance standards for auditing. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Session recording - -This feature requires HCP Boundary or Boundary Enterprise - -Boundary provides auditing capabilities using a feature called session recording. - -In Boundary, a session represents a set of connections between a user and a host from a target. -The session begins when an authorized user requests access to a target, and it ends when that access is terminated. -All sessions have a fixed time limit, and all connections are proxied through a worker. - -When you enable session recording on a target, a worker records any sessions that access the target. -No session data is routed through controllers during the recording stage. -The worker stores the recording on local disk during the recording phase, and then it moves the recording to an external object store when the session is terminated. - -Session recordings are stored in the BSR (Boundary Session Recording) format. -Any credentials needed to access the external object store are passed from the controller to the recording worker when the session is established. -Administrators can view the recordings to investigate security issues, review system activity, or perform regular assessments of security policies and procedures. - -You view session recordings with a session player that runs in a web browser. -The session player is an aggregation of web components that work together to present the different parts of a session recording as a logical whole. -A controller retrieves the contents of a recording from a worker with access to the external object store. -The controller decodes the contents of the recording into a format that is usable by the player. -The player then retrieves the data from the controller. - -In a multi-hop session, the worker that is configured to access the external object store is the worker that records the session. -If no worker can access the storage backend, the session is canceled and an error is returned. - -## Storage buckets - -This feature requires HCP Boundary or Boundary Enterprise - -A resource known as a [storage bucket](/boundary/docs/domain-model/storage-buckets) is used to store the recorded sessions. -The storage bucket represents a bucket in an external object store. -You can configure storage buckets on Amazon S3, MinIO, and some S3-compliant cloud vendors. - -Storing session recordings in a system external to Boundary means those recordings can be accessed, modified, deleted, and even restored independently of Boundary. -You can view any sessions that Boundary recorded in your storage provider or via the CLI. - -Before you can use a storage bucket to record sessions, you must configure a worker with local storage to act as a cache. -The entire recording is written to the local storage cache before it is uploaded. -Once the session is complete, the files are automatically synced with the external storage bucket and deleted from the worker's local storage. - -A storage bucket exists in either the Global scope or an Org scope. -A storage bucket that is associated with the Global scope can be associated with any target. -However, a storage bucket in an Org scope can only be associated with targets in a project from the same Org scope. -Any storage buckets associated with an Org scope are deleted when the Org itself is deleted. - -Deleting a storage bucket in Boundary does not delete the bucket in the external object store, nor does it delete the recorded sessions in the bucket. -The storage bucket's lifecycle does not affect the lifecycle of the bucket in the external object store. -Any session recording metadata that is attached to the storage bucket is deleted when the storage bucket is deleted. - -### Storage considerations - -The BSR captures all the data transmitted between a user and a target during a single session. As a result, the size of a BSR is dependent on user activity. At a minimum, a BSR for a session with one connection requires 8KB of space for its file for BSR keys, checksums, and metadata. - -Determining how much storage you need to allocate on workers and the external storage provider for recordings depends on user activity, but the following two examples are provided to help with storage estimates: - -- For one minute of simple shell activity, a BSR can be around 20KB in size. The storage requirements for 1,000 such sessions would be 20MB. - -- Sending 50MB of data results in a BSR around 50.1MB in size. The storage requirements for 1,000 such sessions would be 50.1 GB. - -When you estimate worker storage requirements, consider the number of concurrent sessions that will be recorded on that worker. Boundary writes the BSR to the worker's local storage while the session is active, and then moves it to the remote storage bucket when the session is closed. - -You use the `recording_storage_minimum_available_capacity` setting to configure the minimum amount of storage space that is required for workers to perform session recording operations. If a worker is at or below the storage threshold, Boundary does not use the worker to record sessions or play back recordings. -Boundary determines the worker's local storage state based on the capacity you configure. -If the worker falls below the storage threshold, or if it runs out of local disk space, it may impact your ability to record sessions. -Refer to [Local storage](/boundary/docs/session-recording/configuration/configure-worker-storage#local-storage) for more information about configuring storage capacity and the possible storage states. - -When you estimate storage requirements for the external storage provider, you should also consider your [storage policy](/boundary/docs/domain-model/storage-policy) and how long a BSR will be retained in the external storage bucket. - - - -Boundary supports recorded session files up to 5 GB in size. -If a recorded session file is over 5 GB, the session details show the recording state as `Failed` and you may not be able to play back the session. -Be careful when you use Secure File Copy (SCP) to transfer large files during a recorded session because it can result in large recorded session files. - - - -## asciicast - -When you view recorded sessions using the CLI or Admin UI, Boundary can convert the recording into other formats for playback. -Currently Boundary supports converting the recording of an individual SSH channel into an asciicast format to play back an interactive SSH session. - -Refer to the [asciinema documentation](https://docs.asciinema.org/) for more information about the [asciicast](https://docs.asciinema.org/manual/asciicast/v3/) format. - -### Limitations - -The asciicast format is well suited for the playback of interactive shell activity. -However, some aspects of the recording cannot be translated into asciicast. -For example, if an SSH session uses the `RemoteCommand` option, or is used to `exec` a command, the command is not displayed in the asciicast. -The output of the command may be displayed, though. - -If you use SSH for something other than an interactive shell, such as for file transfer, X11 forwarding, or port forwarding, Boundary does not attempt to create an asciicast. -In all cases, the SSH session is still recorded in the BSR file and you can view the BSR file in the external storage bucket. - -### Security - -When a worker converts an SSH recording into the BSR file, it iterates through each of the requests in the recording and displays some of them to the user. -If you use an environment request to set the shell variable, the request is included in the asciicast header. -You should be aware of the following security concerns that could result from this behavior: - -- asciicast only includes the last value that you send in the header, any previous values are overwritten. -An attacker may be able to use a malicious shell value at the beginning of a session, and then switch to `shell=/bin/bash` at the end of the session to conceal the malicious activity. - -- asciicast does not display other variables such as `path` in the header, but they can cause drastic changes to code execution during the SSH session. -An attacker could change the `path` variable to point to a malicious program or change the beahvior of a normal program so that it performs a malicious action. - -- asciicast silently ignores any requests that do not have an explicit handler, even though they may cause signficant changes to code execution during the SSH session. -An attacker could execute malicious code using a request without an explicit handler. - -## Session recording audit events - -Boundary emits audit events for actions performed by users. Here are **some** of the possible event field types that are emitted: - -- `timestamp` - The timestamp of the event -- `auth` - Authentication information about the user who performed the action. -- `response.details.item.connection_recordings.` - - `id` - Session recording ID. - - `channel_recordings.id` - Session recording channel ID. - - `start_time.seconds` - Start time of session recording. - - `end_time.seconds` - End time of session recording. - - `bytes_up` - Upload bytes during session. - - `bytes_down` - Download bytes during session. - - `channel_recordings.duration.seconds`- Length of time a session took, recorded in seconds. -- `request_info.client_ip` - The client IP address used by the user. -- `response.details.item.create_time_values.` - - `target.name` - The name of the targets. - - `target.id` - The ID of the target accessed during the recording. - - `target.type` - The type of protocol used. - - `target.scope.name` - Name of the scope the target accessed belongs to. - - `target.scope.parent_scope_id` - Parent ID of the scope the target accessed belongs to. -- `response.details.item.Attrs.SshTargetAttributes.` - - `storage_bucket_id.value` - Storage bucket ID attached to a target that is used for storing session recordings. - - `enable_session_recording.value` - Determines if session recording is enabled on a target. - -## Next steps - -To enable session recording, you must: - -1. [Configure workers for local storage](/boundary/docs/session-recording/configuration/configure-worker-storage) -1. Configure an external storage provider: - - [Amazon S3](/boundary/docs/session-recording/configuration/storage-providers/configure-s3) - - [MinIO](/boundary/docs/session-recording/configuration/storage-providers/configure-minio) - - [S3-compliant](/boundary/docs/session-recording/configuration/storage-providers/configure-s3-compliant) -1. [Create a storage bucket](/boundary/docs/session-recording/configuration/create-storage-bucket) -1. [Enable session recording on a target](/boundary/docs/session-recording/configuration/enable-session-recording) - -Once you enable session recording, you can [Find and view recorded sessions](/boundary/docs/session-recording/configuration/manage-recorded-sessions). - -### Implement session recording compliance standards - -After enabling session recording, you can configure retention policies for recorded sessions or validate the recorded data: - -- [Configure storage policies](/boundary/docs/session-recording/compliance/configure-storage-policy) -- [Update storage policies](/boundary/docs/session-recording/compliance/update-storage-policy) -- [Validate recorded sessions](/boundary/docs/session-recording/compliance/validate-session-recordings) -- [Validate external data store](/boundary/docs/session-recording/compliance/validate-data-store) - -### Work with BSR data files - -For more information about working with BSR files, refer to the following topics: - -- [BSR file data structure](/boundary/docs/session-recording/data/bsr-file-structure) -- [Read a BSR file](/boundary/docs/session-recording/data/read-bsr-file) diff --git a/website/content/docs/targets/configuration/configure-transparent-sessions.mdx b/website/content/docs/targets/configuration/configure-transparent-sessions.mdx deleted file mode 100644 index 3e05007f0..000000000 --- a/website/content/docs/targets/configuration/configure-transparent-sessions.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -layout: docs -page_title: Configure transparent sessions -description: >- - Learn how to configure transparent sessions to enhance end-user workflows and simplify target access. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure transparent sessions - -@include 'alerts/enterprise-only.mdx' - -Transparent sessions shift Boundary from an active connection model to a passive connection model. Boundary operates in the background instead of requiring you to remember specific resource IDs or ephemeral ports to connect to targets. - -As long as Boundary authenticates a user and the user is authorized to access the target, Boundary intercepts the DNS call and routes traffic through a session automatically. - -Transparent sessions require [aliases](/boundary/docs/targets/configuration) and the [Boundary Client Agent](/boundary/docs/client-agent). - -The Boundary Desktop client facilitates quick target discovery and session establishment using your preferred client. If you configure aliases for your targets, install the Boundary Client Agent, and ensure you are authenticated to the cluster, connections are transparent to the user. Boundary provides OS notifications to make it clear when you connect to a target using a transparent session. - -Boundary supports Windows and MacOS for transparent sessions. - -## Requirements - -Before you configure transparent sessions, you must: - -- Ensure that any previous versions of the Boundary Desktop or CLI client in your local environment are fully uninstalled before you install the Boundary clients using the latest Boundary installer. -- Download the appropriate Boundary installer for your Windows or MacOS environment from the [Install Boundary](/boundary/install#installer) page or the [releases](https://releases.hashicorp.com/boundary-installer) page. -- Install the Boundary Client Agent, CLI, and Desktop client. - - Refer to [Install the Boundary clients](/boundary/docs/deploy/self-managed/install-clients) for instructions. - - Refer to the [transparent sessions interoperability matrix](/boundary/docs/interoperability-matrix) for a list of third-party products that have been tested for use with the Boundary installer and Client Agent. -- Ensure that both IPv4 and IPv6 protocols are enabled for your environment. The [Client Agent](/boundary/docs/client-agent) requires both protocols to start and perform DNS lookups. - -You should also make sure you have the appropriate grants configured so that you can resolve aliases and establish transparent sessions. -For more information, refer to the [Grants](/boundary/docs/client-agent#grants) section in the Client Agent documentation. - - - -A known issue regarding how grants were previously created in HCP Boundary may cause you to receive a 500 error when you attempt to list resolvable aliases. -Clusters created before April 26, 2025 may be missing the following grants: - -`ids={{.User.Id}};type=user;actions=list-resolvable-aliases` - -`ids=*;type=target;actions=list,read` - -If your cluster is missing these grants, HashiCorp recommends adding them. - -For more information, refer to the [known issue](/boundary/docs/release-notes/v0_19_0#hcp-grants). - - - -## Configure targets - -The following section details how to configure targets to use transparent sessions. - - - -If you use a cluster that was created earlier than release 0.16.0, you must add the grant `list-resolvable-aliases` so that the client agent can populate the local alias cache. - -As an example, you could add the grant: - -`type=user;actions=list-resolvable-aliases;ids=*`. - -For more information, refer to the [Grants](/boundary/docs/client-agent#grants) section in the Client Agent documentation. - - - -Complete the following steps to configure targets: - -1. Authenticate to Boundary using the CLI or Desktop client. -1. [Create a new target with an alias](/boundary/docs/targets/configuration/create-target-alias#create-an-alias-during-target-creation) or [create an alias for an existing target](/boundary/docs/targets/configuration/create-target-alias#create-an-alias-for-an-existing-target). -Ensure that you have authorization to establish a session to the target. - -## Next steps - -Open the client of your choice and [connect to your target using the alias](/boundary/docs/targets/connections/transparent-sessions). - -## More information - -Refer to [Troubleshoot issues with the Client Agent](/boundary/docs/client-agent/troubleshoot) for a list of [known issues](/boundary/docs/client-agent/troubleshoot#transparent-sessions-known-issues) involving transparent sessions. diff --git a/website/content/docs/targets/configuration/create-target-alias.mdx b/website/content/docs/targets/configuration/create-target-alias.mdx deleted file mode 100644 index efe4470ee..000000000 --- a/website/content/docs/targets/configuration/create-target-alias.mdx +++ /dev/null @@ -1,710 +0,0 @@ ---- -layout: docs -page_title: Create target aliases -description: >- - Learn how to create a target alias for an existing target, or assign one during target creation. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Create target aliases - -An alias is a globally unique, DNS-like string that is associated with a destination resource. You can establish a session to a target by referencing its alias, instead of having to provide a target ID or target name and scope ID. - -For more information about aliases, including naming conventions and best practices, refer to [Overview of aliases](/boundary/docs/targets/configuration). - -You can create aliases and associate them with targets using the following methods: - -- [Create an alias for an existing target](#create-an-alias-for-an-existing-target) -- [Create an alias during target creation](#create-an-alias-during-target-creation) -- [Associate an existing alias with a target](#associate-an-existing-alias-with-a-target) -- [Create multiple target aliases: An example](#create-multiple-aliases-for-a-single-target) - -## Create an alias for an existing target - -You can create a new alias and associate it with an existing target at the same time. - -When you create the target alias, you can choose from the following methods: - -- Create the alias without adding a target -- Create the alias for one or more targets -- Create the alias with an optional host ID - -Complete the following steps to create a new alias and associate it with a target: - - - - -1. Log in to Boundary. -1. Select **Aliases** in the navigation pane. -1. Click **New Alias**. -1. Complete the following fields: - - **Name**: (Optional) Enter an optional name for the alias to use for identification purposes. - - **Description**: (Optional) Enter an optional description for the alias to use for identification purposes. - - **Type**: Select **Target**. - At this time, targets are the only Boundary resources that supports aliasing. - - **Alias Value**: Enter the string that you want to use as the alias to represent the target. - An alias's value can be a hostname or a DNS-like string. - - **Target ID**: (Optional) Specify any targets you want to associate with the alias. - - **Host ID**: (Optional) Enter an optional host ID, if you would like to specify that the alias always uses the same host when you use it to connect to a target. -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create an alias: - - ```shell-session - $ boundary aliases create target \ - -description 'This is an example alias for target tcp_1234567890' \ - -destination-id tcp_1234567890 \ - -name Example Boundary alias \ - -scope-id global \ - -value example.alias.boundary \ - -authorize-session-host-id hst_1234567890 - ``` - - You can use any of the following [attributes](/boundary/docs/domain-model/aliases) when you create an alias: - - - `-description=` - Specifies the optional description you want to use for identification purposes. - - `-destination-id=` - Specifies the ID of the target that the alias references. - - `-name=` - Specifies the optional name you want to use to describe the alias for identification purposes. - - `-scope-id=` - Scope in which to create the alias. The default is `global`. - You can also specify the scope using the BOUNDARY_SCOPE_ID environment variable. - At this time, aliases are only supported for the global scope. - - `-value=` - Specifies the string that you want to use as the alias to represent the target. - The alias `value` can be a hostname or a DNS-like string. - - `-authorize-session-host-id=` - Optionally indicates the host ID to use when you use the alias to authorize a session. - - - - -Apply the following Terraform policy to create target alias `example.bar.foo.boundary` for an existing target `foo_target` and host `bar_host`: - -```hcl -resource "boundary_alias_target" "example_alias_target" { - name = "example_alias_target" - description = "Example alias to target foo using host boundary_host_static.bar_host" - scope_id = "global" - value = "example.bar.foo.boundary" - destination_id = boundary_target.foo_target.id - authorize_session_host_id = boundary_host_static.bar_host.id -} -``` - - - - -## Create an alias during target creation - -You can create a new target and new alias at the same time and associate the two. - -Complete the following steps to create a new target and new alias at the same time: - - - - -1. Log in to Boundary. -1. Select **Targets** in the navigation pane. -1. Click **New Target**. -1. Complete the following fields: - - **Name**: Enter the target name for identification purposes. - - **Description**: (Optional) Enter an optional description for identification purposes. - - **Type**: Select the target type. - You can create RDP, SSH, or TCP targets. - - **Target Address**: (Optional) Enter a valid IP address or DNS name. - Alternatively, you can configure host catalogs and host sets. - - If you set a target address for RDP targets that use Kerberos authentication, use the target's hostname and append the domain to it, for example `target-hostname.mydomain.com`. For RDP targets that use NTLM authentication, set the target address to the target's IP address. - - **Default Port**: (Optional) Enter an optional default port for the target to use for connections. - - **Default Client Port**: (Optional) Enter an optional local proxy port on which to listen when a session is started on a client. - - **Maximum Duration**: (Required) Enter a maximum duration for sessions on this target, in seconds. - If you do not enter a value, Boundary uses the default of 8 hours (28,800 seconds). - - **Maximum Connection**: (Optional) Enter the maximum number of connections allowed per session on this target. - For unlimited connections, enter `-1`. - - **Workers**: (Optional) Select whether you want the worker to function as an ingress and/or egress worker. - - **Aliases**: (Optional) Enter the value fpr any aliases you want to associate with this target, and then click **Add**. - An alias's value can be a hostname or a DNS-like string. - You can associate multiple aliases with a target. -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create a target: - - ```shell-session - $ boundary targets create ssh \ - -description 'This is an example ssh target' \ - -name Example Boundary SSH target \ - -scope-id global \ - -with-alias-authorize-session-host-id hst_1234567890 \ - -with-alias-scope-id global \ - -with-alias-value example.alias.boundary - ``` - - You can use any of the following [attributes](/boundary/docs/domain-model/targets) when you create a target: - - - `description` - (optional) - An optional description that you can use for identification purposes. - - `name` - (required) - The `name` must be unique within the target's project. - - `scope-id` - (required) - The scope in which to create the target. - The default is `global`. - You can also specify the scope using the BOUNDARY_SCOPE_ID environment variable. - - `-address=` - An optional valid network address for the target to connect to. - You cannot use an address alongside host sources. - - If you set a target address for RDP targets that use Kerberos authentication, use the target's hostname and append the domain to it, for example `target-hostname.mydomain.com`. For RDP targets that use NTLM authentication, set the target address to the target's IP address. - - `-default-client-port=` - The default client port on the target. - - `-default-port=` - The default port on the target. - If you do not specify a default port, Boundary uses port 22. - - `-egress-worker-filter=` - A Boolean expression that filters which egress workers can process sessions for the target. - - `-enable-session-recording=` - A Boolean expression you can use to enable session recording for the target. - - `-ingress-worker-filter=` - A Boolean expression that filters which ingress workers can process sessions for the target. - - `-session-connection-limit=` - The maximum number of connections allowed for a session. -A value of `-1` means the connections are unlimited. - - `-session-max-seconds=` - The maximum lifetime of the session, including all connections. - You can specify an integer number of seconds or a duration string. - - `-storage-bucket-id=` - The public ID of the storage bucket to associate with the target. - - `-with-alias-authorize-session-host-id=` - The host ID that an alias uses to authorize sessions for the target. - - `-with-aliasscope-id=` - The scope ID that you want to create the target and alias in. - The default is `global`. - At this time, aliases are only supported for the global scope. - - `-with-alias-value=` - The value of the alias that you want to use to represent the target. - Use this parameter to create the alias and target, and associate them with each other, at the same time. - - You can create RDP, SSH, or TCP [target types](/boundary/docs/domain-model/targets#target-types). - The example command in this section creates an SSH target. - - - - -Apply the following Terraform policy to create the following: - -- A static host catalog `test_catalog` in `boundary_scope.project` (not shown) containing static host set `test_set`. -- A host `foo` belonging to `test_set`. -- A host `bar` belonging to `test_set`. -- A target `foo_target` using `foo_set` as its host source. -- A target alias `example.bar.foo.boundary` for `foo_target` that always uses `bar_host` to connect. - -```hcl -resource "boundary_host_catalog_static" "foo_catalog" { - name = "foo_catalog" - description = "test catalog" - scope_id = boundary_scope.project.id -} - -resource "boundary_host_static" "foo_host" { - name = "foo_host" - host_catalog_id = boundary_host_catalog_static.foo.id - address = "10.0.0.1" -} - -resource "boundary_host_static" "bar_host" { - name = "bar_host" - host_catalog_id = boundary_host_catalog_static.foo.id - address = "127.0.0.1" -} - -resource "boundary_host_set_static" "foo_set" { - name = "foo_set" - host_catalog_id = boundary_host_catalog_static.foo_catalog.id - - host_ids = [ - boundary_host_static.foo_host.id, - boundary_host_static.bar_host.id, - ] -} - -resource "boundary_target" "foo_target" { - name = "foo" - description = "Foo target" - type = "tcp" - default_port = "22" - scope_id = boundary_scope.project.id - host_source_ids = [ - boundary_host_set_static.foo_set.id, - ] -} - -resource "boundary_alias_target" "example_alias_target" { - name = "example_alias_target" - description = "Example alias to target foo using host boundary_host_static.bar_host" - scope_id = "global" - value = "example.bar.foo.boundary" - destination_id = boundary_target.foo_target.id - authorize_session_host_id = boundary_host_static.bar_host.id -} -``` - - - - -## Associate an existing alias with a target - -If you [created an alias](#create-an-alias-for-an-existing-target) without associating it with a target, you can update it with an existing target at a later time. Complete the following steps to add an alias to a target: - - - - -1. Log in to Boundary. -1. Select **Targets** in the navigation pane. -1. Select the target you want to add an alias to. -1. Under the **Aliases** heading in the right sidebar, click **Add an alias**. -1. Complete the following fields: - - **Name**: (Optional) Enter an optional name for the alias to use for identification purposes. - - **Description**: (Optional) Enter an optional description for the alias to use for identification purposes. - - **Type**: Select **Target**. - At this time, targets are the only Boundary resources that supports aliasing. - - **Alias Value**: Enter the alias value you want to use in commands to represent the target. - An alias's value can be a hostname or a DNS-like string. - - **Target ID**: This field contains the ID of the target you selected to add an alias to. - It is read only. - - **Host ID**: (Optional) Enter an optional host ID, if you would like to specify that the alias always uses the same host when you use it to connect to a target. -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create an alias: - - ```shell-session - $ boundary aliases update target \ - -destination-id tcp_1234567890 \ - -id alt_1234567890 \ - -authorize-session-host-id hst_1234567890 - ``` - - You can use any of the following [attributes](/boundary/docs/domain-model/aliases) when you update an alias: - - - `-description=` - Specifies the optional description you want to use for identification purposes. - - `-destination-id=` - Specifies the ID of the target that the alias references. - - `id=` - Specifies the ID of the alias you want to update. - - `-name=` - Specifies the optional name you want to use to describe the alias for identification purposes. - - `-scope-id=` - Scope in which to create the alias. The default is `global`. - You can also specify the scope using the BOUNDARY_SCOPE_ID environment variable. - At this time, aliases are only supported for the global scope. - - `-value=` - Specifies the string that you want to use as the alias to represent the target. - The alias `value` must comply with DNS naming rules. - - `-authorize-session-host-id=` - Optionally indicates the host ID to use when you use the alias to authorize a session. - - - - -If you created a `boundary_alias_target` resource without setting a `destination_id` attribute, update the `destination_id` and reapply the following policy: - -```hcl -resource "boundary_alias_target" "example_alias_target" { - name = "example_alias_target" - description = "Example alias to target foo using host boundary_host_static.bar_host" - scope_id = "global" - value = "example.bar.foo.boundary" - destination_id = boundary_target.foo_target.id - authorize_session_host_id = boundary_host_static.bar_host.id -} -``` - - - - -## Create multiple aliases for a single target - -Target aliases point directly to the target they are associated with. You can assign targets a host set or a direct target address. - -[Host sets](/boundary/docs/domain-model/host-sets) are sets of functionally equivalent hosts, and are commonly used for deployments at scale. When Boundary authorizes a session, a target assigned a host set will select a host from the host set at random to use for all connections for the session. - -You assign [direct target addresses](/boundary/docs/domain-model/targets#address) directly to the target. They refer to a specific network resource, like an IP address. Boundary only connects to the direct target address when it establishes a connection to the associated target. - - - -If you set a target address for RDP targets that use Kerberos authentication, use the target's hostname and append the domain to it, for example `target-hostname.mydomain.com`. For RDP targets that use NTLM authentication, set the target address to the target's IP address. - - - -When you create a target alias, you can also assign it to a specific host. Assigning an alias to a specific host is useful if you want to avoid creating multiple targets for specific hosts using direct target addresses. - -For example, you could create two aliases for the same target that has been assigned a host set. One alias could refer to the target itself, and would allow Boundary to randomly select a host to connect to for a session. Another alias could point to the same target, but you could assign a host ID that Boundary should use for a session. - -### Example - -You may want to create aliases that point to the same target, but that specify which host Boundary should use when it establishes a session. - -In this example, you set up three aliases for the same target: - -1. A target alias without a host specified -1. A target alias with a host ID specified -1. A target alias with a different host ID specified - - - - This example uses SSH target types, which are only available in HCP Boundary and Boundary Enterprise. This process also works for any other target type, including the TCP target type available in Boundary Community Edition. - - - -For this example, assume that the following scopes exist: - -- Org: `engineering`, ID `o_2drCWvp3Oc` -- Project: `app-servers`, ID `p_3ECODJDbXV` - -And the following host set and hosts exist: - -- Host set: `linux-dev-servers`, ID `hsst_56oiL0WaKu` -- Host: `dev-040`, ID `hst_7wGXkF8e0Q` -- Host: `dev-041`, ID `hst_zlRwMMPKwp` - -Because the `linux-dev-servers` hosts are functionally equivalent, you can create a single target for the host set, and create an alias for the target. - -We recommend creating DNS-like aliases to ensure consistent naming conventions. In this example, an alias pattern might be: - -`hostname.host-set.project.org` - -For the `linux-dev-servers` target, create the alias `linux-dev.app-servers.eng`. - - - - -Create the `linux-dev-servers` target. - -1. Log in to Boundary. -1. Select the 'engineering' org and the `app-servers` project. -1. Select **Targets** in the navigation pane. -1. Click **New Target**. -1. Complete the following fields: - - **Name**: `linux-dev-servers` - - **Description**: `linux-dev.app-servers.eng target` - - **Type**: SSH - - **Default Port**: `22` - - **Aliases**: `linux-dev.app-servers.eng` -1. Click **Save**. - -Then add the `linux-dev-servers` host set to the new `linux-dev-servers` target. - -1. Click on the **Host Sources** tab. -1. Click **Add Host Sources**. -1. Select the `linux-dev-servers` host set. -1. Click **Add Host Sources**. - - - - -Create the `linux-dev-servers` target. - -1. Log in to Boundary. -1. Use the following command to create the `linux-dev-servers` target with alias `linux-dev.app-servers.eng`: - - ```shell-session - $ boundary targets create ssh \ - -description 'linux-dev.app-servers.eng target' \ - -name linux-dev-servers \ - -scope-id p_3ECODJDbXV \ - -default-port 22 \ - -with-alias-scope-id global \ - -with-alias-value linux-dev.app-servers.eng - ``` - - Example output: - - - - ```shell-session - $ boundary targets create ssh \ - -description 'linux-dev.app-servers.eng target' \ - -name linux-dev-servers \ - -scope-id p_pj6UUPVJT3 \ - -default-port 22 \ - -with-alias-scope-id global \ - -with-alias-value linux-dev.app-servers.eng - - Target information: - Created Time: Thu, 14 Nov 2024 13:39:36 MST - Description: linux-dev.app-servers.eng target - ID: tssh_lhH5pa425G - Name: linux-dev-servers - Session Connection Limit: -1 - Session Max Seconds: 28800 - Type: ssh - Updated Time: Thu, 14 Nov 2024 13:39:36 MST - Version: 1 - - Scope: - ID: p_3ECODJDbXV - Name: app-servers - Parent Scope ID: o_2drCWvp3Oc - Type: project - - Authorized Actions: - remove-host-sources - remove-credential-sources - authorize-session - delete - set-credential-sources - no-op - read - update - add-host-sources - set-host-sources - add-credential-sources - - Aliases: - ID: alt_CkC6wGKLWW - Value: linux-dev.app-servers.eng - - Attributes: - Default Port: 22 - Enable Session Recording: false - ``` - - - -Then add the `linux-dev-servers` host set (ID `hsst_56oiL0WaKu`) to the new `linux-dev-servers` target (ID `tssh_lhH5pa425G`). - -```shell-session -$ boundary targets add-host-sources -id tssh_lhH5pa425G -host-sourchsst_56oiL0WaKu -``` - - - - - - - In the following examples, Terraform resources are named with underscores instead of dashes, such as `linux_dev_servers`. The target alias values use dashes, such as `dev-041.linux-dev.app-servers.eng`. You do not need to follow these naming conventions. - - - -Create the `linux_dev_servers` SSH target, with `scope_id` set to `app_servers` and the host source `linux_dev_servers` (these resources are not shown): - -```hcl -resource "boundary_target" "linux_dev_servers" { - name = "linux_dev_servers" - description = "linux_dev_servers target" - type = "ssh" - default_port = "22" - scope_id = boundary_scope.app_servers.id - host_source_ids = [ - boundary_host_set_static.linux_dev_servers.id, - ] -} -``` - - - - -Next, create two more aliases for the target. - -Create the `dev-040.linux-dev.app-servers.eng` alias for the host `dev-040`: - - - - -1. Log in to Boundary. Navigate to the `global` scope. -1. Select **Aliases** in the navigation pane. -1. Click **New Alias**. -1. Complete the following fields: - - **Name**: `dev-040` - - **Description**: `Target alias for dev-040.linux-dev.app-servers.eng` - - **Type**: `Target` - - **Alias Value**: `dev-040.linux-dev.app-servers.eng` - - **Target ID**: `tssh_lhH5pa425G` - - **Host ID**: `hst_7wGXkF8e0Q` -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create an alias for host `dev-040: - - ```shell-session - $ boundary aliases create target \ - -description 'Target alias for dev-040.linux-dev.app-servers.eng' \ - -destination-id tssh_lhH5pa425G \ - -name dev-040 \ - -scope-id global \ - -value dev-040.linux-dev.app-servers.eng \ - -authorize-session-host-id hst_7wGXkF8e0Q - ``` - - Example output: - - - - ```shell-session - $ boundary aliases create target \ - -description 'Target alias for dev-040.linux-dev.app-servers.eng' \ - -destination-id tssh_lhH5pa425G \ - -name dev-040 \ - -scope-id global \ - -value dev-040.linux-dev.app-servers.eng \ - -authorize-session-host-id hst_7wGXkF8e0Q - - Alias information: - Created Time: Thu, 14 Nov 2024 13:55:41 MST - Description: Target alias for dev-040.linux-dev.app-servers.eng - Destination ID: tssh_lhH5pa425G - ID: alt_QeCGTcvlq2 - Name: dev-040 - Type: target - Updated Time: Thu, 14 Nov 2024 13:55:41 MST - Value: dev-040.linux-dev.app-servers.eng - Version: 1 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - - Attributes: - authorize_session_arguments: - { - "host_id": "hst_7wGXkF8e0Q" - } - ``` - - - - - - -```hcl -resource "boundary_alias_target" "dev_040" { - name = "dev_040" - description = "Example alias for target linux_dev_servers using host dev_040" - scope_id = "global" - value = "dev-040.linux-dev.app-servers.eng" - destination_id = boundary_target.linux_dev_servers.id - authorize_session_host_id = boundary_host_static.dev_040.id -} -``` - - - - -Then create the `dev-041.linux-dev.app-servers.eng` alias for the host `dev-041`. - - - - -1. Log in to Boundary. Navigate to the `global` scope. -1. Select **Aliases** in the navigation pane. -1. Click **New Alias**. -1. Complete the following fields: - - **Name**: `dev-041` - - **Description**: `Target alias for dev-041.linux-dev.app-servers.eng` - - **Type**: `Target` - - **Alias Value**: `dev-041.linux-dev.app-servers.eng` - - **Target ID**: `tssh_lhH5pa425G` - - **Host ID**: `hst_7wGXkF8e0Q` -1. Click **Save**. - - - - -1. Log in to Boundary. -1. Use the following command to create an alias for host `dev-041`: - - ```shell-session - $ boundary aliases create target \ - -description 'Target alias for dev-041.linux-dev.app-servers.eng' \ - -destination-id tssh_lhH5pa425G \ - -name dev-041 \ - -scope-id global \ - -value dev-041.linux-dev.app-servers.eng \ - -authorize-session-host-id hst_zlRwMMPKwp - ``` - - Example output: - - - - ```shell-session - $ boundary aliases create target \ - -description 'Target alias for dev-041.linux-dev.app-servers.eng' \ - -destination-id tssh_lhH5pa425G \ - -name dev-041 \ - -scope-id global \ - -value dev-041.linux-dev.app-servers.eng \ - -authorize-session-host-id hst_zlRwMMPKwp - - Alias information: - Created Time: Thu, 14 Nov 2024 14:00:13 MST - Description: Target alias for dev-040.linux-dev.app-servers.eng - Destination ID: tssh_lhH5pa425G - ID: alt_X5MRXRSi7t - Name: dev-041 - Type: target - Updated Time: Thu, 14 Nov 2024 14:00:13 MST - Value: dev-041.linux-dev.app-servers.eng - Version: 1 - - Scope: - ID: global - Name: global - Type: global - - Authorized Actions: - no-op - read - update - delete - - Attributes: - authorize_session_arguments: - { - "host_id": "hst_zlRwMMPKwp" - } - ``` - - - - - - -```hcl -resource "boundary_alias_target" "dev_041" { - name = "dev_040" - description = "Example alias for target linux_dev_servers using host dev_040" - scope_id = "global" - value = "dev-041.linux-dev.app-servers.eng" - destination_id = boundary_target.linux_dev_servers.id - authorize_session_host_id = boundary_host_static.dev_041.id -} -``` - - - - -You can now use the aliases to connect to the targets in different contexts. - -The Boundary Desktop Client lists the `linux-dev-servers` target and its aliases under the **Aliases** column. - -When you click **Connect**, a list of the hosts available for the connection appears in the **Quick Connect** box. - -To establish a connection to any `linux-dev` host using the CLI, use the `linux-dev.app-servers.eng` alias: - -```shell-session -$ boundary connect ssh linux-dev.app-servers.eng -``` - -This command randomly selects a host from the `linux-dev-servers` host set attached to the `linux-dev-servers` target. - -To establish a connection to a specific host, connect to its target alias instead: - -```shell-session -$ boundary connect ssh dev-041.linux-dev.app-servers.eng -``` - -This alias still points to the `linux-dev-servers` target, but will only create a session with the `dev-041` host. \ No newline at end of file diff --git a/website/content/docs/targets/configuration/index.mdx b/website/content/docs/targets/configuration/index.mdx deleted file mode 100644 index e9cb1acb0..000000000 --- a/website/content/docs/targets/configuration/index.mdx +++ /dev/null @@ -1,88 +0,0 @@ ---- -layout: docs -page_title: Overview -description: >- - Learn how to configure aliases and transparent sessions to enhance end-user workflows and simplify target access. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Overview of aliases - -Target aliases simplify the connection workflow for end users by allowing them to reference targets using a globally unique DNS-like string. - -Without aliases, connecting to an end target requires you to reference the target ID, or a combination of target name and scope: - -```shell-session -$ boundary connect ssh -target-id ttcp_1234567890 -``` - -```shell-session -$ boundary connect ssh -target-name sql-database -target-scope-name -staging -``` - -With target aliases, a single globally referenced value is assigned to a target, simplifying connection workflows and enabling transparent sessions for Enterprise and HCP end users. - -```shell-session -$ boundary connect ssh sql-database-staging -``` - -## Permissions - -The existence of an alias for a Boundary resource does not change how permissions function. Anyone can attempt to use an alias to access a target, but if you do not have permission to access the target, the attempt fails. You can create an alias for a target, even if you do not have permission to access the target. - -Separating the permissions from aliases and destination resources means a different set of people can manage the aliases than the people who have permission to operate on targets. For example, you may have a project with a sensitive set of targets. You can configure Boundary to allow a select few users to manage those targets, while a different group of users manage the aliases. - -## Naming conventions - -An alias is a globally unique, DNS-like string that is associated with a destination resource. The alias `value` parameter does not have to be delimited by a suffix, and can be just a hostname. - -Examples of valid aliases include `database.boundary` and `webserver.boundary`. - -### Single word aliases and transparent sessions - -HashiCorp recommends that you do not use single-word aliases such as `webserver` as opposed to `webserver.boundary`, because single-word aliases do not work intuitively on Windows. - -Windows DNS resolution does not support resolving unqualified single word DNS hostnames. You can make the hostname fully qualified, but is not intuitive to most users. - -For example the following hostname works: - -``` -ssh mytarget. -``` - -But this hostname does not work: - -``` -ssh mytarget -``` - -For this reason, if you expect any Windows users to use an alias, it should contain a dot (`.`) anywhere in the value. - -Refer to the [transparent sessions](/boundary/docs/concepts/transparent-sessions) documentation for more information. - -### HTTPS websites - -If you create an alias for a website that uses HTTPS, the alias must match the website's hostname. -You may receive connection errors if the alias does not match the website's hostname exactly. - -For example, if you want to create an alias to connect to https://www.hashicorp.com, you must name the alias `www.hashicorp.com`. - -## Scopes - -You can only create aliases in the `global` scope. However, you can associate aliases with targets or hosts from any scope. Support for additional resource types may be added in the future. - -If you delete a project, Boundary clears the `destination_id` parameter for any aliases that resolve to targets in that project, so that they no longer function. - -Refer to the [Create target aliases](/boundary/docs/targets/configuration/create-target-alias) pages to learn more. - -## Next steps - -To use target aliases to connect to targets: - -1. [Create a target alias](/boundary/docs/targets/configuration/create-target-alias) -1. [Connect to a target using an alias](/boundary/docs/targets/connections/connect-target-alias) -1. After you set up a target alias, you can optionally [Configure transparent sessions for end users](/boundary/docs/targets/configuration/configure-transparent-sessions). HCP/ENT \ No newline at end of file diff --git a/website/content/docs/targets/connections/connect-helpers.mdx b/website/content/docs/targets/connections/connect-helpers.mdx deleted file mode 100644 index edcb88a5e..000000000 --- a/website/content/docs/targets/connections/connect-helpers.mdx +++ /dev/null @@ -1,229 +0,0 @@ ---- -layout: docs -page_title: Connect helpers -description: >- - Learn how to use connect helpers to automatically accept host key prompts and facilitate connections for HTTP, Kubernetes, PostgreSQL, RDP, and SSH. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Connect helpers - -Boundary includes connect helpers that automatically accept host key prompts for you to help facilitate connections. -These are written as `boundary connect ` and are supported for the following connection types: - -- HTTP -- Kubernetes -- PostgreSQL -- RDP -- SSH - -If you want to pass additional flags to the client, you can add them to the command line separated by a double dash. -Boundary passes anything after the double dash to the executed client. -For example, the following command uses the SSH connect helper to pass `-l some-other-user` to the SSH client: - -```shell-session -$ boundary connect ssh -target-id ttcp_1234567890 -- -l some-other-user -``` - -Connect helpers also support a `-style` flag that lets you override the default client and format arguments in a different style. -For example, besides the default style `ssh`, the SSH connect helper supports a `-style putty` option that lets you pass connection information to PuTTY. - -One advantage to styles is that Boundary can provide information to the client in a format that makes sense. -For example, the `-username` flag is used to specify a username other than the currently logged-in user. -This ensures that regardless of the `-style` you choose, the username is properly passed to the executed client, and you don't have to figure out the syntax for yourself. - -## HTTP connect helper - -The HTTP connect helper executes `curl`, and passes information such as the HTTP path, method, and verb. -It can be useful to call API endpoints through the Boundary proxy. - -The following example calls a weather API endpoint to get the rain forecast for New York: - -```shell-session -$ boundary connect http -target-id ttcp_VlpkajEuuf -path '/v1/forecast?latitude=40.7143&longitude=-74.006&daily=precipitation_sum&timezone=America%2FNew_York' -``` - - - -The HTTP helper supports the following flags: - -- `host`: Specifies the host value to use, and overrides the endpoint address from the session information. -- `method`: Specifies the method to use. -If you do not set this value, the helper uses the client's default method. -- `path`: Specifies a path that Boundary appends to the generated URL. -- `scheme`: Specifies the scheme to use. -The default scheme is `https`. -- `style`: Specifies how the CLI attempts to invoke an HTTP client. -The only supported style for the HTTP helper is `curl`. - -For more information, refer to the [`connect http` command documenatation](/boundary/docs/commands/connect/http). - -## Kubernetes connect helper - -The Kubernetes connect helper executes `kubectl` by proxying the call through Boundary. -It can be useful to access a Kubernetes cluster that does not publicly expose its API server. -To pass subcommands to `kubectl`, use `--` followed by the command you want to pass. -The following example calls `kubectl top node`: - -```shell-session -$ boundary connect kube -target-id ttcp_Yq0QCUMSe2 -- top node -``` - - - -The Kubernetes helper supports the following flags: - -- `host`: Specifies the host value to use, and overrides the endpoint address from the session information. -- `scheme`: Specifies the scheme to use. -The default scheme is `https`. -- `style`: Specifies how the CLI attempts to invoke a Kubernetes client. -The only supported style for the Kubernetes helper is `kubectl`. - -For more information, refer to the [`connect kube` command documenatation](/boundary/docs/commands/connect/kube). - -## PostgreSQL connect helper - -The PostgreSQL helper executes `psql`, and passes information such as the username and database name from the command line. - -The following example connects to a PostgreSQL database named `boundary`: - -```shell-session -$ boundary connect postgres -target-id ttcp_eTcZMueUYv -username admin -dbname postgres -``` - - - -The PostgreSQL helper automatically injects brokered credentials, allowing you -to access the PostgreSQL instance without knowing the username and password. - -```shell-session -$ boundary connect postgres -target-id ttcp_eTcZMueUYv -dbname postgres -``` - - - -The PostgreSQL helper supports the following flags: - -- `dbname`: Specifies the database name you want to pass through to the client. -- `style`: Specifies how the CLI attempts to inovke a PostgreSQL client. -The only supported style for the PostgreSQL helper is `psql`. -- `username`: Specifies the username you want to pass through to the client. - -For more information, refer to the [`connect postgres` command documenatation](/boundary/docs/commands/connect/postgres). - -## RDP connect helper - -The RDP helper determines which RDP client to use depending on your operating system. -On Windows, it uses `mstsc.exe`. -On Mac, it uses `open`. -Other operating systems are not currently supported. - -The following command executes the RDP client and establishes the connection through Boundary: - -```shell-session -$ boundary connect rdp -target-id ttcp_eTcZMueUYv -``` - - - -The RDP helper supports the following flag: - -- `style`: Specifies how the CLI attempts to inovke an RDP client. -The RDP helper supports the styles `mstsc` and `open`. - -For more information, refer to the [`connect rdp` command documenatation](/boundary/docs/commands/connect/rdp). - -## SSH connect helper - -The SSH helper automatically executes SSH and passes connection information. -An expected host ID is set to avoid warnings on future connections when a different port is allocated automatically. -You must still accept a host key upon the first connection. - -The following command connects to a target and automatically fills in the local address and port: - -```shell-session -$ boundary connect ssh -target-id ttcp_1234567890 -``` - - - -The SSH helper supports the following flags: - -- `remote-command`: Specifies a command you want to run on the remote host. -You can specify a complete command line, or you may include additonal arguments. -If you include additional arguments, you must append them to the command and separate them using spaces. -- `style`: Specifies how the CLI attempts to inovke an SSH client. -The SSH helper supports the styles `ssh` and `putty`. -- `username`: Specifies the username you want to pass through to the client. - -For more information, refer to the [`connect ssh` command documenatation](/boundary/docs/commands/connect/ssh). \ No newline at end of file diff --git a/website/content/docs/targets/connections/connect-target-alias.mdx b/website/content/docs/targets/connections/connect-target-alias.mdx deleted file mode 100644 index 74692b369..000000000 --- a/website/content/docs/targets/connections/connect-target-alias.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: docs -page_title: Overview -description: >- - Learn how to connect to a target configured with an alias. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Connect to a target using an alias - -After you [Create a target alias](/boundary/docs/targets/configuration/create-target-alias), you can refer to the alias when you establish sessions. - -With aliases, you don't have to specify the target ID, target name, or scope when you connect with Boundary. Target aliases are also required to use [transparent sessions](/boundary/docs/concepts/transparent-sessions). - -You can substitute an alias whenever you could use the `-id` flag or `-target` flag in the CLI. - -For example, you can use the following command to connect to an SSH target with the ID `ttcp_1234567890`: - -```shell-session -$ boundary connect ssh -target -id ttcp_1234567890 -``` - -If you configured an alias named `example.alias.boundary` for the target, you can now use the alias to connect to the target: - -```shell-session -$ boundary connect ssh example.alias.boundary -``` - -Aliases are globally unique, so you don't need to specify the scope to connect to the target. - -After you verify that you can connect to the target using an alias, you can try to connect to the target using [transparent sessions](/boundary/docs/targets/configuration/configure-transparent-sessions). HCP/ENT \ No newline at end of file diff --git a/website/content/docs/targets/connections/exec-flag.mdx b/website/content/docs/targets/connections/exec-flag.mdx deleted file mode 100644 index 4d6704c1c..000000000 --- a/website/content/docs/targets/connections/exec-flag.mdx +++ /dev/null @@ -1,87 +0,0 @@ ---- -layout: docs -page_title: -exec flag -description: >- - Learn how to use the `-exec` flag to execute TCP sessions or pass flags using your preferred client. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Exec flag - -Boundary includes built-in connect helpers for clients, however, `boundary connect` can execute clients even when there is no built-in support for a specific client using the `-exec` flag. -The `-exec` flag lets you wrap Boundary TCP sessions in your preferred client. -You can use this flag to create an authenticated proxy to almost anything. - -When you use `-exec`, you can pass flags to the client by including them in the executed command after a double-dash `--`. -For example, the following command passes `-l myuser -i ~/.ssh/identity` to the PuTTY client: - -```shell-session -$ boundary connect ssh -style putty -exec putty.exe -target-id ttcp_1234567890 -- -l myuser -i ~/.ssh/identity -``` - -You can substitute the following templated values into the command arguments. -Boundary injects these values in the executed command as environment variables: - -- `{{boundary.ip}}` (`BOUNDARY_PROXIED_IP`): The IP address of the listening socket that `boundary connect` opened. -- `{{boundary.port}}` (`BOUNDARY_PROXIED_PORT`): The port of the listening socket that `boundary connect` has opened. -- `{{boundary.addr}}` (`BOUNDARY_PROXIED_ADDR`): The host:port format of the address. -This value is essentially equivalent to `{{boundary.ip}}:{{boundary.port}}`. - -For example, if you wanted to use Boundary to create an authenticated firewall -around `curl`, you could update the default TCP target from a default port -of `:22` to `:443` using the following command: - -```shell-session -$ boundary targets update tcp -default-port 443 -id ttcp_1234567890 - -Target information: - Address: 127.0.0.1 - Created Time: Fri, 25 Sep 2020 18:35:47 PDT - Description: Provides an initial target in Boundary - ID: ttcp_1234567890 - Name: Generated target - Session Connection Limit: 1 - Session Max Seconds: 28800 - Type: tcp - Updated Time: Fri, 25 Sep 2020 18:36:18 PDT - Version: 2 - - Scope: - ID: p_1234567890 - Name: Generated project scope - Parent Scope ID: o_1234567890 - Type: project - - Attributes: - Default Port: 443 -``` - -In the output above, the default port for the target has now changed to `:443`. - -Now, you can use `curl` as the client for a TCP target session. -For example, the following command uses `curl` to perform an authenticated download of hashicorp.com: - -```shell-session -$ boundary connect -exec curl -target-id ttcp_1234567890 \ - -- -vvsL --output /dev/null hashicorp.com - -* Trying 76.76.21.21... -* TCP_NODELAY set -* Connected to hashicorp.com (76.76.21.21) port 80 (#0) -> GET / HTTP/1.1 -> Host: hashicorp.com -> User-Agent: curl/7.64.1 -> Accept: */* -...... -``` - -Note that you can use `-exec` for subcommands that wrap clients as well. -As an example, if `putty.exe` is available on a Windows host but the command is being run from WSL, you could use the following command to specify the correct binary to use, since WSL must use `.exe` when it invokes Windows binaries: - -```shell-session -$ boundary connect ssh -style putty -exec putty.exe -target-id ttcp_1234567890 -``` \ No newline at end of file diff --git a/website/content/docs/targets/connections/index.mdx b/website/content/docs/targets/connections/index.mdx deleted file mode 100644 index 94324c225..000000000 --- a/website/content/docs/targets/connections/index.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -layout: docs -page_title: Connection workflows -description: >- - Learn how transparent sessions, connect helpers, the `-exec` flag, SSH ProxyCommand, and multi-hop sessions can help facilitate connections to targets. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Connection workflows - -This topic provides an overview of the possible workflows you may use to connect to targets with Boundary. - -## Boundary connect - -When you run the `boundary connect` command against a target, Boundary establishes a local authenticated proxy to the address on the target's default port. -The `boundary connect` command has a number of useful options, such as `-listen-port` which lets you choose the port on which the command listens for an incoming connection. -Refer to the [`boundary connect`](/boundary/docs/commands/connect) documentation for a list of the available options and usage examples. - -To practice using the `boundary connect` command in a development environment, refer to the **Connect to your first target** tutorial for either [HCP Boundary](/boundary/tutorials/hcp-getting-started/hcp-getting-started-connect) or the [self-managed versions](/boundary/tutorials/get-started-community/community-get-started-connect) of Boundary. - -## Transparent sessions - -@include 'alerts/enterprise-only.mdx' - -Transparent sessions shift Boundary from an active connection model to a passive connection model. -Instead of interacting with the Boundary CLI or Desktop client and having to remember specific IDs or ephemeral ports to connect to targets, Boundary operates in the background. -If a user is authenticated and authorized, Boundary intercepts DNS calls and routes traffic through a session automatically. - -Refer to the [transparent sessions](/boundary/docs/concepts/transparent-sessions) documentation for more information. - -## Connect helpers - -Boundary features connect helpers that assist with making connections to targets using certain protocols. -Connect helpers automatically accept key prompts for you. -They are supported for the following connection types: - -- HTTP -- Kubernetes -- PostgreSQL -- RDP -- SSH - -Refer to the [Connect helpers](/boundary/docs/targets/connections/connect-helpers) documentation for more information. - -## Exec flag - -In addition to the built-in connect helpers, `boundary connect` can accommodate executing clients even when there is no built-in support for a specific client using the `-exec` flag. -The `-exec` flag lets you wrap Boundary TCP sessions in your preferred client. -You can use this flag to create an authenticated proxy to almost anything. - -Refer to the [Exec flag](/boundary/docs/targets/connections/exec-flag) documentation for more information. - -## SSH ProxyCommand - -The most common pattern for using Boundary to SSH is with the built-in `boundary connect ssh` command. -However, there are more idiomatic 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. - -SSH `ProxyCommand` lets you proxy an SSH connection to a target according to a configuration file that you create. -You can configure the file to connect to the target ID or the target domain. - -Refer to the [SSH ProxyCommand](/boundary/docs/targets/connections/workflow-ssh-proxycommand) documentation for more information. - -## Multi-hop sessions - -@include 'alerts/enterprise-only.mdx' - -Most organizations want to provide access to infrastructure without exposing private networks. -Many organizations also have complex network topologies requiring inbound traffic to route through multiple network enclaves to reach the target system. -Multi-hop sessions allow you to chain together two or more workers across multiple networks to form reverse proxy connections between the user and the target, even in complex networks with strict outbound-only policies. - -You can deploy multi-hop workers in scenarios where inbound network traffic is -not allowed. -A worker in a private network can send outbound communication to its upstream worker, and create a reverse proxy to establish a session. - -You can configure target worker filters with multi-hop workers to allow for fine-grained control on which workers handle ingress and egress for session traffic to a target. -Ingress worker filters determine which workers you connect with to initiate a session, and egress worker filters determine which workers are used to access targets. - -Refer to the [Multi-hop sessions](/boundary/docs/workers/multi-hop) documentation for more information. \ No newline at end of file diff --git a/website/content/docs/targets/connections/transparent-sessions.mdx b/website/content/docs/targets/connections/transparent-sessions.mdx deleted file mode 100644 index d992a8185..000000000 --- a/website/content/docs/targets/connections/transparent-sessions.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: docs -page_title: Connect using transparent sessions -description: >- - Learn how to use transparent sessions to enhance end-user workflows and simplify target access. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Connect using transparent sessions - -@include 'alerts/enterprise-only.mdx' - -Transparent sessions shift Boundary from an active connection model to a passive connection model. Boundary operates in the background instead of requiring you to remember specific resource IDs or ephemeral ports to connect to targets. - -Transparent sessions require [aliases](/boundary/docs/targets/configuration) and the [Boundary Client Agent](/boundary/docs/client-agent). - -Boundary routes your session using the Boundary Client Agent. -You can validate that Boundary routed the session by looking at the **Sessions** page in the Desktop client, by typing `boundary sessions list -recursive` in the CLI, or by looking at sessions managed by the Client Agent using `boundary client-agent sessions`. - -## Requirements - -Before you begin, ensure that you have [configured transparent sessions](/boundary/docs/targets/configuration/configure-transparent-sessions) and [created aliases](/boundary/docs/targets/configuration/create-target-alias) for any targets you want to connect to. - -The Client Agent periodically requests an updated list of aliases from the controller, so the alias may not work immediately after you create it. -The alias should be updated in the Client Agent within 2 minutes. If you still see connection issues after 2 minutes, follow the troubleshooting steps in [the Client Agent troubleshooting guide](/boundary/docs/client-agent/troubleshoot). - -## Establish a transparent session - -Without transparent sessions, you must use the [Boundary connect helpers](/boundary/docs/targets/connections/connect-helpers) to establish a session: - -```shell-session -$ boundary connect ssh -target-name sql-database -target-scope-name -staging -``` - -Alternatively, you can use the Boundary Desktop Client to start a session, and connect on a local port supplied by Boundary: - -```shell-session -$ ssh 127.0.0.1 -p 55374 -``` - -With transparent sessions, you use the target alias as the address to establish a session. If the Client Agent is running and you have authenticated using the CLI or Boundary Desktop Client, you can use the alias to start a session: - -```shell-session -$ ssh my.alias.name -``` - -Boundary starts the session as usual, and brokers or injects any credentials you have configured. - -### RDP targets - -Due to a port conflict with the Windows Remote Desktop Connection app on modern Windows operating systems (Windows 11+, Windows Server 2025), transparent sessions fail when you use the default port (`3389`) to establish an RDP connection. -The port conflict is an issue even if you enable Remote Desktop. -To connect to an RDP target from a Windows client using a transparent session, you must use a custom port. -Refer to [RDP credential injection compatibility](/boundary/docs/credentials/rdp-testing-and-compatibility-matrix) for more information. - -When you connect to the RDP target using transparent sessions, you must specify the custom port with the alias in the RDP client, for example: - -`my.alias.name:33890` - -## Next steps - -When you have validated that transparent sessions work, you can create and establish transparent sessions to other services. - -To establish transparent sessions to other services: - -1. Make a list of the services you use. -1. Create workers as needed for network partitions. -1. Add the services to Boundary as targets. -1. [Create aliases for the targets](/boundary/docs/targets/configuration/create-target-alias). -1. Connect to the target using your client of choice. - -## More information - -Refer to [Troubleshoot issues with the Client Agent](/boundary/docs/client-agent/troubleshoot) for a list of [known issues](/boundary/docs/client-agent/troubleshoot#transparent-sessions-known-issues) involving transparent sessions. diff --git a/website/content/docs/targets/connections/workflow-ssh-proxycommand.mdx b/website/content/docs/targets/connections/workflow-ssh-proxycommand.mdx deleted file mode 100644 index 357c2608b..000000000 --- a/website/content/docs/targets/connections/workflow-ssh-proxycommand.mdx +++ /dev/null @@ -1,142 +0,0 @@ ---- -layout: docs -page_title: SSH ProxyCommand -description: >- - Learn how to use SSH ProxyCommand to proxy an SSH connection using a configuration file. Configure hosts using the target's ID or domain. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# SSH ProxyCommand - -SSH `ProxyCommand` lets you proxy an SSH connection to a target to simplify common developer and operator workflows. -For example, you can configure the `.ssh/ssh_config` file to connect to the target ID or the target domain. - -## Configure a host using target ID - -To use SSH `ProxyCommand`, you must configure a `Host` entry in `.ssh/ssh_config` for `localhost`. - -In the following example, `ProxyCommand` configures the SSH client to invoke `boundary connect`. - -The command passes the `-exec nc` flag to `boundary connect` to wrap [netcat](http://netcat.sourceforge.net/), and then pass the `boundary.ip` and `boundary.port` environment variables as arguments to `nc`. -This command allows you to proxy your SSH connection through a local netcat tunnel that's managed as a Boundary session: - - - -```bash -Host ttcp_* - ProxyCommand sh -c "boundary connect -target-id %n -exec nc -- {{boundary.ip}} {{boundary.port}}" -``` - - - -Using this configuration, if you run `ssh ttcp_1234567890` to connect to a target with the ID `ttcp_1234567890`, SSH invokes `boundary connect`, and tunnels the traffic through the local Boundary proxy in a wrapped netcat session. -Boundary passes the target ID to the `boundary` command as the hostname. - -Note that you must authenticate to Boundary before you can use `ssh` to invoke `boundary connect`. - -### SSH to target - -Once the command is configured, you can run `ssh` as you normally would and all the traffic is proxied over the Boundary proxy to your target machine: - -```bash -$ ssh ttcp_1234567890 -Password: -Last login: Thu Nov 19 10:32:09 2023 -➜ ~ -``` - -On the controller, you can see the session being invoked in the logs: - -```bash -controller.worker-handler: connection established: session_id=s_WkaQbqmrJx connection_id=sc_RDYNFFI2M4 client_tcp_address=127.0.0.1 client_tcp_port=57421 endpoint_tcp_address=::1 endpoint_tcp_port=22 -``` - -You can inspect the session on the CLI as well: - -```bash -$ boundary sessions read -id $(boundary sessions list -scope-id p_1234567890 -format json | jq '.[0]["id"]' | tr -d '"') - -Session information: - Auth Token ID: at_a8itRfDSyV - Created Time: Thu, 19 Nov 2023 10:52:44 PST - Endpoint: tcp://localhost:22 - Expiration Time: Thu, 19 Nov 2023 18:52:44 PST - Host ID: hst_1234567890 - Host Set ID: hsst_1234567890 - ID: s_WkaQbqmrJx - Status: active - Target ID: ttcp_1234567890 - Type: tcp - Updated Time: Thu, 19 Nov 2023 10:52:47 PST - User ID: u_1234567890 - Version: 2 - - Scope: - ID: p_1234567890 - Name: Generated project scope - Parent Scope ID: o_1234567890 - Type: project - - States: - Start Time: Thu, 19 Nov 2023 10:52:47 PST - Status: active - - End Time: Thu, 19 Nov 2023 10:52:47 PST - Start Time: Thu, 19 Nov 2023 10:52:44 PST - Status: pending -``` - -## Configure a host using target domain - -If you want to use the domain name to SSH to targets, you can set the `Host` value to the target domain instead of the target ID. - -This method requires an extra step. -You must authorize the session to the target and store it in your environment, since you do not pass the target ID as part of the SSH command. -Authorizing the session allows Boundary to pull the target information from the token you create using the `authorize session` command. - -### Authorize the session - -The following example authorizes a session to a target `ttcp_1234567890` and stores the token in the `BOUNDARY_CONNECT_AUTHZ_TOKEN` environment variable. -Boundary uses the token when it's invoked by SSH: - -```bash -$ export BOUNDARY_CONNECT_AUTHZ_TOKEN=$(boundary targets authorize-session -id ttcp_1234567890 -format json | jq '.authorization_token' | tr -d '"') -``` -### Configure the host - -To use SSH `ProxyCommand`, you must configure a `Host` entry in `.ssh/ssh_config` for `localhost`. - -In the following example, `ProxyCommand` configures the SSH client to invoke `boundary connect`. - -The command passes the `-exec nc` flag to `boundary connect` to wrap [netcat](http://netcat.sourceforge.net/), and then pass the `boundary.ip` and `boundary.port` environment variables as arguments to `nc`. -This command allows you to proxy your SSH connection through a local netcat tunnel that's managed as a Boundary session: - - - -```bash -Host localhost - # requires BOUNDARY_CONNECT_AUTHZ_TOKEN to be set from authorize-session command - ProxyCommand sh -c "boundary connect -exec nc -- {{boundary.ip}} {{boundary.port}}" -``` - - - -Using this configuration, if you run `ssh user@localhost` to connect to the target you created the authorization session for, SSH invokes `boundary connect`, and tunnels the traffic through the local Boundary proxy in a wrapped netcat session. -Boundary passes the target domain to the `boundary` command as the hostname. - -Note that you must authenticate to Boundary before you can use `ssh` to invoke `boundary connect`. - -### SSH to target - -Once the command is configured, you can run `ssh` as you normally would and all the traffic is proxied over the Boundary proxy to your target machine: - -```bash -$ ssh user@localhost -Password: -Last login: Thu Nov 19 10:32:09 2023 -➜ ~ -``` diff --git a/website/content/docs/vault/index.mdx b/website/content/docs/vault/index.mdx deleted file mode 100644 index 0e4c9fae7..000000000 --- a/website/content/docs/vault/index.mdx +++ /dev/null @@ -1,113 +0,0 @@ ---- -layout: docs -page_title: Vault integration -description: >- - Understand the security benefits of integrating Boundary and Vault to manage secrets and broker or inject credentials. Set up Vault as an OIDC bridge provider. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Vault integration - -The integration between Boundary and Vault improves two main areas of concern for organizations: - -- Security posture for remote access -- Workflow efficiency - -Integrating Boundary and Vault achieves these goals by enabling end-users to access targets without needing to manually distribute credentials. You must bring your own Vault deployment to Boundary. - -From a security perspective, you can configure credentials to be dynamic and ephemeral, and only valid for the lifetime of the session. Or you can attach a specific time to live (TTL) to the Vault token, resulting in a session having a finite amount of time. - -You can extend these security benefits to third-parties or contractors that may need to access resources. It is preferable to not expose credentials to temporary staff, while still ensuring that their access to resources is secure and granted in a timely manner. - -Timely access to resources creates improvements in workflow efficiency by removing manual approvals for access in favor of highly-scoped, preconfigured access requests. Additional end-workflow improvements are added by removing credential management from the end-user. - -## Credential management - -To configure credential brokering or credential injection with static credentials on Vault, please see [Manage static credentials with Vault](/boundary/docs/credentials/static-cred-vault). - - -# Credentials - -Within Boundary, you can configure Vault as a [credential store](/boundary/docs/domain-model/credential-stores) and [credential library](/boundary/docs/domain-model/credential-libraries). - -There are two configuration options: - -- Generic secrets -- SSH certificates - -Generic secrets reference a Vault key-value path where static secrets are stored, such as username/password or SSH keypairs. You can broker generic secrets to users when they connect to targets. - -SSH certificates have the advantages of using Vault as the certificate authority (CA) and being able to use the [HashiCorp Vault SSH Secrets Engine](/vault/docs/secrets/ssh). - -You can inject both generic secrets and SSH certificates directly into Boundary sessions using an HCP Boundary or Boundary Enterprise deployment. - -### Brokered credentials - -Brokered credentials let you use Boundary as a credential broker for infrastructure targets by binding credentials with user sessions. Credentials are surfaced during session initialization, after being brokered from Vault. - -Consider database access as an example. Within an organization, the finance team might need to access sensitive data that is in a database. Regardless of how often the database needs to be accessed, long-lived credentials create a security liability. These credentials could be purposely or accidentally leaked, creating risk for a company. - -Integrating Boundary and Vault helps mitigate this security risk. You can configure Vault secrets engines to issue static or dynamic short-lived database credentials to end users. Organizations can also define how long credentials are valid for, and once they have timed-out, access can automatically be revoked. - -![Brokered Credentials](/img/brokered-creds-ui.png) - -When you connect to the database using Boundary, Boundary displays the brokered credentials to the end user so that they can connect to the target. Once the session is closed or terminated, Boundary requires the user to request a new session to the target. - -### Injected credentials - -This feature requires HCP Boundary or Boundary Enterprise - -You can inject credentials directly into sessions using HCP Boundary or Boundary Enterprise. Injecting credentials removes the need for end users to manually use a brokered credential to access the target after Boundary has established a session. It also prevents users from ever accessing the credential. Injected credentials are never passed back to the end user. - -Credential injection with Vault can be configured using static or dynamic credentials: - -- [KV secrets engine](/vault/docs/secrets/kv/kv-v2) (static credentials) -- [SSH secrets engine](/vault/docs/secrets/ssh) (dynamic credentials) - -You can use the KV secrets engine for static username/password secrets, or static keypair secrets. - -When you use the SSH secrets engine, you can configure Vault to act as the certificate authority (CA), or you can configure an external CA. When Vault acts as the CA, it ensures that a user's certificate is signed before being brokered to Boundary. When key pairs are generated dynamically, they are signed by Vault to then be used to access the resources. - -There are two options for the key pair generation, depending on the type of Vault endpoint that you use within the Boundary credential library for SSH certification: - -- `/issue`: Vault generates and signs the key pair for you. - -- `/sign`: The Boundary controllers generate the key pair and then send it to Vault to sign. - -When you connect to a target that uses Vault for dynamic SSH certificates, a new certificate is generated for every target connection. As long as the target trusts the CA, access is granted without the end user having visibility into the credentials being injected. - -## Secrets management - -Within Boundary you can configure one or more credential stores. There are two types of credential stores: - -- [Static credential store](/boundary/docs/domain-model/credential-stores#static-credential-store) -- [Vault credential store](/boundary/docs/domain-model/credential-stores#vault-policies) - -A static credential store is built into Boundary if you want to manage secrets without integrating it with Vault. The Vault credential store can fetch secrets from Vault on behalf of Boundary users. - -Organizations may have valid reasons for using multiple credential stores within Boundary. You can only create credential stores at the [project](/boundary/docs/domain-model/scopes#projects) scope, and each project can contain multiple credential stores. Projects within an org scope may have different requirements from their credential stores. For example, within an org scope you may have two projects: Database and Compute. These two projects may need to be isolated, and can have a dedicated credential store per project. - -Credential stores may contain multiple credential libraries. This means a single Vault token can provide access to all the Vault paths defined in the credential libraries. HashiCorp recommends that you operate using the model of least privilege when setting up credential stores. - -When integrated with Vault, Boundary has to be assigned a periodic, renewable, [orphan token](/boundary/docs/domain-model/credential-stores#vault-token-requirements) from Vault. Each credential needs a separate Vault token. - -The following have no impact on Vault's [client count](/vault/docs/concepts/client-count/counting): - -- The number of Boundary targets that source credentials from the stores -- The number of users connecting to the targets -- The number of sessions that get created -- The number of credential libraries the credential store contains - -## Vault as an identity provider - -Boundary supports OIDC, LDAP, and username/password as [authentication methods](/boundary/docs/concepts/iam#access-management). Boundary can use Vault as an [OIDC bridge provider](/vault/tutorials/auth-methods/oidc-identity-provider). This allows Vault to delegate authentication to an external OIDC provider, such as Google Cloud, Okta, or Microsoft Entra ID. - -These providers then map the authenticated user's claims to Vault policies and identities. This allows users to authenticate to Boundary with any of Vault's supported authentication methods, even ones that Boundary does not natively support. When Boundary uses Vault as an OIDC provider, each user leveraging the authentication method then counts as a Vault client. - -## More information - -Refer to [Create a Vault credential store](/boundary/docs/credentials/static-cred-vault) for more information. \ No newline at end of file diff --git a/website/content/docs/what-is-boundary.mdx b/website/content/docs/what-is-boundary.mdx deleted file mode 100644 index 0356dbecd..000000000 --- a/website/content/docs/what-is-boundary.mdx +++ /dev/null @@ -1,88 +0,0 @@ ---- -layout: docs -page_title: What is Boundary? -description: >- - HashiCorp Boundary is a secure remote access solution that you can use to configure least-privileged, just-in-time access to systems, services, and applications. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# What is Boundary? - -HashiCorp Boundary is an identity-aware proxy aimed at simplifying and securing least-privileged access to cloud infrastructure - -With Boundary you can: -- Enable single sign-on to target services and applications via external identity providers -- Provide just-in-time network access to private resources -- Enable passwordless access with dynamic credentials via [HashiCorp Vault](https://www.vaultproject.io/) -- Automate discovery of new target systems -- Record and manage privileged sessions -- Standardize your team's access workflow with a consistent experience for any type of infrastructure across any provider - -## How does Boundary work? - -Boundary provides secure access to hosts and critical systems without distributing and managing credentials, configuring firewalls, or exposing the organization's private network. Traditionally, for users to access their resources, it's required that organizations establish and maintain SSH bastion hosts and VPNs. - -The video below provides an overview of the Boundary architecture, components, and deployment models. -It also gives a brief walkthrough of the end user's experience. - - - -The illustration below displays Boundary's core workflow. - -![Boundary core workflow](/img/boundary-core-workflow_light.png#light-theme-only) -![Boundary core workflow](/img/boundary-core-workflow_dark.png#dark-theme-only) - -The core Boundary workflow consists of four stages: - -- **User Authentication:** The user logs in with a trusted identity (based on the rules and policies) with a trust identity platform such as Azure Active Directory, Okta, Ping, or any other trust identity platforms supporting OpenID Connect. -- **Granular Authorization:** Boundary authenticates and authorizes users based on their roles and logical services, and tightly controls access and actions performed against systems. -- **User-selected dynamic catalogs**: The user selects their application or host from dynamic host catalogs. -- **Access:** Boundary streamlines connection to hosts by automating discovery and access configuration as workloads are deployed or changed. - -## Which edition of Boundary is right for me? - -- **HCP Boundary**: a managed Boundary offering with commercial features. HashiCorp hosts Boundary's control plane and you have the option of running private workers within your environment. -- **Boundary Enterprise**: a self-managed Boundary offering with full feature parity to HCP Boundary. -- **Boundary Community Edition**: a free, self-managed version of Boundary. - - -If you're not sure which edition is right for you, we recommend [**HCP Boundary**](https://developer.hashicorp.com/boundary/tutorials/hcp-getting-started) because it eliminates deployment operations. - -Regardless of which server edition of Boundary you use, all editions require the same Desktop and CLI clients, which you can download from the [Install Boundary downloads](https://developer.hashicorp.com/boundary/downloads) page. - -| Feature| Community | HCP | HCP | Enterprise | -|---|:-:|:-:|:-:|:-:| -| | | Standard | Plus | Plus | -| Just-in-time credential access via HashiCorp Vault | ✓ | ✓ | ✓ | ✓ | -| Just-in-time network access for TCP, SSH, HTTPS, RDS, K8s, database, etc | ✓ | ✓ | ✓ | ✓ | -| Single sign-on access via OIDC and LDAP | ✓ | ✓ | ✓ | ✓ | -| Identity provider managed groups | ✓ | ✓ | ✓ | ✓ | -| Terraform support for fully automated deployment and configuration | ✓ | ✓ | ✓ | ✓ | -| Credential brokering | ✓ | ✓ | ✓ | ✓ | -| Automated target discovery | ✓ | ✓ | ✓ | ✓ | -| Audit logs / Streaming | ✓ | ✓ | ✓ | ✓ | -| Transparent sessions | | ✓ | ✓ | ✓ | -| Multi-hop sessions | | ✓ | ✓ | ✓ | -| Credential injection | | ✓ | ✓ | ✓ | -| Automatic updates | | ✓ | ✓ | | -| Disaster recovery | | ✓ | ✓ | | -| Push button deployment | | ✓ | ✓ | | -| Session recording | | | ✓ | ✓ | -| Session recording lifecycle management | | | ✓ | ✓ | -## Get started - -Refer to the [Boundary tutorials](/boundary/tutorials) to learn how to set up, configure, and administer Boundary. - -## Community - -We welcome questions, suggestions, and contributions from the community. - -- Ask questions in [HashiCorp Discuss](https://discuss.hashicorp.com/c/boundary/50). -- Read our [contributing guide](https://github.com/hashicorp/boundary/blob/main/CONTRIBUTING.md). -- [Submit an issue](https://github.com/hashicorp/boundary/issues) for bugs and feature requests. diff --git a/website/content/docs/workers/create.mdx b/website/content/docs/workers/create.mdx deleted file mode 100644 index e7262a81d..000000000 --- a/website/content/docs/workers/create.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: docs -page_title: Create the worker configuration -description: >- - Learn about configuring workers. View an example of a worker configuration. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Create the worker configuration - -@include '/workers/single-worker-config.mdx' \ No newline at end of file diff --git a/website/content/docs/workers/filters.mdx b/website/content/docs/workers/filters.mdx deleted file mode 100644 index c5327ac89..000000000 --- a/website/content/docs/workers/filters.mdx +++ /dev/null @@ -1,172 +0,0 @@ ---- -layout: docs -page_title: Configure a worker filter -description: >- - Learn about configuring a filter to control which workers are allowed to manage a session. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure a worker filter - -You can use tags to configure a worker filter that controls which workers are allowed to perform specific functions. -Following are some examples of using these values in filters that can be applied to targets, Vault credential stores, or storage buckets: - -- Name regex: `"/name" matches "web-prod-us-east-[12]"`, which would - match workers whose names are `web-prod-us-east-1` or `web-prod-us-east-2` - -- Region: `"us-east-1" in "/tags/region"`. - -- Grouping: `("us-east-1" in "/tags/region" and "/name" == "web-prod-us-east-1") or "webservers" in "/tags/type"` - -Each tag can have multiple values, so you must use the `in` operator to match values. If you know that you have only one value, an equivalent would be `"/tags/key/0" == "value"`. - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. - -## Example worker filter for targets - -Once workers have tags, you can use these tags to control which -workers are allowed to manage a given session by specifying worker filter attributes -when you configure [targets](/boundary/docs/domain-model/targets). - -The `egress_worker_filter` attribute controls which workers are used for egress to a target. This is the worker -that accesses the target. - -The `ingress_worker_filter`HCP/ENT attribute controls which workers are used for ingress to a target. -This is the worker a client connects to when initiating a connection to a target. - - - - -Example of a filter configured on a target in the Admin UI: - -![Example of a target ingress worker filter](/img/ui/target-ingress-worker-filter_light.png#light-theme-only) -![Example of a target ingress worker filter](/img/ui/target-ingress-worker-filter_dark.png#dark-theme-only) - - - - -Example of a filter configured on a target with the CLI: - -``` -$ boundary targets update tcp -id tssh_1234567890 -egress-worker-filter='"prod" in "/tags/type"' -``` - - - - -Example of a filter configured on a target with Terraform: - -```hcl -resource "boundary_target" "aws-webservers-prod" { - type = "ssh" - name = "aws-web-prod" - description = "AWS EC2 Targets" - egress_worker_filter = "\"prod\" in \"/tags/type\"" -} -``` - - - - -## Example worker filter for Vault credential store - -Tags are used to control which workers can manage Vault requests by specifying -a `worker_filter`attribute when configuring [credential stores](/boundary/docs/domain-model/credential-stores#vault-credential-store-attributes). - -This allows the use of private Vault instances with Boundary. Workers -deployed in the same network as a private Vault instance can access and relay -Vault requests to Boundary controllers. - - - - A worker that matches the worker filter must exist before you define the Vault credential store, as it will perform the Vault calls needed to set up the credential store with Boundary. - - - - - - -Example of a worker filter configured on a Vault credential store in the Admin UI: - -![Example of a credential store worker filter](/img/ui/vault-worker-filter_light.png#light-theme-only) -![Example of a credential store worker filter](/img/ui/vault-worker-filter_dark.png#dark-theme-only) - - - - -Example of a worker filter configured on a Vault credential store with the CLI: - -``` -$ boundary credential-stores update vault -id csvlt_1234567890 -worker-filter='"vault" in "/tags/type"' -``` - - - - -Example of a worker filter configured on a Vault credential store with Terraform: - -```hcl -resource "boundary_credential_store_vault" "vault_cred_store" { - name = "Vault host credentials" - address = "http://127.0.0.1:8200" # change to Vault address - token = "s.0ufRo6XEGU2jOqnIr7OlFYP5" # change to valid Vault token - scope_id = boundary_scope.project.id # change to target scope - worker_filter = "\"vault\" in \"/tags/type\"" # change to access private Vault cluster -} -``` - - - - -## Example worker filter for storage buckets - -Storage buckets are used for session recording, which requires HCP Boundary or Boundary Enterprise - -Session recording functions are performed by Boundary workers. Workers also store recordings on Boundary storage buckets. When you create Boundary storage buckets, you can use tags to select the workers you prefer to use for session recording responsibilities. - - - - -Example of a worker filter configured on a storage bucket in the Admin UI: - -![Example of a storage bucket worker filter](/img/ui/session-rec-worker-filter_light.png#light-theme-only) -![Example of a storage bucket worker filter](/img/ui/session-rec-worker-filter_dark.png#dark-theme-only) - - - - -Example of a worker filter configured on a storage bucket with the CLI: - -``` -$ boundary storage-buckets update -id sb_1234567890 -worker-filter='"session-recording" in "/tags/type"' -``` - - - - -Example of a worker filter configured on a storage bucket with Terraform: - -```hcl -resource "boundary_storage_bucket" "aws_dynamic_credentials_example" { - name = "session-recording-storage-bucket" - scope_id = boundary_scope.org.id # change to valid scope ID - plugin_name = "aws" - bucket_name = "mybucket" # change to valid AWS S3 storage bucket name - - # the role_arn value should match the arn used as the instance profile attached to the ec2 instance - # https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html - attributes_json = jsonencode({ - "region" = "us-east-1" - "role_arn" = "arn:aws:iam::123456789012:role/S3Access" # change to valid role ARN - "disable_credential_rotation" = "true" - }) - worker_filter = "\"session-recording\" in \"/tags/type\"" # change to valid worker filter tag -} -``` - - - diff --git a/website/content/docs/workers/index.mdx b/website/content/docs/workers/index.mdx deleted file mode 100644 index 779511492..000000000 --- a/website/content/docs/workers/index.mdx +++ /dev/null @@ -1,128 +0,0 @@ ---- -layout: docs -page_title: Worker configuration overview -description: >- - Learn about worker configuration for proxies, storage, and tags. Understand how multi-hop configurations let you chain workers together in private networks. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Overview of workers - -Workers are primarily used as network proxies for Boundary sessions, they allow you to access private targets. Instead of exposing a private network to the public, or allowing users to have access to entire private networks, workers create a direct network tunnel between users and targets. - -Workers are services that can run on a container or virtual machine. You should deploy them strategically within networks to provide access to targets. -In all editions of Boundary, workers are fully self-managed and can be deployed anywhere. -In HCP Boundary, HCP-managed workers are automatically deployed with the cluster. - -All workers within Boundary use certificates and encryption keys to identify -themselves and protect data in transit. However, there are three different -ways to register them so that registration of workers can fit into any workflow: controller-led, worker-led, and via external KMS. - -You must register workers using the worker-led or controller-led methods in the system with an API call. These workers require storage on disk to store the current set of credentials. Workers using an external KMS auto-register after authenticating. This makes them an easy mechanism to use for automatic scaling. -This also means they do not need to store -credentials locally; the KMS re-authenticates them each time they connect. - - - -Before version 0.15 of Boundary, there were two different types of workers, PKI & KMS workers. -If you are using pre-0.15 workers with pre-0.15 upstream configurations, please switch the documentation version to `0.13.x` - `0.14.x`. This will ensure you have the correct information. - - - -## Signals - -The `SIGHUP` signal causes a worker to reload its configuration file to pick up any updates for the `initial_upstreams` and `tags` values. -Boundary ignores other updated values. - -The `SIGTERM` and `SIGINT` signals initiate a graceful shutdown on a worker. The worker waits for any sessions to drain -before shutting down. Workers in a graceful shutdown state do not receive any new work, including session proxying, from the control plane. - -## Session recording - -This feature requires HCP Boundary or Boundary Enterprise - -Session recording requires at least one worker with access to local and remote storage. -Workers used for session recording require an accessible directory defined by `recording_storage_path` for storing in-progress session recordings. On session closure, a local session recording is moved to remote storage and deleted locally. - -The `recording_storage_minimum_available_capacity` value determines the minimum amount of storage space that is required for workers to perform session recording operations. If a worker is at or below the storage threshold, Boundary does not use the worker to record sessions or play back recordings. - -Development example: - -```hcl -worker { - auth_storage_path="/var/lib/boundary" - initial_upstreams = ["10.0.0.1"] - recording_storage_path="/local/storage/directory" - recording_storage_minimum_available_capacity="500MB" -} -``` - -## Multi-hop sessions - -This feature requires HCP Boundary or Boundary Enterprise - -Multi-hop capabilities, including multi-hop sessions and Vault private access, -is when a session or Vault credential request goes through more than one worker. -To enable this, you must connect two or more workers to each other in some -configuration. There are no limits on the number of workers allowed in a -multi-hop session configuration. - -It helps to think of “upstream” and “downstream” nodes in the context of -multi-hop. If you view controllers as the “top” node of a multi-hop chain, any -worker connected to a node is "downstream" of that node. The node that any -particular worker connects to (whether another worker or a controller) is the -"upstream" of that node. For example, in the diagram below, Worker 2’s upstream -is Worker 1, and its downstream is Worker 3. - -![multi-hop workers](/img/multi-hop-workers.png) - -You can deploy multi-hop workers in scenarios where inbound network traffic is -not allowed. A worker in a private network can send outbound communication to -its upstream worker, and create a reverse proxy to establish a session. - -You can configure target worker filters with multi-hop workers to allow for -fine-grained control on which workers handle ingress and egress for session -traffic to a target. Ingress worker filters specify the workers you use to initiate a session, and egress worker filters specify the workers you use to access targets. - -## Common worker parameters - -@include '/configuration-reference/workers/common-worker-parameters.mdx' - - -## Complete configuration example - -@include '/configuration-reference/workers/complete-configuration-example.mdx' - -## Tutorials - -Refer to the [worker management](/boundary/tutorials/worker-management) tutorials for practice managing workers, configuring multi-hop sessions, and creating worker-aware targets. - -Refer to the [Self-managed worker registration with HCP Boundary](/boundary/tutorials/hcp-administration/hcp-manage-workers) tutorial to learn how to register and manage workers. - -Refer to the [Manage multi-hop sessions with HCP Boundary](/boundary/tutorials/hcp-administration/hcp-manage-multi-hop) tutorial to learn how to configure a multi-hop session. - -## More information - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. - -To configure and register a worker, refer to the following topics: - -- [Create the worker configuration](/boundary/docs/workers/create) -- [Register workers](/boundary/docs/workers/registration) - -Refer to the following topics for more information about configuring workers for specific applications or workflows: - -- [Overview of multi-hop sessions](/boundary/docs/workers/multi-hop) - - [Configure multi-hop sessions for Boundary Enterprise](/boundary/docs/workers/multi-hop/enterprise) - - [Configure multi-hop sessions for HCP Boundary](/boundary/docs/workers/multi-hop/hcp) -- [Overview of session recording](/boundary/docs/session-recording) - - [Configure workers for session recording](/boundary/docs/session-recording/configuration/configure-worker-storage) -- [Configure workers for access to Vault](/boundary/docs/workers/filters#example-worker-filter-for-vault-credential-store) -- [Configure workers for dynamic host discovery from cloud providers](/boundary/docs/hosts) -- [Route traffic through a worker](/boundary/docs/workers/worker-tags) -- [Configure a worker filter](/boundary/docs/workers/filters) -- [Configure self-managed workers for HCP Boundary](/hcp/docs/boundary/self-managed-workers) diff --git a/website/content/docs/workers/multi-hop/enterprise.mdx b/website/content/docs/workers/multi-hop/enterprise.mdx deleted file mode 100644 index 3f9939f04..000000000 --- a/website/content/docs/workers/multi-hop/enterprise.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: docs -page_title: Create multi-hop sessions for Boundary Enterprise -description: >- - Configure multi-hop sessions for Boundary Enterprise. Chain together two or more workers across multiple networks to reach a target without exposing private networks. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure multi-hop sessions for Boundary Enterprise - -This feature requires HCP Boundary or Boundary Enterprise - -For Boundary Enterprise, you can configure ingress, intermediary, and egress workers to take advantage of multi-hop worker capabilities. - -Note that "ingress," "intermediary," and "egress" are general ways to describe how the respective worker interacts with resources. -A worker can serve more than one of those roles at a time. -Refer to [Multi-hop sessions](/boundary/docs/workers/multi-hop) for more information. - -Complete the steps below to configure ingress, intermediate, and egress workers for Boundary Enterprise. - -## Ingress worker configuration - -@include '/workers/ingress-worker-config.mdx' - -## Intermediate worker configuration - -@include '/workers/intermediate-worker-config.mdx' - -## Egress worker configuration - -@include '/workers/egress-worker-config.mdx' diff --git a/website/content/docs/workers/multi-hop/hcp.mdx b/website/content/docs/workers/multi-hop/hcp.mdx deleted file mode 100644 index 0fd638b19..000000000 --- a/website/content/docs/workers/multi-hop/hcp.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -layout: docs -page_title: Create multi-hop sessions for HCP -description: >- - Configure multi-hop sessions for HCP Boundary. Chain together two or more workers across multiple networks to reach a target without exposing private networks. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Configure multi-hop sessions for HCP Boundary - -This feature requires HCP Boundary or Boundary Enterprise - -Many organizations have strict network policies that prohibit all inbound traffic into their networks. In these scenarios, you can use HCP-managed workers as the ingress workers. To establish a connection into the network, a self-managed worker configured as an egress worker initiates an outbound connection to the HCP-managed worker, creating a persistent connection. As a result, when end users connect to a target, the end user's connection would hop from the Boundary client to the HCP-managed worker (ingress worker) to the self-managed worker (egress worker) to the target (or other intermediary workers if needed). - -## Configure HCP-managed workers for ingress - -To configure end user traffic to ingress through HCP-managed workers, you must configure the self-managed worker (enterprise version). On your self-managed worker that you use for egress to the HCP-managed worker, set the configuration file with the following parameters: -- `hcp_boundary_cluster_id` - The HCP Boundary cluster ID, which can be found in the HCP Boundary cluster's URL. -- Omit the `public_addr` parameter. A public address is not needed since the self-managed worker initiates the connection to HCP-managed workers. -- Omit the `initial_upstreams` parameter. This is not needed because the `hcp_boundary_cluster_id` parameter is sufficent to indicate the HCP-managed workers as the upstream. -- Include a [worker tag](/boundary/docs/workers/worker-tags) in the `worker` stanza which will be used to select multi-hop routes for each target. - -### Example self-managed worker configuration: -``` -hcp_boundary_cluster_id = "7acdefe2c-1234-4ff1-b710-123456789876" - -listener "tcp" { - address = "0.0.0.0:9202" - purpose = "proxy" -} - -worker { - auth_storage_path = "/home/ubuntu/boundary/worker1" - tags { - tag = ["multihop"] - } - recording_storage_path = "/tmp/worker1" -} -``` -## Allow-list outbound network traffic to HCP-managed workers - -Some organizations require explicit destination addresses set in their network firewall rules for any outbound traffic. In this scenario, you should use the fully qualified domain name (FQDN) of the HCP-managed workers: - -``` -.proxy.boundary.hashicorp.cloud -``` - -where the `cluster_uuid` is the HCP Boundary cluster ID. You can find your HCP Boundary cluster ID in the HCP Boundary cluster's URL. - - - - The Boundary cluster ID is derived from the Boundary address. For example, if - your cluster URL is: - - `https://abcd1234-e567-f890-1ab2-cde345f6g789.boundary.hashicorp.cloud` - - Then your cluster id is `abcd1234-e567-f890-1ab2-cde345f6g789`. - - - -## Route end user traffic to targets through HCP-managed workers - -To route traffic through the HCP-managed workers, you should set the egress filters of each target to match the tag set in the self-managed worker's configuration file. You do not need to set additional ingress filters on the targets. - -![Multi-hop egress worker filter](/img/ui/multi-hop-egress-filter_light.png#light-theme-only) -![Multi-hop egress worker filter](/img/ui/multi-hop-egress-filter_dark.png#dark-theme-only) \ No newline at end of file diff --git a/website/content/docs/workers/multi-hop/index.mdx b/website/content/docs/workers/multi-hop/index.mdx deleted file mode 100644 index 7ce2146b6..000000000 --- a/website/content/docs/workers/multi-hop/index.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -layout: docs -page_title: Multi-hop sessions -description: >- - Learn how multi-hop sessions let you chain together two or more workers across multiple networks to reach a target without exposing private networks. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Multi-hop sessions - -This feature requires HCP Boundary or Boundary Enterprise - -Most organizations want to provide access to infrastructure without exposing private networks. Many organizations also have complex network topologies requiring -inbound traffic to route through multiple network enclaves to reach the target system. -Multi-hop sessions allow you to chain together two or more workers -across multiple networks to form reverse proxy connections between the user and the target, even in complex networks with strict outbound-only policies. - -## Inbound network rules - -With a multi-hop deployment, all connections are initiated outbound from the most downstream worker in the chain. After Boundary establishes the initial connection between the workers, it uses the established connection for any subsequent connections. -These persistent TCP connections result in the requirement for only outbound connectivity. - -If you have one or more firewalls sitting between the ingress and egress workers, you do not need to create additional inbound networking rules to facilitate a Boundary multi-hop deployment. This not only helps to -simplify your infrastructure configuration, but also ensures that your security posture is not weakened or compromised. - -## Multi-hop worker types - -In multi-hop scenarios, there are typically three types of workers: -1. **Ingress worker** - An ingress worker is a worker that is accessible by the client. The client initiates the connection to the ingress worker. -1. **Intermediary worker** - An optional intermediary worker sits between ingress and egress workers as part of a multi-hop chain. There can be multiple intermediary workers as part of a multi-hop chain. -1. **Egress worker** - An egress worker is a worker that can access the target. The egress worker initiates reverse proxy connections to intermediary or ingress workers. - - -“Ingress,” “intermediary,” and “egress” are general ways to describe how the respective worker interfaces with resources, and a worker can act as more than one of those -at a time. For example in the diagram below, the intermediary worker is also an egress worker since it can access a target. - - -![Multi-hop session example showing ingress, intermediary, and egress workers](/img/concepts-multihop.png) - -After the persistent connection chain is established between the workers, when you attempt to connect to a target host, you are automatically proxied from: -1. Boundary client to ingress worker -1. Ingress worker to intermediary worker, where applicable -1. Ingress worker to egress worker -1. Egress worker to desired target - -## Multi-hop worker capabilities - -Multi-hop capabilities, including multi-hop sessions and Vault private access, -is when a session or Vault credential request goes through more than one worker. -To enable this, two or more workers must be connected to each other in some -configuration. There are no limits on the number of workers allowed in a -multi-hop session configuration. - -It helps to think of “upstream” and “downstream” nodes in the context of -multi-hop. If you view controllers as the “top” node of a multi-hop chain, any -worker connected to a node is "downstream" of that node; the node that any -particular worker connects to (whether another worker or a controller) is the -"upstream" of that node. For example, in the diagram below, Worker 2’s upstream -is Worker 1, and its downstream is Worker 3. - -![multi-hop workers](/img/multi-hop-workers.png) - -You can deploy multi-hop workers in scenarios where inbound network traffic is -not allowed. A worker in a private network can send outbound communication to -its upstream worker, and create a reverse proxy to establish a session. - -You can configure target worker filters with multi-hop workers to allow for -fine-grained control on which workers handle ingress and egress for session -traffic to a target. Ingress worker filters determine which workers you -connect with to initiate a session, and egress worker filters determine which -workers are used to access targets. - -## Multi-hop worker requirements - -When you configure multi-hop sessions, there is an "ingress" worker, an "egress" -worker, and any number of intermediary workers. Ingress, egress, and -intermediary workers have the following requirements. - -### Ingress worker requirements - -To proxy target connections, ingress workers require outbound access to the -Boundary control plane and inbound access from clients. - -HCP Boundary clusters automatically deploy HCP-managed workers which can be used as ingress workers. Using HCP-managed workers as ingress workers is helpful when organizations have strict networks security policies that prohibit any inbound access. In this scenario, intermediary or egress workers within the private network can establish a reverse proxy connection to the HCP-managed ingress worker. - -### Intermediary worker requirements - -Intermediary workers require outbound access to an upstream worker. The upstream -worker may be an ingress worker or another intermediary worker. Intermediary -workers also require inbound access from a downstream worker. The downstream -worker may be an egress worker or another intermediary worker. - -### Egress worker requirements - -To proxy target connections, egress workers require outbound access to an -upstream worker and outbound access to the destination host or service. - -## Complete worker configuration - -For the full set of worker parameters and a complete configuration example, refer to the [worker stanza](/boundary/docs/configuration/workers) documentation. - -## Next steps - -Refer to the following topics to configure multi-hop sessions: - -- [Configure multi-hop sessions for Boundary Enterprise](/boundary/docs/workers/multi-hop/enterprise) -- [Configure multi-hop sessions for HCP Boundary](/boundary/docs/workers/multi-hop/hcp) diff --git a/website/content/docs/workers/registration.mdx b/website/content/docs/workers/registration.mdx deleted file mode 100644 index ca38429c2..000000000 --- a/website/content/docs/workers/registration.mdx +++ /dev/null @@ -1,202 +0,0 @@ ---- -layout: docs -page_title: Register workers -description: >- - Learn about authorizing workers to the controller. View a worker configuration example. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Register workers - -Workers authenticate to Boundary using an activation token. They require an -accessible directory defined by `auth_storage_path` for credential storage and -rotation. Transport level communication between the worker & Controller is secured through PKI. - -Example (not safe for production!): - -```hcl -worker { - auth_storage_path="/var/lib/boundary" - initial_upstreams = ["10.0.0.1"] -} -``` - -## Authorization methods - -There are three mechanisms that can be used to initially register a worker to the cluster, Controller-Led, Worker-Led, and registration through an external KMS. - -### Controller-led authorization flow - -In this flow, the operator fetches an activation token from the controller's -`workers:create:controller-led` action (on the CLI, this is via `boundary -workers create controller-led`). That activation token is given to the worker -via the `controller_generated_activation_token` parameter. This can be done -either directly or via an env var or file by using `env://` or `file://` syntax: - -```hcl -worker { - auth_storage_path="/var/lib/boundary" - initial_upstreams = ["10.0.0.1"] - controller_generated_activation_token = "neslat_........." - # controller_generated_activation_token = "env://ACT_TOKEN" - # controller_generated_activation_token = "file:///tmp/worker_act_token" -} -``` - -Once the worker starts, it reads this token and uses it to authorize to the -cluster. Note that this token is one-time-use; it is safe to keep it here even -after the worker has successfully authorized and authenticated, as it will be -unusable at that point. - -Note: If this value is not present at worker startup time and the worker is not -authorized, it will print and write out suitable information for the worker-led -flow, described below. If the worker-led flow has not been used to -authorize the worker, and the controller-generated activation token is provided -and the worker restarted, it will make use of it. - -### Worker-led authorization flow - -In this flow, the worker prints out an authorization request token to two -places: the startup information printed to stdout, and a file called -`auth_request_token` in the base of the configured `auth_storage_path`. This -token can be submitted to a controller at the `workers:create:worker-led` path; -on the CLI this would be via `boundary workers create worker-led --worker-generated-auth-token`. No values are needed in the configuration file. - -### KMS-led authorization & authentication flow - -In this flow, the worker authenticates upstream, either to a controller or worker, using a shared KMS provided by the customer. This mechanism auto-registers the worker in addition to authenticating it, and does not require on-disk storage for credentials since each time it connects, it re-authenticates using the trusted KMS. - -Optionally with the Multi-Hop workers feature, trusted Workers can authenticate downstream nodes using a separate KMS. - -Workers using KMS-led authorization require a `name` field. This specifies a unique name of this worker -within the Boundary cluster and _must be unique across workers_. The `name` -value can be: -- a direct name string (must be all lowercase) -- a reference to a file on disk (`file://`) from which the name is read -- an env var (`env://`) from which the name is read. - -Workers using KMS-led authorization accept an optional `description` field. The `description` value can -be: -- a direct description string -- a reference to a file on disk (`file://`) from which the name is read -- an env var (`env://`) from which the name is read. - -```hcl -worker { - name = "example-worker" - description = "An example worker" - public_addr = "5.1.23.198" -} -``` - -Workers using the KMS authorization flow also require a KMS block designated for `worker-auth`. This is the KMS configuration for authentication between the workers and controllers and must be present. Example (not safe for production!): - -```hcl -kms "aead" { - purpose = "worker-auth" - aead_type = "aes-gcm" - key = "X+IJMVT6OnsrIR6G/9OTcJSX+lM9FSPN" - key_id = "global_worker-auth" -} -``` - -The upstream controller or worker must have a `kms` block that references the -same key and purpose. If both a controller and worker are running as the same -server process, only one stanza is needed. - -For Multi-Hop workers, It is also possible to specify a `kms` block with the `downstream-worker-auth` purpose. If specified, this will be a separate KMS that can be used for authenticating new downstream nodes. Blocks with this purpose can be specified multiple times. This allows a single upstream node to authenticate with one key to its own upstream (via the `worker-auth` purpose) and then serve as an authenticating upstream to nodes -across various networks, each with their own separate KMS system or key: - -```hcl -kms "aead" { - purpose = "downstream-worker-auth" - aead_type = "aes-gcm" - key = "XthZVtFtBD1Bw1XwAWhZKVrIwRhR7HcZ" - key_id = "iot-nodes-auth" -} - -kms "aead" { - purpose = "downstream-worker-auth" - aead_type = "aes-gcm" - key = "OLFhJNbEb3umRjdhY15QKNEmNXokY1Iq" - key_id = "production-nodes-auth" -} -``` - -In the examples above we are encoding key bytes directly in the configuration -file. This is because we are using the `aead` method where you directly supply a -key; in production you'd want to use a KMS such as AWS KMS, GCP CKMS, Azure -KeyVault, or HashiCorp Vault. For a complete guide to all available KMS types, -refer to [Data encryption in Boundary](/boundary/docs/secure/encryption/data-encryption). - -## Complete configuration example - -```hcl -listener "tcp" { - purpose = "proxy" - tls_disable = true - address = "127.0.0.1" -} - -worker { - # Name attr must be unique across workers - name = "demo-worker-1" - description = "A default worker created for demonstration" - - # Workers must be able to reach upstreams on :9201 - initial_upstreams = [ - "10.0.0.1", - "10.0.0.2", - "10.0.0.3", - ] - - public_addr = "myhost.mycompany.com" - - tags { - type = ["prod", "webservers"] - region = ["us-east-1"] - } -} - -# must be same key as used on controller config -kms "aead" { - purpose = "worker-auth" - aead_type = "aes-gcm" - key = "X+IJMVT6OnsrIR6G/9OTcJSX+lM9FSPN" - key_id = "global_worker-auth" -} -``` - -[`initial_upstreams`](/boundary/docs/configuration/workers#initial_upstreams) -are used to connect to upstream Boundary clusters. - -## Resources - -For more on how `tags{}` in the above configuration are used to facilitate -routing to the correct target, refer to [Route traffic through a worker](/boundary/docs/workers/worker-tags). - - -## KMS configuration - -When using Controller or Worker-led Authentication, a worker’s generated activation token is stored in clear-text on disk. Using an external KMS, a Workers' credentials can be encrypted by including an optional KMS stanza with the purpose `worker-auth-storage`. - -Example (not safe for production!): -```hcl -kms "aead" { - purpose = "worker-auth-storage" - aead_type = "aes-gcm" - key = "X+IJMVT6OnsrIR6G/9OTcJSX+lM9FSPN" - key_id = "worker-auth-storage" -} -``` - - - -The `name` and `description` fields are not valid configuration fields for workers that use worker-led or controller-led authorization. You can only set these fields through the API and they are only valid for workers that use the [KMS authorization method](/boundary/docs/workers/registration#kms-led-authorization-authentication-flow). - - diff --git a/website/content/docs/workers/worker-tags.mdx b/website/content/docs/workers/worker-tags.mdx deleted file mode 100644 index 044c29c95..000000000 --- a/website/content/docs/workers/worker-tags.mdx +++ /dev/null @@ -1,400 +0,0 @@ ---- -layout: docs -page_title: Route traffic through a worker -description: >- - Learn about using worker tags to designate worker roles. Examples include serving specific regions or functions, such as credential stores or storage buckets. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Route traffic through a worker - -This page describes how to use worker tags and filters to control which workers -are allowed to handle a given resource. You can use filters to control traffic -locally. As an example, you can use filters to ensure that traffic going into a -public cloud is only handled by workers running within that same cloud. -Tags can also be used determine which worker should perform session recording duties. - -Refer to [Filtering and listing resources](/boundary/docs/filtering) for more information about Boundary's filter syntax and best practices. - -You can configure worker tags using the worker config file, the Admin UI, the CLI, or the API. Select a tag below to view examples. - - - - Terraform users should consider tagging workers using the worker config file in conjunction with the Boundary Terraform provider [worker resource](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/worker) to register workers. - - - - - - -You can tag workers with a set of key/value tags in their configuration file. The keys and values can be any lower-cased printable value. Each key can have more than one value: - -```hcl -worker { - name = "web-prod-us-east-1" - tags { - region = ["us-east-1"] - type = ["prod", "webservers"] - } -} -``` - -As HCL is JSON-compatible, this turns into an input JSON value of: - -```json -{ - "worker": { - "name": "web-prod-us-east-1", - "tags": { - "region": ["us-east-1"], - "type": ["prod", "webservers"] - } - } -} -``` - -This is the canonical format, and maps closely to the filter structure. -For compatibility with some other systems, you can specify the tags in a pure key=value style: - -```hcl -worker { - name = "web-prod-us-east-1" - tags = ["region=us-east-1", "type=prod", "type=webservers"] -} -``` - -In this format you cannot have an equal sign as part of the key. - -The entire `tags` block or the keys' values can also point to an environment variable or filepath in the system, through the `env://` and `file://` URLs: - -```hcl -worker { - name = "web-prod-us-east-1" - tags = "env://BOUNDARY_ALL_WORKER_TAGS" -} -``` - -```hcl -worker { - name = "web-prod-us-east-1" - tags { - type = "env://BOUNDARY_WORKER_TYPE_TAGS" - region = "file://config/worker/region_tags" - usage = ["admin"] - } -} -``` - -Notice that the syntax within the environment variable or file changes -depending on how the configuration file is set: - -- For setting the entire `tags` block, you must specify both the keys and values in JSON or HCL format: - - ```json - { - "region": ["us-east-1"], - "type": ["prod", "webservers"] - } - ``` - - ```hcl - region = ["us-east-1"] - type = ["prod", "webservers"] - ``` - -- For setting the keys' values within the `tags` block, only a JSON -array with the tags intended for the particular key is required: - - ```json - ["prod", "webservers"] - ``` - - - - -You can tag workers with a set of key/value API tags in the Boundary Admin UI. The keys and values can be any lower-cased printable value. Each key can have more than one value: - -![Worker Config Tags in Boundary Admin UI](/img/ui/worker-tags-config_light.png#light-theme-only) -![Worker Config Tags in Boundary Admin UI](/img/ui/worker-tags-config_dark.png#dark-theme-only) - -In the image above, the tag type is `config`, which means the tags were defined in the worker config file. Config tags cannot be modified within the UI, you must update them in the config file itself. - -Below is an example of this tag definition in a worker's `config.hcl` file: - -```hcl -worker { - name = "web-prod-us-east-1" - tags { - type = ["s3", "worker"] - } -} -``` - -As HCL is JSON-compatible, this turns into an input JSON value of: - -```json -{ - "worker": { - "name": "web-prod-us-east-1", - "tags": { - "type": ["s3", "worker"] - } - } -} -``` - -You can add API tags in the Admin UI. API tags are defined on the Boundary controller, and are not updated in the worker's config file. - -To add an API tag: - -1. Navigate to the worker's **Tags** tab. -1. Click the **Manage** dropdown and then **Create New Tags**. -1. Enter in the tag **Key** and **Value**, then click **Add**. -1. Repeat this process for any additional tags. When finished, click **Save**. - -A tag key can have multiple values associated with it. In the image below, the `type` key has three values. The `type=s3` and `type=worker` tags are both config tags, and the `type=aws` tag is an API tag. - -![Worker API in Boundary Admin UI](/img/ui/worker-tags-api_light.png#light-theme-only) -![Worker API in Boundary Admin UI](/img/ui/worker-tags-api_dark.png#dark-theme-only) - -You can remove API tags using the Admin UI, CLI, or API. - - - - -You can tag workers with a set of key/value API tags using the CLI. The keys and values can be any lower-cased printable value. Each key can have more than one value: - -```shell-session -$ boundary workers read -id w_0BNbXUyy8D - -Worker information: - Active Connection Count: 0 - Address: openssh-server:9202 - Created Time: Tue, 16 Jul 2024 09:39:13 MDT - ID: w_0BNbXUyy8D - Last Status Time: 2024-07-19 23:37:33.331817 +0000 UTC - Local Storage State: available - Name: web-prod-us-east-1 - Release Version: Boundary v0.16.2 - Type: pki - Updated Time: Fri, 19 Jul 2024 17:37:33 MDT - Version: 2 - - Scope: - ID: global - Name: global - Type: global - - Tags: - Configuration: - type: ["s3" "worker"] - Canonical: - type: ["s3" "worker"] - - Authorized Actions: - read - update - delete - add-worker-tags - set-worker-tags - remove-worker-tags - no-op -``` - -In the output above, the tags listed as `Configuration`, were defined in the worker config file. Config tags cannot be modified using the CLI, you must update them in the config file itself. - -Below is an example of this tag definition: - -```hcl -worker { - name = "web-prod-us-east-1" - tags { - type = ["s3", "worker"] - } -} -``` - -The `Canonical` tags in the output show all tags associated with a worker, including configuration tags and API tags. - -You can add API tags using the Admin UI, CLI, or API. API tags are defined on the Boundary controller, and are not updated in the worker's config file. - -You can add API tags using the [boundary workers add-worker-tags](/boundary/docs/commands/workers/add-worker-tags) CLI command: - -```shell-session -$ boundary workers add-worker-tags -id w_0BNbXUyy8D -tag "region=useast1" - -Worker information: - Active Connection Count: 0 - Address: openssh-server:9202 - Created Time: Tue, 16 Jul 2024 09:39:13 MDT - ID: w_0BNbXUyy8D - Last Status Time: 2024-07-19 23:37:33.331817 +0000 UTC - Local Storage State: available - Name: web-prod-us-east-1 - Release Version: Boundary v0.16.2 - Type: pki - Updated Time: Mon, 22 Jul 2024 14:12:45 MDT - Version: 3 - - Scope: - ID: global - Name: global - Type: global - - Tags: - Configuration: - type: ["s3" "worker"] - Api: - region: ["useast1"] - Canonical: - region: ["useast1"] - type: ["s3" "worker"] - - Authorized Actions: - no-op - read - update - delete - add-worker-tags - set-worker-tags - remove-worker-tags -``` - -Notice the worker now has both `Configuration` and `API` tags listed, and the summation of both sets is listed under the `Canonical` tags. - -A tag key can have multiple values associated with it. To update existing API tags using the CLI, you must use the [boundary workers set-worker-tags](/boundary/docs/commands/workers/set-worker-tags) command. - -In the example above, the `type` key has two values, `s3` and `worker`. The `type=s3` and `type=worker` tags are both config tags, and the `region=useast1` tag is an API tag. - -To add an updated API tag with a key of type, all the tags must be set: - -```shell-session -$ boundary workers set-worker-tags -id w_0BNbXUyy8D -tag "type=aws" -tag "region=useast1" - -Worker information: - Active Connection Count: 0 - Address: openssh-server:9202 - Created Time: Tue, 16 Jul 2024 09:39:13 MDT - ID: w_0BNbXUyy8D - Last Status Time: 2024-07-19 23:37:33.331817 +0000 UTC - Local Storage State: available - Name: web-prod-us-east-1 - Release Version: Boundary v0.16.2 - Type: pki - Updated Time: Mon, 22 Jul 2024 14:12:45 MDT - Version: 3 - - Scope: - ID: global - Name: global - Type: global - - Tags: - Configuration: - type: ["s3" "worker"] - Api: - region: ["useast1"] - type: ["aws"] - Canonical: - region: ["useast1"] - type: ["aws" "s3" "worker"] - - Authorized Actions: - read - update - delete - add-worker-tags - set-worker-tags - remove-worker-tags - no-op -``` - -Now the worker includes both config tags and API tags with a `type` key. The updated `Canonical` tags in the output show all tags associated with a worker, including configuration tags and API tags. - -You can remove API tags using the Admin UI, CLI, or API. To remove an API tag using [boundary workers remove-worker-tags](/boundary/docs/commands/workers/remove-worker-tags): - -```shell-session -$ boundary workers remove-worker-tags -id w_0BNbXUyy8D -tag "region=useast1" - -Worker information: - Active Connection Count: 0 - Address: openssh-server:9202 - Created Time: Tue, 16 Jul 2024 09:39:13 MDT - ID: w_0BNbXUyy8D - Last Status Time: 2024-07-19 23:37:33.331817 +0000 UTC - Local Storage State: available - Name: web-prod-us-east-1 - Release Version: Boundary v0.16.2 - Type: pki - Updated Time: Mon, 22 Jul 2024 14:12:45 MDT - Version: 3 - - Scope: - ID: global - Name: global - Type: global - - Tags: - Configuration: - type: ["s3" "worker"] - Api: - type: ["aws"] - Canonical: - type: ["aws" "s3" "worker"] - - Authorized Actions: - read - update - delete - add-worker-tags - set-worker-tags - remove-worker-tags - no-op -``` - - - - -## Filter workers using tags - -As filters operate on JSON Pointer selectors, the values that are input into the -filter come from the JSON representation of the values in the configuration file -nested under `tags` and include a `name` value: - -```json -{ - "name": "web-prod-us-east-1", - "tags": { - "region": ["us-east-1"], - "type": ["production", "webservers"] - } -} -``` - - - - If an expression fails due to a key not being found within the input data, -the worker is not included in the final set. You should ensure that all workers that should match a given filter are populated with tags referenced in the filter string. It is not possible to distinguish between a worker that is not included due to the expression itself and a worker that did not have correct tags. - - - -## Filter examples - -Following are some examples of using these values in filters that can be applied to targets, Vault credential stores, or storage buckets: - -- Name regex: `"/name" matches "web-prod-us-east-[12]"`, which would - match workers whose names are `web-prod-us-east-1` or `web-prod-us-east-2` - -- Region: `"us-east-1" in "/tags/region"`. - -- Grouping: `("us-east-1" in "/tags/region" and "/name" == "web-prod-us-east-1") or "webservers" in "/tags/type"` - -Each tag can have multiple values, so you must use the `in` operator to match values. If you know that you have only one value, an equivalent would be `"/tags/key/0" == "value"`. - -## Next steps - -You can [configure a worker filter](/boundary/docs/workers/filters) to control which workers are allowed to manage a given session, act as a Vault credential store, or store session recordings. diff --git a/website/content/partials/alerts/beta.mdx b/website/content/partials/alerts/beta.mdx deleted file mode 100644 index 5cbafd7ac..000000000 --- a/website/content/partials/alerts/beta.mdx +++ /dev/null @@ -1,6 +0,0 @@ - - -Beta functionality is stable, but possibly incomplete and subject to change. -**We strongly discourage using beta features in production deployments of Boundary.** - - \ No newline at end of file diff --git a/website/content/partials/alerts/enterprise-only.mdx b/website/content/partials/alerts/enterprise-only.mdx deleted file mode 100644 index 50d3cd2a3..000000000 --- a/website/content/partials/alerts/enterprise-only.mdx +++ /dev/null @@ -1 +0,0 @@ -This feature requires HCP Boundary or Boundary Enterprise \ No newline at end of file diff --git a/website/content/partials/cmd-connect-command-options.mdx b/website/content/partials/cmd-connect-command-options.mdx deleted file mode 100644 index aa0c6ee0a..000000000 --- a/website/content/partials/cmd-connect-command-options.mdx +++ /dev/null @@ -1,31 +0,0 @@ -### Connect command options: - -- `-authz-token` `(string: "")` - The authorization string returned from the Boundary controller via an `authorize-session` action against a target. - This option is only required if you don't set a `-target-id`. - If you set the value to `-`, the command attempts to read in the authorization string from standard input. - You can also specify the authorization string using the **BOUNDARY_CONNECT_AUTHZ_TOKEN** environment variable. - -- `-exec` `(string: "")` - If set, specifies that the given binary should be executed after connecting to the worker, if set. - This value should be a binary on your path or an absolute path. - If all command flags are followed by ` -- ` (space, two hyphens, space), then any arguments after that are sent directly to the binary. - You can also specify a binary using the **BOUNDARY_CONNECT_EXEC** environment variable. - -- `-host-id` `(string: "")` - The ID of a specific host to connect to out of - the target's host sets. - If you do not indicate a specific host, Boundary chooses one at random. - -- `-target-id` `(string: "")` - The ID of the target to authorize against. - You cannot use this option with `-authz-token`. - -- `-target-name` `(string: "")` - The target name, if you authorize the session using - scope parameters and target name. - -- `-target-scope-id` `(string: "")` - The target scope ID, if you authorize the - session using scope parameters and target name. - This value is mutually exclusive with `-scope-name`. - You can also specify the target scope ID using the **BOUNDARY_CONNECT_TARGET_SCOPE_ID** environment variable. - -- `-target-scope-name` `(string: "")` - The target scope name, if you authorize the - session using scope parameters and target name. - This value is mutually exclusive with `-scope-id`. - You can also specify the target scope name using the **BOUNDARY_CONNECT_TARGET_SCOPE_NAME** environment variable. diff --git a/website/content/partials/cmd-connect-env-vars.mdx b/website/content/partials/cmd-connect-env-vars.mdx deleted file mode 100644 index bddce7b08..000000000 --- a/website/content/partials/cmd-connect-env-vars.mdx +++ /dev/null @@ -1,10 +0,0 @@ -You also have access to some templated values that are substituted into the -command arguments, and these values are additionally injected as environment -variables in the executed command: - -- `{{boundary.ip}}` (`BOUNDARY_PROXIED_IP`): The IP address of the listening - socket that `boundary connect` has opened. -- `{{boundary.port}}` (`BOUNDARY_PROXIED_PORT`): The port of the listening - socket that `boundary connect` has opened. -- `{{boundary.addr}}` (`BOUNDARY_PROXIED_ADDR`): The host:port format of the - address. This is essentially equivalent to `{{boundary.ip}}:{{boundary.port}}`. diff --git a/website/content/partials/cmd-option-note.mdx b/website/content/partials/cmd-option-note.mdx deleted file mode 100644 index 075a4d3a0..000000000 --- a/website/content/partials/cmd-option-note.mdx +++ /dev/null @@ -1,11 +0,0 @@ - - -In addition to the command specific options, there are options common to all -CLI commands and subcommands: - -- [Connection options](/boundary/docs/commands/#connection-options) -- [Client options](/boundary/docs/commands/#client-options) -- [Output options](/boundary/docs/commands/#output-options) -- [Environment variables](/boundary/docs/commands/#environment-variables) - - \ No newline at end of file diff --git a/website/content/partials/configuration-reference/events/common-audit_config-examples.mdx b/website/content/partials/configuration-reference/events/common-audit_config-examples.mdx deleted file mode 100644 index 59f5df639..000000000 --- a/website/content/partials/configuration-reference/events/common-audit_config-examples.mdx +++ /dev/null @@ -1,32 +0,0 @@ -This example is equivalent to the default settings if no `audit_config` stanza -is provided. - -```hcl -audit_config { - audit_filter_overrides { - sensitive = "redact" - secret = "redact" - } -} -``` - -This example will HMAC sensitive fields, and encrypt secrets. - -```hcl -audit_config { - audit_filter_overrides { - sensitive = "hmac-sha256" - secret = "encrypt" - } -} -``` - -This example will not apply a filter to sensitive fields. - -```hcl -audit_config { - audit_filter_overrides { - sensitive = "" - } -} -``` \ No newline at end of file diff --git a/website/content/partials/configuration-reference/events/common-audit_config-parameters.mdx b/website/content/partials/configuration-reference/events/common-audit_config-parameters.mdx deleted file mode 100644 index 1e30194f0..000000000 --- a/website/content/partials/configuration-reference/events/common-audit_config-parameters.mdx +++ /dev/null @@ -1,2 +0,0 @@ -- `audit_filter_overrides` - Specifies overrides for the filter operations that - are applied to audit events. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/events/common-audit_filter_overrides-parameters.mdx b/website/content/partials/configuration-reference/events/common-audit_filter_overrides-parameters.mdx deleted file mode 100644 index b581da6d5..000000000 --- a/website/content/partials/configuration-reference/events/common-audit_filter_overrides-parameters.mdx +++ /dev/null @@ -1,5 +0,0 @@ -- `sensitive` `(string: "", "encrypt", "hmac-sha256", "redact")` - Specifies - the filter operation to apply to fields that are classified as sensitive. - -- `secret` `(string: "", "encrypt", "hmac-sha256", "redact")` - Specifies - the filter operation to apply to fields that are classified as secret. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/events/common-sink-intro.mdx b/website/content/partials/configuration-reference/events/common-sink-intro.mdx deleted file mode 100644 index bbf0546ca..000000000 --- a/website/content/partials/configuration-reference/events/common-sink-intro.mdx +++ /dev/null @@ -1,29 +0,0 @@ -These parameters are shared across all sink types: - -- `name` - Specify a name for the sink. - -- `description` - Specify a description for the sink. - -- `event_types` - Specifies a list of event types that will be sent to the sink. - Can be `*`, `audit`, `error`, `observation`, `system`, or `telemetry`. - -- `event_source_url` - Specifies an optional event source URL for the sink. If - not specified, the default source will be composed of the - `https://hashicorp.com/boundary.io/ServerName/Path/FileName`. - -- `allow_filters` - Specifies a set of predicates for including an event in the - sink. If any filter matches, the event will be included. For more information, - on using filters see: [event filtering](/boundary/docs/monitor/events/filter-events) - -- `deny_filters` - Specifies a set predicates for excluding an event in the - sink. If any filter matches, the event will be excluded. For more information - on using filters see: [event filtering](/boundary/docs/monitor/events/filter-events) - -- `format` - Specifies the format for the sink. Can be `cloudevents-json`, - `cloudevents-text`, `hclog-json`, or `hclog-text`. - -- `type` - Specifies the type of sink. Can be `stderr` or `file`. - -- `audit_config` - Specifies configuration for the processing of audit events - for the sink. This is ignored if the sink is not configured to receive - `audit` events. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/events/default-events-stanza.mdx b/website/content/partials/configuration-reference/events/default-events-stanza.mdx deleted file mode 100644 index 121315da1..000000000 --- a/website/content/partials/configuration-reference/events/default-events-stanza.mdx +++ /dev/null @@ -1,15 +0,0 @@ -If no event stanza is specified then the following default is used: - -```hcl -events { - audit_enabled = false - observations_enabled = true - sysevents_enabled = true - telemetry_enabled = false - sink "stderr" { - name = "default" - event_types = ["*"] - format = "cloudevents-json" - } -} -``` diff --git a/website/content/partials/configuration-reference/events/events-stanza-intro.mdx b/website/content/partials/configuration-reference/events/events-stanza-intro.mdx deleted file mode 100644 index 28527587a..000000000 --- a/website/content/partials/configuration-reference/events/events-stanza-intro.mdx +++ /dev/null @@ -1,40 +0,0 @@ -The `events` stanza configures Boundary events-specific parameters. - -Example: - -```hcl -events { - observations_enabled = true - sysevents_enabled = true - telemetry_enabled = false - sink "stderr" { - name = "all-events" - description = "All events sent to stderr" - event_types = ["*"] - format = "hclog-text" - } - sink { - name = "obs-sink" - description = "Observations sent to a file" - event_types = ["observation"] - format = "cloudevents-json" - file { - path = "/var/log/boundary" - file_name = "events.ndjson" - } - } -} -``` - -- `audit_enabled` - Specifies if audit events should be emitted. - -- `observations_enabled` - Specifies if observation events should be emitted. - -- `sysevents_enabled` - Specifies if system events should be emitted. - -- `telemetry_enabled` - Specifies if telemetry events should be emitted. -To receive telemetry events, you must also set `observations_enabled` to `true`. - -- `sink` - Specifies the configuration of an event sink. Currently, two types of -sink are supported: [file](/boundary/docs/monitor/events/file) and [stderr](/boundary/docs/monitor/events/stderr). If no sinks are configured then all -events will be sent to a default stderr sink. Events may be sent to multiple sinks. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/events/file-parameters.mdx b/website/content/partials/configuration-reference/events/file-parameters.mdx deleted file mode 100644 index 1893d1e8f..000000000 --- a/website/content/partials/configuration-reference/events/file-parameters.mdx +++ /dev/null @@ -1,13 +0,0 @@ -These parameters are only valid for a `file` sink. - -- `file_name` - Specifies the file name for the sink. - -- `path` - Optionally specifies the file path for the sink. - -- `rotate_bytes` - Optionally specifies the number of bytes that should trigger rotation of - a file sink. - -- `rotate_duration` - Optionally specifies how often a file sink should be rotated. - -- `rotate_max_files` - Optionally specifies how many historical rotated files should be kept - for a file sink. diff --git a/website/content/partials/configuration-reference/events/file-sink-intro.mdx b/website/content/partials/configuration-reference/events/file-sink-intro.mdx deleted file mode 100644 index d67424876..000000000 --- a/website/content/partials/configuration-reference/events/file-sink-intro.mdx +++ /dev/null @@ -1,18 +0,0 @@ -The file sink configures Boundary to send events to a file. - -```hcl -sink { - name = "obs-sink" - description = "Observations sent to a file" - event_types = ["observation"] - format = "cloudevents-json" - file { - path = "/var/log/boundary" - file_name = "events.ndjson" - } - } -``` - -The `sink` stanza may be specified more than once to make Boundary send events -to multiple sinks; however, each file sink must have a unique `path` + -`file_name`. diff --git a/website/content/partials/configuration-reference/events/stderr-intro.mdx b/website/content/partials/configuration-reference/events/stderr-intro.mdx deleted file mode 100644 index b988c1e06..000000000 --- a/website/content/partials/configuration-reference/events/stderr-intro.mdx +++ /dev/null @@ -1,11 +0,0 @@ -The stderr sink configures Boundary to send events to a stderr. - -```hcl - -sink "stderr" { - name = "all-events" - description = "All events sent to stderr" - event_types = ["*"] - format = "hclog-text" -} -``` \ No newline at end of file diff --git a/website/content/partials/configuration-reference/events/stderr-parameters.mdx b/website/content/partials/configuration-reference/events/stderr-parameters.mdx deleted file mode 100644 index 70801571a..000000000 --- a/website/content/partials/configuration-reference/events/stderr-parameters.mdx +++ /dev/null @@ -1 +0,0 @@ -There are parameters are only valid for a `stderr` sink. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/listener-purpose.mdx b/website/content/partials/configuration-reference/listeners/listener-purpose.mdx deleted file mode 100644 index 9c0579f50..000000000 --- a/website/content/partials/configuration-reference/listeners/listener-purpose.mdx +++ /dev/null @@ -1,24 +0,0 @@ -The `purpose` field is used to determine what part of Boundary's functionality is -started and exposed for a given listener block. Each listener must have a `purpose` set. - -Currently, Boundary recognizes the following listener purposes: - -- `api`: Starts up and exposes Boundary's controller API. - At least one `api` listener must be present if a Boundary - instance is set-up as a controller. - By default, it runs on `:9200`. - -- `cluster`: Starts up and exposes Boundary's worker and - controller communication layer. Only one `cluster` listener - is allowed per Boundary instance. Must be present if a Boundary - instance is set-up as a controller. - By default, it runs on `:9201`. - -- `proxy`: Starts up a Boundary Worker. By default, it runs -on `:9202`. - -- `ops`: Starts up and exposes Boundary's operational -endpoints (eg: /health). By default, it runs on `:9203`. -This listener's exposed functionality depends on what Boundary -components you're running on any given Boundary instance (eg: Health does not -run unless your Boundary instance has a controller running) diff --git a/website/content/partials/configuration-reference/listeners/tcp-configure-custom-http-response-headers.mdx b/website/content/partials/configuration-reference/listeners/tcp-configure-custom-http-response-headers.mdx deleted file mode 100644 index b5395d7df..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-configure-custom-http-response-headers.mdx +++ /dev/null @@ -1,83 +0,0 @@ -This example shows configuring custom http response headers. Operators can configure -`"custom_api_response_headers"` and `"custom_ui_response_headers"` sub-stanzas in the listener stanza to -set custom http headers that are appropriate to their applications. Examples of such headers are -`"Strict-Transport-Security"` and `"Content-Security-Policy"` which are known HTTP headers, and could be -configured to harden the security of an application communicating with the Boundary endpoints. Note that -vulnerability scans often examine such security related HTTP headers. In addition, you can configure -application-specific custom headers. For example, `"X-Custom-Header"` has been configured in the example -below. - -```hcl -listener "tcp" { - custom_api_response_headers { - "default" = { - "Strict-Transport-Security" = ["max-age=31536000; includeSubDomains"], - "X-Custom-Header" = ["Custom Header Default Value"], - }, - "2xx" = { - "X-Custom-Header" = ["Custom Header Value 1", "Custom Header Value 2"], - }, - "301" = { - "Strict-Transport-Security" = ["max-age=31536000"], - }, - } - custom_ui_response_headers { - "default" = { - "Strict-Transport-Security" = ["max-age=31536000; includeSubDomains"], - "Content-Security-Policy" = ["default-src 'none'; script-src 'self' 'wasm-unsafe-eval'; frame-src 'self'; font-src 'self'; connect-src 'self'; img-src 'self' data:; style-src 'self'; media-src 'self'; manifest-src 'self'; style-src-attr 'self'; frame-ancestors 'self'"], - "X-Custom-Header" = ["Custom Header Default Value"], - }, - "2xx" = { - "X-Custom-Header" = ["Custom Header Value 1", "Custom Header Value 2"], - }, - "301" = { - "Strict-Transport-Security" = ["max-age=31536000"], - "Content-Security-Policy" = ["default-src 'none'; script-src 'none'; connect-src 'none'"], - }, - } -} -``` - -Note that Boundary requires `script-src 'wasm-unsafe-eval'` for playback of session recordings. - -In situations where a header is defined under several status code subsections, -Boundary returns the header matching the most specific response code. For example, -with the config example below, a `307` response would return `307 Custom header value`, -while a `306` would return `3xx Custom header value`. - -```hcl -listener "tcp" { - custom_api_response_headers { - "default" = { - "X-Custom-Header" = ["default Custom header value"] - }, - "3xx" = { - "X-Custom-Header" = ["3xx Custom header value"] - }, - "307" = { - "X-Custom-Header" = ["307 Custom header value"] - } - } -} -``` - -There may also be situations where default or collective status headers have been defined, -but you do not want them returned for a specific status code. You can unset headers at any -level by defining the headers as an empty list. - -```hcl -listener "tcp" { - custom_api_response_headers { - "default" = { - "X-Custom-Header" = ["default Custom header value"] - }, - "3xx" = { - "X-Custom-Header" = ["3xx Custom header value"] - }, - "307" = { - // Do not return this header for 307 responses - "X-Custom-Header" = [] - } - } -} -``` diff --git a/website/content/partials/configuration-reference/listeners/tcp-configure-tls.mdx b/website/content/partials/configuration-reference/listeners/tcp-configure-tls.mdx deleted file mode 100644 index 166b91321..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-configure-tls.mdx +++ /dev/null @@ -1,9 +0,0 @@ -This example shows enabling a TLS listener. - -```hcl -listener "tcp" { - purpose = "api" - tls_cert_file = "/etc/certs/Boundary.crt" - tls_key_file = "/etc/certs/Boundary.key" -} -``` \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/tcp-custom-api-response-headers.mdx b/website/content/partials/configuration-reference/listeners/tcp-custom-api-response-headers.mdx deleted file mode 100644 index b1b675e49..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-custom-api-response-headers.mdx +++ /dev/null @@ -1,18 +0,0 @@ -- `default` `(key-value-map: {})` - A map of string header names to an array of - string values. The default headers are set on all endpoints regardless of - the status code value. For an example, refer to the - [Listeners custom http response headers](#listener-s-custom-response-headers) - section. - -- `` `(key-value-map: {})` - A map of string header names - to an array of string values. These headers are set only when the response status - code falls under the collective status code. - For example, `"2xx" = {"Header-A": ["Value1", "Value2"]}`, `"Header-A"` - is set when the http response status code is `"200"`, `"204"`, etc. This overrides - headers defined at the `default` level. - -- `` `(key-value-map: {})` - A map of string header names - to an array of string values. These headers are set only when the specific status - code is returned. For example, `"200" = {"Header-A": ["Value1", "Value2"]}`, `"Header-A"` - is set when the http response status code is `"200"`. This overrides headers defined at - the `default` and `collective status code` level. diff --git a/website/content/partials/configuration-reference/listeners/tcp-custom-response-headers.mdx b/website/content/partials/configuration-reference/listeners/tcp-custom-response-headers.mdx deleted file mode 100644 index 57c907c84..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-custom-response-headers.mdx +++ /dev/null @@ -1,13 +0,0 @@ -Boundary supports defining custom HTTP response headers for all requests on any Boundary controller. -Headers are defined based on the returned status code. For example, you can define a list of -custom response headers for the `200` status code, and another list of custom response headers for -the `307` status code, and so on. You can also define headers based on the hundred-level status -code. For example, a list of headers applied to the `4xx` code will be applied to 400, 401, 404, and -all other 400-level status codes. The more specific the status, the higher priority it has. -Default headers are overwritten by hundred-level headers, which are overwritten by status-specific -headers. - -There are two different config parameters that define headers: `custom_api_response_headers` and -`custom_ui_response_headers`. API headers apply to API endpoints, currently all paths starting -with `/v1/`. UI headers apply to all other paths. This allows for configuring headers specifically -for serving content to a web browser, such as CSP headers. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/tcp-custom-ui-response-headers.mdx b/website/content/partials/configuration-reference/listeners/tcp-custom-ui-response-headers.mdx deleted file mode 100644 index c08ae12e6..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-custom-ui-response-headers.mdx +++ /dev/null @@ -1,18 +0,0 @@ -- `default` `(key-value-map: {})` - A map of string header names to an array of - string values. The default headers are set on all endpoints regardless of - the status code value. For an example, refer to the - [Listeners custom http response headers](#listener-s-custom-response-headers) - section. - -- `` `(key-value-map: {})` - A map of string header names - to an array of string values. These headers are set only when the response status - code falls under the collective status code. - For example, `"2xx" = {"Header-A": ["Value1", "Value2"]}`, `"Header-A"` - is set when the http response status code is `"200"`, `"204"`, etc. This overrides - headers defined at the `default` level. - -- `` `(key-value-map: {})` - A map of string header names - to an array of string values. These headers are set only when the specific status - code is returned. For example, `"200" = {"Header-A": ["Value1", "Value2"]}`, `"Header-A"` - is set when the http response status code is `"200"`. This overrides headers defined at - the `default` and `collective status code` level. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/tcp-general-parameters.mdx b/website/content/partials/configuration-reference/listeners/tcp-general-parameters.mdx deleted file mode 100644 index 6859b23c3..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-general-parameters.mdx +++ /dev/null @@ -1,58 +0,0 @@ -- `purpose` `(string: "")` - Specifies the purpose. Can be `api`, `cluster`, - `proxy`, or `ops`. - -- `address` `(string: "127.0.0.1:9200")` – Specifies the address to bind to for - listening. - -- `http_idle_timeout` `(string: "5m")` - Specifies the maximum amount of time to - wait for the next request when keep-alives are enabled. If `http_idle_timeout` - is zero, the value of `http_read_timeout` is used. If both are zero, the value - of `http_read_header_timeout` is used. This is specified using a label suffix - like `"30s"` or `"1h"`. - -- `http_read_header_timeout` `(string: "10s")` - Specifies the amount of time - allowed to read request headers. This is specified using a label suffix like - `"30s"` or `"1h"`. - -- `http_read_timeout` `(string: "30s")` - Specifies the maximum duration for - reading the entire request, including the body. This is specified using a - label suffix like `"30s"` or `"1h"`. - -- `http_write_timeout` `(string: "0")` - Specifies the maximum duration before - timing out writes of the response and is reset whenever a new request's header - is read. The default value of `"0"` means infinity. This is specified using a - label suffix like `"30s"` or `"1h"`. - - - -- `max_request_duration` `(string: "90s")` – Specifies the maximum - request duration allowed before Boundary cancels the request. This overrides - `default_max_request_duration` for this listener. - -- `cors_enabled` `(boolean: true)` - Specifies if CORS should be enabled, which - allows Boundary to support external browser-based clients (not including admin - UI), such as Boundary Desktop. If not specified, CORS will be enabled with an - allowed origin that grants access to Boundary Desktop, unless overridden with - `cors_disable_default_allowed_origin_values`. - -- `cors_disable_default_allowed_origin_values` `(boolean: false)` - Specifies - that Boundary should not append default allowed origin values to any specified - in `cors_allowed_origins`, such as Boundary Desktop's origin. This also - disables the behavior of enabling CORS if `cors_enabled` is not specified. - -- `cors_allowed_origins` `(array(string): ["serve://boundary"])` - An array of - allowed CORS origins. Origins must include protocol, host, and port (if port - is different than the default for the specified protocol). To allow all - origins, set to `['*']`. By default, Boundary Desktop's origin - `serve://boundary` is appended to any values included here, unless - `cors_disable_default_allowed_origin_values` is specified. - -- `cors_allowed_headers` `(array(string): [])` – An array specifying headers - that are permitted to be on cross-origin requests. Headers set via this - parameter will be appended to the list of headers that Boundary allows by - default, such as `"Content-Type"`, `"X-Requested-With"`, and - `"Authorization"`. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/tcp-intro.mdx b/website/content/partials/configuration-reference/listeners/tcp-intro.mdx deleted file mode 100644 index e97eef8e3..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-intro.mdx +++ /dev/null @@ -1,12 +0,0 @@ -The TCP listener configures Boundary to listen on a TCP address/port. - -```hcl -listener "tcp" { - purpose = "api" - address = "127.0.0.1:9200" -} -``` - -The `listener` stanza may be specified more than once to make Boundary listen on -multiple interfaces; however, only one listener marked for `cluster` purpose is -allowed. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/tcp-listen-on-mulitple-interfaces.mdx b/website/content/partials/configuration-reference/listeners/tcp-listen-on-mulitple-interfaces.mdx deleted file mode 100644 index 057a1aaa9..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-listen-on-mulitple-interfaces.mdx +++ /dev/null @@ -1,17 +0,0 @@ -This example shows Boundary listening on a private interface, as well as localhost. - -```hcl -listener "tcp" { - purpose = "api" - address = "127.0.0.1:9200" -} - -listener "tcp" { - purpose = "cluster" - address = "10.0.0.5:9201" -} -``` - -[golang-tls]: https://golang.org/src/crypto/tls/cipher_suites.go -[api-addr]: /boundary/docs/configuration#api_addr -[cluster-addr]: /boundary/docs/configuration#cluster_addr diff --git a/website/content/partials/configuration-reference/listeners/tcp-telemetry.mdx b/website/content/partials/configuration-reference/listeners/tcp-telemetry.mdx deleted file mode 100644 index 2fe5806d7..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-telemetry.mdx +++ /dev/null @@ -1,2 +0,0 @@ -- `unauthenticated_metrics_access` `(string: "false")` - If set to true, allows - unauthenticated access to the `/v1/sys/metrics` endpoint. diff --git a/website/content/partials/configuration-reference/listeners/tcp-tls.mdx b/website/content/partials/configuration-reference/listeners/tcp-tls.mdx deleted file mode 100644 index 0e146d156..000000000 --- a/website/content/partials/configuration-reference/listeners/tcp-tls.mdx +++ /dev/null @@ -1,69 +0,0 @@ -The `tls` parameters are valid for `api` and `ops` listeners. The `cluster` -and `proxy` connections use their own ephemeral TLS stacks. For more -information, refer to [TLS in Boundary](/boundary/docs/secure/encryption/connections-tls). - -- `tls_disable` `(string: "false")` – Specifies if TLS will be disabled. Boundary - assumes TLS by default, so you must explicitly disable TLS to opt-in to - insecure communication. - -- `tls_cert_file` `(string: )` – - Specifies the path to the certificate for TLS. To configure the listener to - use a CA certificate, concatenate the primary certificate and the CA - certificate together. The primary certificate should appear first in the - combined file. On `SIGHUP`, the path set here _at Boundary startup_ will be - used for reloading the certificate; modifying this value while Boundary is - running will have no effect for `SIGHUP`s. - -- `tls_key_file` `(string: )` – - Specifies the path to the private key for the certificate. If the key file is - encrypted, you will be prompted to enter the passphrase on server startup. The - passphrase must stay the same between key files when reloading your - configuration using `SIGHUP`. On `SIGHUP`, the path set here _at Boundary - startup_ will be used for reloading the certificate; modifying this value - while Boundary is running will have no effect for `SIGHUP`s. - -- `tls_min_version` `(string: "tls12")` – Specifies the minimum supported - version of TLS. Accepted values are "tls10", "tls11", "tls12" or "tls13". - - TLS 1.1 and lower are generally considered insecure. - -- `tls_max_version` `(string: "tls13")` – Specifies the maximum supported - version of TLS, useful if appliances (e.g. load balancers) are not yet capable - of higher levels. Accepted values are "tls10", "tls11", "tls12" or "tls13". - - TLS 1.1 and lower are generally considered insecure. - -- `tls_cipher_suites` `(string: "")` – Override the default list of supported - ciphersuites (which varies by TLS version) with the the specified - comma-delimited list. The list of all available ciphersuites is available in - the [Golang TLS documentation][golang-tls]. - -- `tls_prefer_server_cipher_suites` `(string: "false")` – Specifies to prefer the - server's ciphersuite over the client ciphersuites. - -- `tls_require_and_verify_client_cert` `(string: "false")` – Turns on client - authentication for this listener; the listener will require a presented - client cert that successfully validates against system CAs. - -- `tls_client_ca_file` `(string: "")` – PEM-encoded Certificate Authority file - used for checking the authenticity of client. - - \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/unix-configure-tls.mdx b/website/content/partials/configuration-reference/listeners/unix-configure-tls.mdx deleted file mode 100644 index ca5b86c09..000000000 --- a/website/content/partials/configuration-reference/listeners/unix-configure-tls.mdx +++ /dev/null @@ -1,10 +0,0 @@ -This example shows enabling a TLS listener. - -```hcl -listener "unix" { - purpose = "api" - address = "/var/run/boundary-api.sock" - tls_cert_file = "/etc/certs/Boundary.crt" - tls_key_file = "/etc/certs/Boundary.key" -} -``` \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/unix-general-parameters.mdx b/website/content/partials/configuration-reference/listeners/unix-general-parameters.mdx deleted file mode 100644 index 077f2266e..000000000 --- a/website/content/partials/configuration-reference/listeners/unix-general-parameters.mdx +++ /dev/null @@ -1,57 +0,0 @@ -- `purpose` `(string: "")` - Specifies the purpose. Can be `api`, `ops` or `cluster`. - -- `address` `(string: "")` – Specifies the address (filesystem path) to bind to - for listening. - -- `http_idle_timeout` `(string: "5m")` - Specifies the maximum amount of time to - wait for the next request when keep-alives are enabled. If `http_idle_timeout` - is zero, the value of `http_read_timeout` is used. If both are zero, the value - of `http_read_header_timeout` is used. This is specified using a label suffix - like `"30s"` or `"1h"`. - -- `http_read_header_timeout` `(string: "10s")` - Specifies the amount of time - allowed to read request headers. This is specified using a label suffix like - `"30s"` or `"1h"`. - -- `http_read_timeout` `(string: "30s")` - Specifies the maximum duration for - reading the entire request, including the body. This is specified using a - label suffix like `"30s"` or `"1h"`. - -- `http_write_timeout` `(string: "0")` - Specifies the maximum duration before - timing out writes of the response and is reset whenever a new request's header - is read. The default value of `"0"` means infinity. This is specified using a - label suffix like `"30s"` or `"1h"`. - - - -- `max_request_duration` `(string: "90s")` – Specifies the maximum - request duration allowed before Boundary cancels the request. This overrides - `default_max_request_duration` for this listener. - -- `cors_enabled` `(boolean: true)` - Specifies if CORS should be enabled, which - allows Boundary to support external browser-based clients (not including admin - UI), such as Boundary Desktop. If not specified, CORS will be enabled with an - allowed origin that grants access to Boundary Desktop, unless overridden with - `cors_disable_default_allowed_origin_values`. - -- `cors_disable_default_allowed_origin_values` `(boolean: false)` - Specifies - that Boundary should not append default allowed origin values to any specified - in `cors_allowed_origins`, such as Boundary Desktop's origin. This also - disables the behavior of enabling CORS if `cors_enabled` is not specified. - -- `cors_allowed_origins` `(array(string): ["serve://boundary"])` - An array of - allowed CORS origins. Origins must include protocol, host, and port (if port - is different than the default for the specified protocol). To allow all - origins, set to `['*']`. By default, Boundary Desktop's origin - `serve://boundary` is appended to any values included here, unless - `cors_disable_default_allowed_origin_values` is specified. - -- `cors_allowed_headers` `(array(string): [])` – An array specifying headers - that are permitted to be on cross-origin requests. Headers set via this - parameter will be appended to the list of headers that Boundary allows by - default, such as `"Content-Type"`, `"X-Requested-With"`, and - `"Authorization"`. diff --git a/website/content/partials/configuration-reference/listeners/unix-intro.mdx b/website/content/partials/configuration-reference/listeners/unix-intro.mdx deleted file mode 100644 index 4cb8043f0..000000000 --- a/website/content/partials/configuration-reference/listeners/unix-intro.mdx +++ /dev/null @@ -1,15 +0,0 @@ -The `unix` listener configures Boundary to listen on a Unix domain socket. - -It is only available for listeners for `api` and `cluster` purpose. -Unix sockets cannot currently be used for `"proxy"` purpose on a worker. - -```hcl -listener "unix" { - purpose = "api" - address = "/var/run/boundary-api.sock" -} -``` - -The `listener` stanza may be specified more than once to make Boundary listen on -multiple interfaces; however, only one listener marked for `cluster` purpose is -allowed. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/unix-listen-on-multiple-interfaces.mdx b/website/content/partials/configuration-reference/listeners/unix-listen-on-multiple-interfaces.mdx deleted file mode 100644 index 516632918..000000000 --- a/website/content/partials/configuration-reference/listeners/unix-listen-on-multiple-interfaces.mdx +++ /dev/null @@ -1,13 +0,0 @@ -This example shows Boundary listening on a private interface, as well as localhost. - -```hcl -listener "tcp" { - purpose = "api" - address = "/var/run/boundary-api.sock" -} - -listener "tcp" { - purpose = "cluster" - address = "/var/run/boundary-cluster.sock" -} -``` diff --git a/website/content/partials/configuration-reference/listeners/unix-telemetry.mdx b/website/content/partials/configuration-reference/listeners/unix-telemetry.mdx deleted file mode 100644 index 3413e442c..000000000 --- a/website/content/partials/configuration-reference/listeners/unix-telemetry.mdx +++ /dev/null @@ -1,2 +0,0 @@ -- `unauthenticated_metrics_access` `(string: "false")` - If set to true, allows - unauthenticated access to the `/v1/sys/metrics` endpoint. \ No newline at end of file diff --git a/website/content/partials/configuration-reference/listeners/unix-tls-parameters.mdx b/website/content/partials/configuration-reference/listeners/unix-tls-parameters.mdx deleted file mode 100644 index eecf09325..000000000 --- a/website/content/partials/configuration-reference/listeners/unix-tls-parameters.mdx +++ /dev/null @@ -1,70 +0,0 @@ -The `tls` parameters are valid for `api` and `ops` listeners. `cluster` -and `proxy` connections use their own ephemeral TLS stacks. For more -information, refer to [TLS in Boundary](/boundary/docs/secure/encryption/connections-tls). - -- `tls_disable` `(string: "false")` – Specifies if TLS will be disabled. Boundary - assumes TLS by default, so you must explicitly disable TLS to opt-in to - insecure communication. - -- `tls_cert_file` `(string: )` – - Specifies the path to the certificate for TLS. To configure the listener to - use a CA certificate, concatenate the primary certificate and the CA - certificate together. The primary certificate should appear first in the - combined file. On `SIGHUP`, the path set here _at Boundary startup_ will be - used for reloading the certificate; modifying this value while Boundary is - running will have no effect for `SIGHUP`s. - -- `tls_key_file` `(string: )` – - Specifies the path to the private key for the certificate. If the key file is - encrypted, you will be prompted to enter the passphrase on server startup. The - passphrase must stay the same between key files when reloading your - configuration using `SIGHUP`. On `SIGHUP`, the path set here _at Boundary - startup_ will be used for reloading the certificate; modifying this value - while Boundary is running will have no effect for `SIGHUP`s. - -- `tls_min_version` `(string: "tls12")` – Specifies the minimum supported - version of TLS. Accepted values are "tls10", "tls11", "tls12" or "tls13". - - TLS 1.1 and lower are generally considered insecure. - -- `tls_max_version` `(string: "tls13")` – Specifies the maximum supported - version of TLS, useful if appliances (e.g. load balancers) are not yet capable - of higher levels. Accepted values are "tls10", "tls11", "tls12" or "tls13". - - TLS 1.1 and lower are generally considered insecure. - -- `tls_cipher_suites` `(string: "")` – Override the default list of supported - ciphersuites (which varies by TLS version) with the the specified - comma-delimited list. The list of all available ciphersuites is available in - the [Golang TLS documentation][golang-tls]. - -- `tls_prefer_server_cipher_suites` `(string: "false")` – Specifies to prefer the - server's ciphersuite over the client ciphersuites. - -- `tls_require_and_verify_client_cert` `(string: "false")` – Turns on client - authentication for this listener; the listener will require a presented - client cert that successfully validates against system CAs. - -- `tls_client_ca_file` `(string: "")` – PEM-encoded Certificate Authority file - used for checking the authenticity of client. - - diff --git a/website/content/partials/configuration-reference/workers/common-worker-parameters.mdx b/website/content/partials/configuration-reference/workers/common-worker-parameters.mdx deleted file mode 100644 index f22e681f8..000000000 --- a/website/content/partials/configuration-reference/workers/common-worker-parameters.mdx +++ /dev/null @@ -1,78 +0,0 @@ -The following fields apply to all registration mechanisms. - -```hcl -worker { - public_addr = "5.1.23.198" - - # Local storage path required if session recording is enabled - recording_storage_path = "tmp/boundary/" - - # Minimum available disk space required in the local storage path if session recording is enabled - recording_storage_minimum_available_capacity = "500MB" - - # Mutually exclusive with hcp_boundary_cluster_id - initial_upstreams = [ - "10.0.0.1", - "10.0.0.2", - ] - - tags { - type = ["prod", "webservers"] - region = ["us-east-1"] - } - - # HCP Boundary only - # hcp_boundary_cluster_id = "....." -} -``` - -- `public_addr` - Specifies the public host or IP address (and optionally port) - where clients can reach the worker for proxying. By default, it uses the - address of the listener marked for `proxy` purpose. This is useful for cloud - environments that do not bind a publicly accessible IP directly to a NIC on - the host, such as an Amazon EIP. - - You should omit this parameter in multi-hop configurations if this self-managed worker connects to an upstream HCP-managed worker. - - This value can reference any of the following: - - a direct address string - - read an address from a file on disk (file://) - - read an address from an environment variable (env://) - -- `initial_upstreams` - A list of hosts/IP addresses and optionally ports for - reaching the Boundary cluster. The port will default to `:9201` if not - specified. This value can be a direct access string array with the addresses, - or it can refer to a file on disk (`file://`) from which the addresses will be - read, or an environment variable (`env://`) from which to read the addresses. When - using environment variable or file, their contents must formatted as a JSON array: - `["127.0.0.1", "192.168.0.1", "10.0.0.1"]` - - Self-managed workers connecting to HCP Boundary require the [`hcp_boundary_cluster_id`](/boundary/docs/configuration/worker/#hcp_boundary_cluster_id) parameter instead of `initial upstreams`, unless you are configuring an HCP-managed worker as an ingress worker. - If you configure a self-managed worker with both `initial_upstreams` and `hcp_boundary_cluster_id`, the worker configuration fails. - -- `hcp_boundary_cluster_id` - A string required to configure workers using worker-led or controller-led registration - to connect to your HCP Boundary cluster rather than specifying -`initial_upstreams`. This parameter is valid only for workers using the worker-led or controller-led - registration method and for workers directly connected to HCP Boundary. - -- `recording_storage_path` - A path to the local storage for recorded sessions. - Boundary stores session recordings in the local storage while they are in progress. - When the session is complete, Boundary moves the local session recording to remote storage and deletes the local copy. - -- `recording_storage_minimum_available_capacity` - A value measured in bytes that - defines the worker's local storage state. Boundary compares this value to the available local disk space found in the `recording_storage_path` and determines if a worker can perform session recording operations. - The supported suffixes are kb, kib, mb, mib, gb, gib, tb, tib, which are not case sensitive. Example: 2GB, 2gb, 2GiB, 2gib. - The possible storage states based on the `recording_storage_minimum_available_capacity` are: - - Available - The worker has storage above the threshold and can proxy sessions that have session recording enabled. - - Low storage - The worker has storage below the threshold. It allows existing sessions to continue without interruption but prevents proxying new sessions that have session recording enabled. The worker cannot record new sessions or play back existing recordings. - - Critically low storage - The worker falls below half the storage threshold. It forcefully closes existing sessions with session recording. The worker cannot record new sessions or play back existing recordings. - - Out of storage - The worker is out of local disk space. It cannot record new sessions or play back existing recordings. The worker enters an unrecoverable state, requiring an administrator to intervene and resolve the issue. - - Not configured - The worker lacks a configured local storage path. - - Unknown - The worker starts with this default local storage state. This state indicates that the worker's local storage state is not yet known. - -- `tags` - A map of key-value pairs where values are an array of strings. Most - commonly used for [filtering](/boundary/docs/filtering) targets a - worker can proxy via [worker - tags](/boundary/docs/workers/worker-tags). On `SIGHUP`, the tags - set here will be re-parsed and new values used. It can also be a string - referring to a file on disk (`file://`) or an environment variable (`env://`). diff --git a/website/content/partials/configuration-reference/workers/complete-configuration-example.mdx b/website/content/partials/configuration-reference/workers/complete-configuration-example.mdx deleted file mode 100644 index 1f9711037..000000000 --- a/website/content/partials/configuration-reference/workers/complete-configuration-example.mdx +++ /dev/null @@ -1,43 +0,0 @@ -```hcl -listener "tcp" { - purpose = "proxy" - tls_disable = true - address = "127.0.0.1" -} - -worker { - # Path for worker storage, assuming worker-led or controller-led registration. Must be unique across workers - auth_storage_path="/boundary/demo-worker-1" - - # Local storage path required if session recording is enabled - recording_storage_path = "tmp/boundary/" - - # Minimum available disk space required in the local storage path if session recording is enabled - recording_storage_minimum_available_capacity = "500MB" - - # Workers typically need to reach upstreams on :9201 - initial_upstreams = [ - "10.0.0.1", - "10.0.0.2", - "10.0.0.3", - ] - - public_addr = "myhost.mycompany.com" - - tags { - type = ["prod", "webservers"] - region = ["us-east-1"] - } -} - -# The following KMS config is an example only -# Use a production KMS such as AWS KMS for production installs -kms "aead" { - purpose = "worker-auth-storage" - aead_type = "aes-gcm" - key = "X+IJMVT6OnsrIR6G/9OTcJSX+lM9FSPN" - key_id = "worker-auth-storage" -} - - -``` \ No newline at end of file diff --git a/website/content/partials/release-notes/intro.mdx b/website/content/partials/release-notes/intro.mdx deleted file mode 100644 index 533c3abce..000000000 --- a/website/content/partials/release-notes/intro.mdx +++ /dev/null @@ -1,4 +0,0 @@ -Release notes provide an at-a-glance summary of key updates to new versions of Boundary. -For a comprehensive list of product updates, improvements, and bug fixes refer to the [changelog](https://github.com/hashicorp/boundary/blob/main/CHANGELOG.md) included with the Boundary code on GitHub. - -We encourage you to [upgrade to the latest release of Boundary](/boundary/tutorials/self-managed-deployment/upgrade-version) to take advantage of continuing improvements, critical fixes, and new features. \ No newline at end of file diff --git a/website/content/partials/workers/egress-worker-config.mdx b/website/content/partials/workers/egress-worker-config.mdx deleted file mode 100644 index 5ebe243e3..000000000 --- a/website/content/partials/workers/egress-worker-config.mdx +++ /dev/null @@ -1,102 +0,0 @@ -Create the `egress-worker.hcl` file with the relevant configuration information: - - - -```hcl -# disable memory from being swapped to disk -disable_mlock = true - -# listener denoting this is a worker proxy -listener "tcp" { - address = "0.0.0.0:9202" - purpose = "proxy" -} - -# worker block for configuring the specifics of the -# worker service -worker { - public_addr = "" - initial_upstreams = [":9202"] - auth_storage_path = "/var/lib/boundary" - tags { - type = ["worker3", "egress"] - } -} - -# Events (logging) configuration. This -# configures logging for ALL events to both -# stderr and a file at /var/log/boundary/.log -events { - audit_enabled = true - sysevents_enabled = true - observations_enable = true - sink "stderr" { - name = "all-events" - description = "All events sent to stderr" - event_types = ["*"] - format = "cloudevents-json" - } - sink { - name = "file-sink" - description = "All events sent to a file" - event_types = ["*"] - format = "cloudevents-json" - file { - path = "/var/log/boundary" - file_name = "egress-worker.log" - } - audit_config { - audit_filter_overrides { - sensitive = "redact" - secret = "redact" - } - } - } -} - -# kms block for encrypting the authentication PKI material -kms "awskms" { - purpose = "worker-auth-storage" - region = "us-east-1" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey5" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" -} -``` - - - -Refer to the list below for explanations of the parameters used in the example above: - -- `disable mlock (bool: false)` - Disables the server from executing the `mlock` syscall, which prevents memory from being swapped to the disk. -This is fine for local development and testing. -However, it is not recommended for production unless the systems running Boundary use only encrypted swap or do not use swap at all. -Boundary only supports memory locking on UNIX-like systems that support `mlock()` syscall like Linux and FreeBSD. - - On Linux, to give the Boundary executable the ability to use `mlock` syscall without running the process as root, run the following command: - - `sudo setcap cap_ipc_lock=+ep $(readlink -f $(which boundary))` - - If you use a Linux distribution with a modern version of systemd, you can add the following directive to the **"[Service]"** configuration section: - - `LimitMEMLOCK=infinity` - -- `listener` - Configures the listeners on which Boundary serves traffic (API cluster and proxy). -- `worker` - Configures the worker. -If present, `boundary server` starts a worker subprocess. -- `events` - Configures event-specific parameters. - - The example events configuration above is exhaustive and writes all events to both `stderr` and a file. - This configuration may or may not work for your organization's logging solution. - -- `kms` - Configures KMS blocks for [various purposes](/boundary/docs/secure/encryption/data-encryption). - - Refer to the links below for configuration information for the different cloud KMS blocks: - - - [AWS](/boundary/docs/configuration/kms/awskms) - - [Azure](/boundary/docs/configuration/kms/azurekeyvault) - - [GCP](/boundary/docs/configuration/kms/gcpckms) - - [OCI](/boundary/docs/configuration/kms/ocikms) - - [AliCloud](/boundary/docs/configuration/kms/alicloudkms) - - [Vault Transit](/boundary/docs/configuration/kms/transit) - -Refer to the documentation for additional [top-level configuration options](/boundary/docs/configuration) and additional [worker-specific options](/boundary/docs/configuration/workers). \ No newline at end of file diff --git a/website/content/partials/workers/ingress-worker-config.mdx b/website/content/partials/workers/ingress-worker-config.mdx deleted file mode 100644 index 499e27759..000000000 --- a/website/content/partials/workers/ingress-worker-config.mdx +++ /dev/null @@ -1,66 +0,0 @@ -Create the `ingress-worker.hcl` file with the relevant configuration information: - - - -```hcl -# disable memory from being swapped to disk -disable_mlock = true - -# listener denoting this is a worker proxy -listener "tcp" { - address = "0.0.0.0:9202" - purpose = "proxy" -} - -# worker block for configuring the specifics of the -# worker service -worker { - public_addr = "" - initial_upstreams = [":9201"] - auth_storage_path = "/var/lib/boundary" - tags { - type = ["worker1", "upstream"] - } -} - -# Events (logging) configuration. This -# configures logging for ALL events to both -# stderr and a file at /var/log/boundary/.log -events { - audit_enabled = true - sysevents_enabled = true - observations_enable = true - sink "stderr" { - name = "all-events" - description = "All events sent to stderr" - event_types = ["*"] - format = "cloudevents-json" - } - sink { - name = "file-sink" - description = "All events sent to a file" - event_types = ["*"] - format = "cloudevents-json" - file { - path = "/var/log/boundary" - file_name = "ingress-worker.log" - } - audit_config { - audit_filter_overrides { - sensitive = "redact" - secret = "redact" - } - } - } -} - -# kms block for encrypting the authentication PKI material -kms "awskms" { - purpose = "worker-auth-storage" - region = "us-east-1" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey3" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" -} -``` - - \ No newline at end of file diff --git a/website/content/partials/workers/intermediate-worker-config.mdx b/website/content/partials/workers/intermediate-worker-config.mdx deleted file mode 100644 index 10c4d2ef3..000000000 --- a/website/content/partials/workers/intermediate-worker-config.mdx +++ /dev/null @@ -1,66 +0,0 @@ -Create the `intermediate-worker.hcl` file with the relevant configuration information: - - - -```hcl -# disable memory from being swapped to disk -disable_mlock = true - -# listener denoting this is a worker proxy -listener "tcp" { - address = "0.0.0.0:9202" - purpose = "proxy" -} - -# worker block for configuring the specifics of the -# worker service -worker { - public_addr = "" - initial_upstreams = [":9202"] - auth_storage_path = "/var/lib/boundary" - tags { - type = ["worker2", "intermediate"] - } -} - -# Events (logging) configuration. This -# configures logging for ALL events to both -# stderr and a file at /var/log/boundary/.log -events { - audit_enabled = true - sysevents_enabled = true - observations_enable = true - sink "stderr" { - name = "all-events" - description = "All events sent to stderr" - event_types = ["*"] - format = "cloudevents-json" - } - sink { - name = "file-sink" - description = "All events sent to a file" - event_types = ["*"] - format = "cloudevents-json" - file { - path = "/var/log/boundary" - file_name = "intermediate-worker.log" - } - audit_config { - audit_filter_overrides { - sensitive = "redact" - secret = "redact" - } - } - } -} - -# kms block for encrypting the authentication PKI material -kms "awskms" { - purpose = "worker-auth-storage" - region = "us-east-1" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey4" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" -} -``` - - \ No newline at end of file diff --git a/website/content/partials/workers/single-worker-config.mdx b/website/content/partials/workers/single-worker-config.mdx deleted file mode 100644 index f61fe2771..000000000 --- a/website/content/partials/workers/single-worker-config.mdx +++ /dev/null @@ -1,102 +0,0 @@ -Create the `egress-worker.hcl` file with the relevant configuration information: - - - -```hcl -# disable memory from being swapped to disk -disable_mlock = true - -# listener denoting this is a worker proxy -listener "tcp" { - address = "0.0.0.0:9202" - purpose = "proxy" -} - -# worker block for configuring the specifics of the -# worker service -worker { - public_addr = "" - initial_upstreams = [":9201"] - auth_storage_path = "/var/lib/boundary" - tags { - type = ["worker", "egress"] - } -} - -# Events (logging) configuration. This -# configures logging for ALL events to both -# stderr and a file at /var/log/boundary/.log -events { - audit_enabled = true - sysevents_enabled = true - observations_enable = true - sink "stderr" { - name = "all-events" - description = "All events sent to stderr" - event_types = ["*"] - format = "cloudevents-json" - } - sink { - name = "file-sink" - description = "All events sent to a file" - event_types = ["*"] - format = "cloudevents-json" - file { - path = "/var/log/boundary" - file_name = "egress-worker.log" - } - audit_config { - audit_filter_overrides { - sensitive = "redact" - secret = "redact" - } - } - } -} - -# kms block for encrypting the authentication PKI material -kms "awskms" { - purpose = "worker-auth-storage" - region = "us-east-1" - kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey5" - endpoint = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com" -} -``` - - - -Refer to the list below for explanations of the parameters used in the example above: - -- `disable mlock (bool: false)` - Disables the server from executing the `mlock` syscall, which prevents memory from being swapped to the disk. -This is fine for local development and testing. -However, it is not recommended for production unless the systems running Boundary use only encrypted swap or do not use swap at all. -Boundary only supports memory locking on UNIX-like systems that support `mlock()` syscall like Linux and FreeBSD. - - On Linux, to give the Boundary executable the ability to use `mlock` syscall without running the process as root, run the following command: - - `sudo setcap cap_ipc_lock=+ep $(readlink -f $(which boundary))` - - If you use a Linux distribution with a modern version of systemd, you can add the following directive to the **"[Service]"** configuration section: - - `LimitMEMLOCK=infinity` - -- `listener` - Configures the listeners on which Boundary serves traffic (API cluster and proxy). -- `worker` - Configures the worker. -If present, `boundary server` starts a worker subprocess. -- `events` - Configures event-specific parameters. - - The example events configuration above is exhaustive and writes all events to both `stderr` and a file. - This configuration may or may not work for your organization's logging solution. - -- `kms` - Configures KMS blocks for [various purposes](/boundary/docs/secure/encryption/data-encryption). - - Refer to the links below for configuration information for the different cloud KMS blocks: - - - [AWS](/boundary/docs/configuration/kms/awskms) - - [Azure](/boundary/docs/configuration/kms/azurekeyvault) - - [GCP](/boundary/docs/configuration/kms/gcpckms) - - [OCI](/boundary/docs/configuration/kms/ocikms) - - [AliCloud](/boundary/docs/configuration/kms/alicloudkms) - - [Vault Transit](/boundary/docs/configuration/kms/transit) - -Refer to the documentation for additional [top-level configuration options](/boundary/docs/configuration) and additional [worker-specific options](/boundary/docs/configuration/workers). \ No newline at end of file diff --git a/website/content/security.mdx b/website/content/security.mdx deleted file mode 100644 index 94051c7af..000000000 --- a/website/content/security.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: index -page_title: Security -description: >- - Boundary takes security very seriously. Please responsibly disclose any security - vulnerabilities found and we'll handle it quickly. ---- - -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ -> [!IMPORTANT] -> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. -⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ - -# Security - -We understand that many users place a high level of trust in HashiCorp and -the tools we build. We apply best practices and focus on security to make -sure we can maintain the trust of the community. - -We deeply appreciate any effort to disclose vulnerabilities responsibly. - -If you would like to report a vulnerability, please see the -[HashiCorp security page](https://www.hashicorp.com/security), -which has the proper email to communicate with as well as our PGP key. - -If you are not reporting a security sensitive vulnerability, please -open an issue on the standard [GitHub](https://github.com/hashicorp/boundary) -repository. diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json deleted file mode 100644 index d4e77bc21..000000000 --- a/website/data/docs-nav-data.json +++ /dev/null @@ -1,2237 +0,0 @@ -[ - { - "heading": "Get started" - }, - { - "title": "What is Boundary?", - "path": "what-is-boundary" - }, - { - "title": "Why choose Boundary?", - "routes": [ - { - "title": "Use cases", - "path": "overview/use-cases" - }, - { - "title": "Zero trust", - "path": "overview/zero-trust" - }, - { - "title": "Bastion hosts", - "path": "overview/bastion-hosts" - }, - { - "title": "VPNs", - "path": "overview/vpn" - }, - { - "title": "Privileged access management", - "path": "overview/pam" - }, - { - "title": "Software-defined perimeter", - "path": "overview/sdp" - }, - { - "title": "Secrets management tools", - "path": "overview/secrets-management" - }, - { - "title": "Frequently asked questions", - "path": "overview/faq" - } - ] - }, - { - "title": "Quickstart", - "routes": [ - { - "title": "Get started", - "path": "getting-started" - }, - { - "title": "HCP Boundary quick start", - "href": "https://developer.hashicorp.com/boundary/tutorials/hcp-getting-started/" - }, - { - "title": "Self-managed Boundary quick start", - "href": "https://developer.hashicorp.com/boundary/tutorials/oss-getting-started/" - }, - { - "title": "Dev mode quick start", - "routes": [ - { - "title": "Overview", - "path": "getting-started/dev-mode" - }, - { - "title": "Run and log in", - "path": "getting-started/dev-mode/run-and-login" - }, - { - "title": "Connect to a target", - "path": "getting-started/dev-mode/connect-to-dev-target" - } - ] - } - ] - }, - { - "title": "Key concepts", - "routes": [ - { - "title": "Auditing", - "path": "concepts/auditing" - }, - { - "title": "Identity and access management", - "path": "concepts/iam" - }, - { - "title": "Credential management", - "path": "concepts/credential-management" - }, - { - "title": "Workers", - "path": "concepts/workers" - }, - { - "title": "Aliases", - "path": "concepts/aliases" - }, - { - "title": "Transparent sessions", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "concepts/transparent-sessions" - } - ] - }, - { - "title": "Architecture", - "routes": [ - { - "title": "System requirements", - "path": "architecture/system-requirements" - }, - { - "title": "Recommended architecture", - "path": "architecture/recommended-architecture" - }, - { - "title": "Fault tolerance", - "path": "architecture/fault-tolerance" - }, - { - "title": "High availability", - "path": "architecture/high-availability" - } - ] - }, - { - "divider": true - }, - { - "heading": "Boundary operations" - }, - { - "title": "Deploy Boundary", - "routes": [ - { - "title": "In a self-managed environment", - "routes": [ - { - "title": "Overview", - "path": "deploy/self-managed" - }, - { - "title": "Install Boundary", - "path": "deploy/self-managed/install" - }, - { - "title": "Configure controllers", - "path": "deploy/self-managed/configure-controllers" - }, - { - "title": "Deploy workers", - "path": "deploy/self-managed/deploy-workers" - }, - { - "title": "Initialize Boundary", - "path": "deploy/self-managed/initialize" - }, - { - "title": "Install Boundary clients", - "path": "deploy/self-managed/install-clients" - }, - { - "title": "Systemd install", - "hidden": true, - "path": "deploy/self-managed/systemd" - } - ] - }, - { - "title": "On HashiCorp Cloud Platform (HCP)", - "href": "hcp/get-started/deploy-and-login" - }, - { - "title": "Using Terraform", - "routes": [ - { - "title": "Overview", - "path": "deploy/terraform-patterns" - }, - { - "title": "Configure scopes", - "path": "deploy/terraform-patterns/terraform-scopes" - }, - { - "title": "Configure users and auth methods", - "path": "deploy/terraform-patterns/terraform-users-and-auth-methods" - }, - { - "title": "Configure groups and RBAC", - "path": "deploy/terraform-patterns/terraform-groups-and-rbac" - }, - { - "title": "Configure hosts and host management", - "path": "deploy/terraform-patterns/terraform-hosts-and-host-management" - }, - { - "title": "Configure credentials and credential stores", - "path": "deploy/terraform-patterns/terraform-credentials-and-credential-stores" - }, - { - "title": "Configure session recording", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "deploy/terraform-patterns/terraform-session-recording" - }, - { - "title": "Configure targets", - "path": "deploy/terraform-patterns/terraform-targets" - } - ] - } - ] - }, - { - "title": "Secure Boundary", - "routes": [ - { - "title": "Encrypt resources", - "routes": [ - { - "title": "Data encryption", - "path": "secure/encryption/data-encryption" - }, - { - "title": "Connections/TLS", - "path": "secure/encryption/connections-tls" - } - ] - }, - { - "title": "Security model", - "path": "secure/security-model" - } - ] - }, - { - "title": "Monitor Boundary", - "routes": [ - { - "title": "Overview", - "path": "monitor" - }, - { - "title": "Configure listener addresses and ports", - "routes": [ - { - "title": "Listeners", - "path": "monitor/listeners" - }, - { - "title": "TCP listeners", - "path": "monitor/listeners/tcp" - }, - { - "title": "Unix listeners", - "path": "monitor/listeners/unix" - } - ] - }, - { - "title": "Monitor metrics", - "path": "monitor/metrics" - }, - { - "title": "Monitor health", - "path": "monitor/health" - }, - { - "title": "Monitor events", - "routes": [ - { - "title": "Filter events", - "path": "monitor/events/filter-events" - }, - { - "title": "Events parameters", - "path": "monitor/events/events" - }, - { - "title": "Common sink parameters", - "path": "monitor/events/common" - }, - { - "title": "File sink", - "path": "monitor/events/file" - }, - { - "title": "Stderr sink", - "path": "monitor/events/stderr" - } - ] - } - ] - }, - { - "title": "Upgrade Boundary", - "href": "https://developer.hashicorp.com/boundary/tutorials/self-managed-deployment/upgrade-version" - }, - { - "title": "Release notes", - "routes": [ - { - "title": "v0.20.0", - "path": "release-notes/v0_20_0" - }, - { - "title": "v0.19.0", - "path": "release-notes/v0_19_0" - }, - { - "title": "v0.18.0", - "path": "release-notes/v0_18_0" - }, - { - "title": "v0.17.0", - "path": "release-notes/v0_17_0" - }, - { - "title": "v0.16.0", - "path": "release-notes/v0_16_0" - }, - { - "title": "v0.15.0", - "path": "release-notes/v0_15_0" - }, - { - "title": "v0.14.0", - "path": "release-notes/v0_14_0" - }, - { - "title": "v0.13.0", - "path": "release-notes/v0_13_0" - }, - { - "title": "v0.12.0", - "path": "release-notes/v0_12_0" - }, - { - "title": "v0.11.0", - "path": "release-notes/v0_11_0" - }, - { - "title": "v0.10.0", - "path": "release-notes/v0_10_0" - }, - { - "title": "v0.9.0", - "path": "release-notes/v0_9_0" - }, - { - "title": "v0.8.0", - "path": "release-notes/v0_8_0" - }, - { - "title": "v0.7.0", - "path": "release-notes/v0_7_0" - }, - { - "title": "v0.6.0", - "path": "release-notes/v0_6_0" - }, - { - "title": "v0.5.0", - "path": "release-notes/v0_5_0" - }, - { - "title": "v0.4.0", - "path": "release-notes/v0_4_0" - }, - { - "title": "v0.3.0", - "path": "release-notes/v0_3_0" - }, - { - "title": "v0.2.0", - "path": "release-notes/v0_2_0" - }, - { - "title": "v0.1.0", - "path": "release-notes/v0_1_0" - } - ] - }, - { - "divider": true - }, - { - "heading": "Secure access" - }, - { - "title": "Configure workers", - "routes": [ - { - "title": "Overview", - "path": "workers" - }, - { - "title": "Create the worker configuration", - "path": "workers/create" - }, - { - "title": "Register workers", - "path": "workers/registration" - }, - { - "title": "Configure multi-hop sessions", - "routes": [ - { - "title": "Multi-hop sessions", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "workers/multi-hop" - }, - { - "title": "On Boundary Enterprise", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "workers/multi-hop/enterprise" - }, - { - "title": "On HashiCorp Cloud Platform (HCP)", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "workers/multi-hop/hcp" - } - ] - }, - { - "title": "Route traffic through a worker", - "path": "workers/worker-tags" - }, - { - "title": "Configure a worker filter", - "path": "workers/filters" - } - ] - }, - { - "title": "Configure hosts", - "routes": [ - { - "title": "Host discovery", - "path": "hosts" - }, - { - "title": "Sync AWS hosts", - "path": "hosts/aws" - }, - { - "title": "Sync Azure hosts", - "path": "hosts/azure" - }, - { - "title": "Sync GCP hosts", - "path": "hosts/gcp" - } - ] - }, - { - "title": "Configure targets", - "routes": [ - { - "title": "Set up a target", - "routes": [ - { - "title": "Aliases", - "path": "targets/configuration" - }, - { - "title": "Create a target alias", - "path": "targets/configuration/create-target-alias" - }, - { - "title": "Configure transparent sessions", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "targets/configuration/configure-transparent-sessions" - } - ] - }, - { - "title": "Connect to a target", - "routes": [ - { - "title": "Connection workflows", - "path": "targets/connections" - }, - { - "title": "Connect helpers", - "path": "targets/connections/connect-helpers" - }, - { - "title": "Exec flag", - "path": "targets/connections/exec-flag" - }, - { - "title": "SSH ProxyCommand", - "path": "targets/connections/workflow-ssh-proxycommand" - }, - { - "title": "Connect using a target alias", - "path": "targets/connections/connect-target-alias" - }, - { - "title": "Connect using transparent sessions", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "targets/connections/transparent-sessions" - } - ] - } - ] - }, - { - "title": "Configure credentials", - "routes": [ - { - "title": "Credentials in Boundary", - "path": "credentials" - }, - { - "title": "Create a static credential store", - "path": "credentials/static-cred-boundary" - }, - { - "title": "Create a Vault credential store", - "path": "credentials/static-cred-vault" - }, - { - "title": "Configure targets with credential brokering", - "path": "credentials/configure-credential-brokering" - }, - { - "title": "Configure targets with credential injection", - "path": "credentials/configure-credential-injection", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "RDP credential injection compatibility", - "path": "credentials/rdp-testing-and-compatibility-matrix", - "badge": { - "text": "HCP/ENT BETA", - "type": "outlined", - "color": "neutral" - } - } - ] - }, - { - "title": "Monitor access", - "routes": [ - { - "title": "Session recording", - "path": "session-recording", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Record and play back session activity", - "routes": [ - { - "title": "Configure workers for storage", - "path": "session-recording/configuration/configure-worker-storage", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Configure storage provider", - "routes": [ - { - "title": "Amazon S3", - "path": "session-recording/configuration/storage-providers/configure-s3", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "MinIO", - "path": "session-recording/configuration/storage-providers/configure-minio", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "S3-compliant", - "path": "session-recording/configuration/storage-providers/configure-s3-compliant", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - } - ] - }, - { - "title": "Create storage buckets", - "path": "session-recording/configuration/create-storage-bucket", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Enable session recording", - "path": "session-recording/configuration/enable-session-recording", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Find and view recorded sessions", - "path": "session-recording/configuration/manage-recorded-sessions", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Troubleshoot recorded sessions", - "path": "session-recording/configuration/troubleshoot-recorded-sessions", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - } - ] - }, - { - "title": "Implement session recording compliance standards", - "routes": [ - { - "title": "Configure storage policies", - "path": "session-recording/compliance/configure-storage-policy", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Update storage policies", - "path": "session-recording/compliance/update-storage-policy", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Validate recorded sessions", - "path": "session-recording/compliance/validate-session-recordings", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Validate external data store", - "path": "session-recording/compliance/validate-data-store", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - } - ] - }, - { - "title": "Work with BSR data files", - "routes": [ - { - "title": "BSR file data structure", - "path": "session-recording/data/bsr-file-structure", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Read a BSR file", - "path": "session-recording/data/read-bsr-file", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - } - ] - } - ] - }, - { - "title": "Configure role-based access", - "routes": [ - { - "title": "Permissions", - "path": "rbac" - }, - { - "title": "Assignable permissions", - "path": "rbac/assignable-permissions" - }, - { - "title": "Permission grant formats", - "path": "rbac/permission-grant-formats" - }, - { - "title": "Manage access with roles", - "path": "rbac/manage-roles" - }, - { - "title": "Resource tables", - "path": "rbac/resource-table" - }, - { - "title": "Manage access to resources dynamically", - "routes": [ - { - "title": "Manage principals", - "path": "rbac/users/manage-users-groups" - }, - { - "title": "Filter managed groups", - "path": "rbac/users/managed-groups" - } - ] - } - ] - }, - { - "divider": true - }, - { - "heading": "Integrations" - }, - { - "title": "Vault", - "path": "vault" - }, - { - "divider": true - }, - { - "heading": "Enterprise solutions" - }, - { - "title": "HCP Boundary", - "routes": [ - { - "title": "Overview", - "path": "hcp", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Get started", - "routes": [ - { - "title": "Deploy and log in", - "path": "hcp/get-started/deploy-and-login", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Connect to a target", - "path": "hcp/get-started/connect-to-target", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - } - ] - }, - { - "title": "Documentation", - "href": "https://cloud.hashicorp.com/docs/boundary", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - } - ] - }, - { - "title": "Boundary Enterprise", - "routes": [ - { - "title": "Overview", - "path": "enterprise", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Licensing", - "path": "enterprise/licensing", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Automated license reporting", - "path": "enterprise/automated-license-reporting", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Supported versions policy", - "path": "enterprise/supported-versions", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Deployment guide", - "href": "https://developer.hashicorp.com/boundary/tutorials/enterprise/ent-deployment-guide", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Reference architecture", - "href": "https://developer.hashicorp.com/boundary/tutorials/enterprise/ent-reference-architecture", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - } - ] - }, - { - "divider": true - }, - { - "heading": "Clients" - }, - { - "title": "Client Agent", - "routes": [ - { - "title": "Overview", - "path": "client-agent", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Configure the Client Agent", - "path": "client-agent/configuration", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Manage the Client Agent", - "path": "client-agent/manage", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Troubleshoot issues", - "path": "client-agent/troubleshoot", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - }, - { - "title": "Conflicting software", - "path": "client-agent/conflicting-software", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - } - } - ] - }, - { - "title": "Client cache", - "path": "client-cache" - }, - { - "title": "Desktop", - "href": "https://learn.hashicorp.com/tutorials/boundary/hcp-getting-started-desktop-app" - }, - { - "title": "Go SDK", - "path": "go-sdk" - }, - { - "divider": true - }, - { - "heading": "Reference documentation" - }, - { - "title": "API", - "routes": [ - { - "title": "Overview", - "path": "api" - }, - { - "title": "Rate limiting", - "path": "api/rate-limiting" - }, - { - "title": "List pagination", - "path": "api/pagination" - }, - { - "title": "API documentation", - "href": "https://developer.hashicorp.com/boundary/api-docs" - } - ] - }, - { - "title": "Commands (CLI)", - "routes": [ - { - "title": "Overview", - "path": "commands" - }, - { - "title": "accounts", - "routes": [ - { - "title": "Overview", - "path": "commands/accounts" - }, - { - "title": "change-password", - "path": "commands/accounts/change-password" - }, - { - "title": "create", - "path": "commands/accounts/create" - }, - { - "title": "delete", - "path": "commands/accounts/delete" - }, - { - "title": "list", - "path": "commands/accounts/list" - }, - { - "title": "read", - "path": "commands/accounts/read" - }, - { - "title": "set-password", - "path": "commands/accounts/set-password" - }, - { - "title": "update", - "path": "commands/accounts/update" - } - ] - }, - { - "title": "aliases", - "routes": [ - { - "title": "Overview", - "path": "commands/aliases" - }, - { - "title": "create", - "path": "commands/aliases/create" - }, - { - "title": "delete", - "path": "commands/aliases/delete" - }, - { - "title": "list", - "path": "commands/aliases/list" - }, - { - "title": "read", - "path": "commands/aliases/read" - }, - { - "title": "update", - "path": "commands/aliases/update" - } - ] - }, - { - "title": "auth-methods", - "routes": [ - { - "title": "Overview", - "path": "commands/auth-methods" - }, - { - "title": "change-state", - "path": "commands/auth-methods/change-state" - }, - { - "title": "create", - "path": "commands/auth-methods/create" - }, - { - "title": "delete", - "path": "commands/auth-methods/delete" - }, - { - "title": "list", - "path": "commands/auth-methods/list" - }, - { - "title": "read", - "path": "commands/auth-methods/read" - }, - { - "title": "update", - "path": "commands/auth-methods/update" - } - ] - }, - { - "title": "auth-tokens", - "routes": [ - { - "title": "Overview", - "path": "commands/auth-tokens" - }, - { - "title": "delete", - "path": "commands/auth-tokens/delete" - }, - { - "title": "list", - "path": "commands/auth-tokens/list" - }, - { - "title": "read", - "path": "commands/auth-tokens/read" - } - ] - }, - { - "title": "authenticate", - "routes": [ - { - "title": "Overview", - "path": "commands/authenticate" - }, - { - "title": "ldap", - "path": "commands/authenticate/ldap" - }, - { - "title": "oidc", - "path": "commands/authenticate/oidc" - }, - { - "title": "password", - "path": "commands/authenticate/password" - } - ] - }, - { - "title": "billing", - "routes": [ - { - "title": "Overview", - "path": "commands/billing" - }, - { - "title": "monthly-active-users", - "path": "commands/billing/monthly-active-users" - } - ] - }, - { - "title": "cache", - "routes": [ - { - "title": "Overview", - "path": "commands/cache" - }, - { - "title": "add-token", - "path": "commands/cache/add-token" - }, - { - "title": "start", - "path": "commands/cache/start" - }, - { - "title": "status", - "path": "commands/cache/status" - }, - { - "title": "stop", - "path": "commands/cache/stop" - } - ] - }, - { - "title": "client-agent", - "routes": [ - { - "title": "Overview", - "path": "commands/client-agent" - }, - { - "title": "pause", - "path": "commands/client-agent/pause" - }, - { - "title": "resume", - "path": "commands/client-agent/resume" - }, - { - "title": "sessions", - "path": "commands/client-agent/sessions" - }, - { - "title": "status", - "path": "commands/client-agent/status" - } - ] - }, - { - "title": "config", - "routes": [ - { - "title": "Overview", - "path": "commands/config" - }, - { - "title": "autocomplete", - "path": "commands/config/autocomplete" - }, - { - "title": "decrypt", - "path": "commands/config/decrypt" - }, - { - "title": "encrypt", - "path": "commands/config/encrypt" - }, - { - "title": "get-token", - "path": "commands/config/get-token" - } - ] - }, - { - "title": "connect", - "routes": [ - { - "title": "Overview", - "path": "commands/connect" - }, - { - "title": "cassandra", - "path": "commands/connect/cassandra" - }, - { - "title": "http", - "path": "commands/connect/http" - }, - { - "title": "kube", - "path": "commands/connect/kube" - }, - { - "title": "mysql", - "path": "commands/connect/mysql" - }, - { - "title": "mongo", - "path": "commands/connect/mongo" - }, - { - "title": "postgres", - "path": "commands/connect/postgres" - }, - { - "title": "redis", - "path": "commands/connect/redis" - }, - { - "title": "rdp", - "path": "commands/connect/rdp" - }, - { - "title": "ssh", - "path": "commands/connect/ssh" - } - ] - }, - { - "title": "credential-libraries", - "routes": [ - { - "title": "Overview", - "path": "commands/credential-libraries" - }, - { - "title": "create", - "path": "commands/credential-libraries/create" - }, - { - "title": "delete", - "path": "commands/credential-libraries/delete" - }, - { - "title": "list", - "path": "commands/credential-libraries/list" - }, - { - "title": "read", - "path": "commands/credential-libraries/read" - }, - { - "title": "update", - "path": "commands/credential-libraries/update" - } - ] - }, - { - "title": "credential-stores", - "routes": [ - { - "title": "Overview", - "path": "commands/credential-stores" - }, - { - "title": "create", - "path": "commands/credential-stores/create" - }, - { - "title": "delete", - "path": "commands/credential-stores/delete" - }, - { - "title": "list", - "path": "commands/credential-stores/list" - }, - { - "title": "read", - "path": "commands/credential-stores/read" - }, - { - "title": "update", - "path": "commands/credential-stores/update" - } - ] - }, - { - "title": "credentials", - "routes": [ - { - "title": "Overview", - "path": "commands/credentials" - }, - { - "title": "create", - "path": "commands/credentials/create" - }, - { - "title": "delete", - "path": "commands/credentials/delete" - }, - { - "title": "list", - "path": "commands/credentials/list" - }, - { - "title": "read", - "path": "commands/credentials/read" - }, - { - "title": "update", - "path": "commands/credentials/update" - } - ] - }, - { - "title": "database", - "routes": [ - { - "title": "Overview", - "path": "commands/database" - }, - { - "title": "init", - "path": "commands/database/init" - }, - { - "title": "migrate", - "path": "commands/database/migrate" - } - ] - }, - { - "title": "delete", - "path": "commands/delete" - }, - { - "title": "dev", - "path": "commands/dev" - }, - { - "title": "groups", - "routes": [ - { - "title": "Overview", - "path": "commands/groups" - }, - { - "title": "add-members", - "path": "commands/groups/add-members" - }, - { - "title": "create", - "path": "commands/groups/create" - }, - { - "title": "delete", - "path": "commands/groups/delete" - }, - { - "title": "list", - "path": "commands/groups/list" - }, - { - "title": "read", - "path": "commands/groups/read" - }, - { - "title": "remove-members", - "path": "commands/groups/remove-members" - }, - { - "title": "set-members", - "path": "commands/groups/set-members" - }, - { - "title": "update", - "path": "commands/groups/update" - } - ] - }, - { - "title": "host-catalogs", - "routes": [ - { - "title": "Overview", - "path": "commands/host-catalogs" - }, - { - "title": "create", - "path": "commands/host-catalogs/create" - }, - { - "title": "delete", - "path": "commands/host-catalogs/delete" - }, - { - "title": "list", - "path": "commands/host-catalogs/list" - }, - { - "title": "read", - "path": "commands/host-catalogs/read" - }, - { - "title": "update", - "path": "commands/host-catalogs/update" - } - ] - }, - { - "title": "host-sets", - "routes": [ - { - "title": "Overview", - "path": "commands/host-sets" - }, - { - "title": "add-hosts", - "path": "commands/host-sets/add-hosts" - }, - { - "title": "create", - "path": "commands/host-sets/create" - }, - { - "title": "delete", - "path": "commands/host-sets/delete" - }, - { - "title": "list", - "path": "commands/host-sets/list" - }, - { - "title": "read", - "path": "commands/host-sets/read" - }, - { - "title": "remove-hosts", - "path": "commands/host-sets/remove-hosts" - }, - { - "title": "set-hosts", - "path": "commands/host-sets/set-hosts" - }, - { - "title": "update", - "path": "commands/host-sets/update" - } - ] - }, - { - "title": "hosts", - "routes": [ - { - "title": "Overview", - "path": "commands/hosts" - }, - { - "title": "create", - "path": "commands/hosts/create" - }, - { - "title": "delete", - "path": "commands/hosts/delete" - }, - { - "title": "list", - "path": "commands/hosts/list" - }, - { - "title": "read", - "path": "commands/hosts/read" - }, - { - "title": "update", - "path": "commands/hosts/update" - } - ] - }, - { - "title": "logout", - "path": "commands/logout" - }, - { - "title": "managed-groups", - "routes": [ - { - "title": "Overview", - "path": "commands/managed-groups" - }, - { - "title": "create", - "path": "commands/managed-groups/create" - }, - { - "title": "delete", - "path": "commands/managed-groups/delete" - }, - { - "title": "list", - "path": "commands/managed-groups/list" - }, - { - "title": "read", - "path": "commands/managed-groups/read" - }, - { - "title": "update", - "path": "commands/managed-groups/update" - } - ] - }, - { - "title": "policies", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "routes": [ - { - "title": "Overview", - "path": "commands/policies" - }, - { - "title": "create", - "path": "commands/policies/create" - }, - { - "title": "delete", - "path": "commands/policies/delete" - }, - { - "title": "list", - "path": "commands/policies/list" - }, - { - "title": "read", - "path": "commands/policies/read" - }, - { - "title": "update", - "path": "commands/policies/update" - } - ] - }, - { - "title": "read", - "path": "commands/read" - }, - { - "title": "roles", - "routes": [ - { - "title": "Overview", - "path": "commands/roles" - }, - { - "title": "add-grant-scopes", - "path": "commands/roles/add-grant-scopes" - }, - { - "title": "add-grants", - "path": "commands/roles/add-grants" - }, - { - "title": "add-principals", - "path": "commands/roles/add-principals" - }, - { - "title": "create", - "path": "commands/roles/create" - }, - { - "title": "delete", - "path": "commands/roles/delete" - }, - { - "title": "list", - "path": "commands/roles/list" - }, - { - "title": "read", - "path": "commands/roles/read" - }, - { - "title": "remove-grant-scopes", - "path": "commands/roles/remove-grant-scopes" - }, - { - "title": "remove-grants", - "path": "commands/roles/remove-grants" - }, - { - "title": "remove-principals", - "path": "commands/roles/remove-principals" - }, - { - "title": "set-grant-scopes", - "path": "commands/roles/set-grant-scopes" - }, - { - "title": "set-grants", - "path": "commands/roles/set-grants" - }, - { - "title": "set-principals", - "path": "commands/roles/set-principals" - }, - { - "title": "update", - "path": "commands/roles/update" - } - ] - }, - { - "title": "scopes", - "routes": [ - { - "title": "Overview", - "path": "commands/scopes" - }, - { - "title": "create", - "path": "commands/scopes/create" - }, - { - "title": "delete", - "path": "commands/scopes/delete" - }, - { - "title": "destroy-key-version", - "path": "commands/scopes/destroy-key-version" - }, - { - "title": "list", - "path": "commands/scopes/list" - }, - { - "title": "list-key-version-destruction-jobs", - "path": "commands/scopes/list-key-version-destruction-jobs" - }, - { - "title": "list-keys", - "path": "commands/scopes/list-keys" - }, - { - "title": "read", - "path": "commands/scopes/read" - }, - { - "title": "rotate-keys", - "path": "commands/scopes/rotate-keys" - }, - { - "title": "update", - "path": "commands/scopes/update" - } - ] - }, - { - "title": "search", - "path": "commands/search" - }, - { - "title": "server", - "path": "commands/server" - }, - { - "title": "session-recordings", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "routes": [ - { - "title": "Overview", - "path": "commands/session-recordings" - }, - { - "title": "delete", - "path": "commands/session-recordings/delete" - }, - { - "title": "download", - "path": "commands/session-recordings/download" - }, - { - "title": "list", - "path": "commands/session-recordings/list" - }, - { - "title": "read", - "path": "commands/session-recordings/read" - }, - { - "title": "reapply-storage-policy", - "path": "commands/session-recordings/reapply-storage-policy" - } - ] - }, - { - "title": "sessions", - "routes": [ - { - "title": "Overview", - "path": "commands/sessions" - }, - { - "title": "cancel", - "path": "commands/sessions/cancel" - }, - { - "title": "list", - "path": "commands/sessions/list" - }, - { - "title": "read", - "path": "commands/sessions/read" - } - ] - }, - { - "title": "storage-buckets", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "routes": [ - { - "title": "Overview", - "path": "commands/storage-buckets" - }, - { - "title": "create", - "path": "commands/storage-buckets/create" - }, - { - "title": "delete", - "path": "commands/storage-buckets/delete" - }, - { - "title": "list", - "path": "commands/storage-buckets/list" - }, - { - "title": "read", - "path": "commands/storage-buckets/read" - }, - { - "title": "update", - "path": "commands/storage-buckets/update" - } - ] - }, - { - "title": "targets", - "routes": [ - { - "title": "Overview", - "path": "commands/targets" - }, - { - "title": "add-credential-sources", - "path": "commands/targets/add-credential-sources" - }, - { - "title": "add-host-sources", - "path": "commands/targets/add-host-sources" - }, - { - "title": "authorize-session", - "path": "commands/targets/authorize-session" - }, - { - "title": "create", - "path": "commands/targets/create" - }, - { - "title": "delete", - "path": "commands/targets/delete" - }, - { - "title": "list", - "path": "commands/targets/list" - }, - { - "title": "read", - "path": "commands/targets/read" - }, - { - "title": "remove-credential-source", - "path": "commands/targets/remove-credential-sources" - }, - { - "title": "remove-host-sources", - "path": "commands/targets/remove-host-sources" - }, - { - "title": "set-credential-sources", - "path": "commands/targets/set-credential-sources" - }, - { - "title": "set-host-sources", - "path": "commands/targets/set-host-sources" - }, - { - "title": "update", - "path": "commands/targets/update" - } - ] - }, - { - "title": "update", - "path": "commands/update" - }, - { - "title": "users", - "routes": [ - { - "title": "Overview", - "path": "commands/users" - }, - { - "title": "add-accounts", - "path": "commands/users/add-accounts" - }, - { - "title": "create", - "path": "commands/users/create" - }, - { - "title": "delete", - "path": "commands/users/delete" - }, - { - "title": "list", - "path": "commands/users/list" - }, - { - "title": "read", - "path": "commands/users/read" - }, - { - "title": "remove-accounts", - "path": "commands/users/remove-accounts" - }, - { - "title": "set-accounts", - "path": "commands/users/set-accounts" - }, - { - "title": "update", - "path": "commands/users/update" - } - ] - }, - { - "title": "workers", - "routes": [ - { - "title": "Overview", - "path": "commands/workers" - }, - { - "title": "add-worker-tags", - "path": "commands/workers/add-worker-tags" - }, - { - "title": "certificate-authority", - "path": "commands/workers/certificate-authority" - }, - { - "title": "create", - "path": "commands/workers/create" - }, - { - "title": "delete", - "path": "commands/workers/delete" - }, - { - "title": "list", - "path": "commands/workers/list" - }, - { - "title": "read", - "path": "commands/workers/read" - }, - { - "title": "remove-worker-tags", - "path": "commands/workers/remove-worker-tags" - }, - { - "title": "set-worker-tags", - "path": "commands/workers/set-worker-tags" - }, - { - "title": "update", - "path": "commands/workers/update" - } - ] - } - ] - }, - { - "title": "Domain model", - "routes": [ - { - "title": "Overview", - "path": "domain-model" - }, - { - "title": "Accounts", - "path": "domain-model/accounts" - }, - { - "title": "Aliases", - "path": "domain-model/aliases" - }, - { - "title": "Auth methods", - "path": "domain-model/auth-methods" - }, - { - "title": "Credentials", - "path": "domain-model/credentials" - }, - { - "title": "Credential libraries", - "path": "domain-model/credential-libraries" - }, - { - "title": "Credential stores", - "path": "domain-model/credential-stores" - }, - { - "title": "Groups", - "path": "domain-model/groups" - }, - { - "title": "Hosts", - "path": "domain-model/hosts" - }, - { - "title": "Host catalogs", - "path": "domain-model/host-catalogs" - }, - { - "title": "Host sets", - "path": "domain-model/host-sets" - }, - { - "title": "Managed groups", - "path": "domain-model/managed-groups" - }, - { - "title": "Roles", - "path": "domain-model/roles" - }, - { - "title": "Scopes", - "path": "domain-model/scopes" - }, - { - "title": "Sessions", - "path": "domain-model/sessions" - }, - { - "title": "Session connections", - "path": "domain-model/session-connections" - }, - { - "title": "Session recordings", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "domain-model/session-recordings" - }, - { - "title": "Storage buckets", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "domain-model/storage-buckets" - }, - { - "title": "Storage policies", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "domain-model/storage-policy" - }, - { - "title": "Targets", - "path": "domain-model/targets" - }, - { - "title": "Users", - "path": "domain-model/users" - } - ] - }, - { - "title": "Configuration parameters", - "routes": [ - { - "title": "Top-level parameters", - "path": "configuration" - }, - { - "title": "Controllers", - "path": "configuration/controller" - }, - { - "title": "Events", - "routes": [ - { - "title": "Events", - "path": "configuration/events" - }, - { - "title": "Common sink parameters", - "path": "configuration/events/common-sink-parameters" - }, - { - "title": "File sink", - "path": "configuration/events/file-sink" - }, - { - "title": "Stderr sink", - "path": "configuration/events/stderr-sink" - } - ] - }, - { - "title": "KMS", - "routes": [ - { - "title": "Overview", - "path": "configuration/kms" - }, - { - "title": "AEAD", - "path": "configuration/kms/aead" - }, - { - "title": "AliCloud KMS", - "path": "configuration/kms/alicloudkms" - }, - { - "title": "AWS KMS", - "path": "configuration/kms/awskms" - }, - { - "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": "Listeners", - "routes": [ - { - "title": "Overview", - "path": "configuration/listeners" - }, - { - "title": "TCP", - "path": "configuration/listeners/tcp-listeners" - }, - { - "title": "Unix", - "path": "configuration/listeners/unix-listeners" - } - ] - }, - { - "title": "Plugins", - "path": "configuration/plugins" - }, - { - "title": "Workers", - "path": "configuration/workers" - } - ] - }, - { - "title": "Filtering and listing resources", - "path": "filtering" - }, - { - "title": "Common error messages", - "path": "errors" - }, - { - "title": "Transparent sessions interoperability matrix", - "badge": { - "text": "HCP/ENT", - "type": "outlined", - "color": "neutral" - }, - "path": "interoperability-matrix" - }, - { - "title": "Common workflows", - "hidden": true, - "routes": [ - { - "title": "Overview", - "path": "common-workflows" - }, - { - "title": "Manage scopes", - "path": "common-workflows/manage-scopes" - }, - { - "title": "Manage sessions", - "path": "common-workflows/manage-sessions" - }, - { - "title": "Manage targets", - "path": "common-workflows/manage-targets" - } - ] - }, - { - "title": "API and clients", - "hidden": true, - "routes": [ - { - "title": "Overview", - "hidden": true, - "path": "api-clients" - }, - { - "title": "Desktop", - "hidden": true, - "path": "api-clients/desktop" - } - ] - }, - { - "title": "Develop Boundary", - "hidden": true, - "routes": [ - { - "title": "Overview", - "path": "developing" - }, - { - "title": "Build Boundary", - "path": "developing/building" - }, - { - "title": "Develop the UI", - "path": "developing/ui" - } - ] - }, - { - "title": "Boundary Community Edition", - "hidden": true, - "routes": [ - { - "title": "Overview", - "path": "community" - } - ] - } -] diff --git a/website/package-lock.json b/website/package-lock.json deleted file mode 100644 index 8c70c4e65..000000000 --- a/website/package-lock.json +++ /dev/null @@ -1,13833 +0,0 @@ -{ - "name": "boundary-docs", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "boundary-docs", - "version": "1.0.0", - "devDependencies": { - "@hashicorp/platform-cli": "^2.6.0", - "@hashicorp/platform-content-conformance": "^0.0.10", - "husky": "4.3.8", - "next": "^14.1.0", - "prettier": "2.2.1" - }, - "engines": { - "node": ">=22.17.1", - "npm": ">=9.6.7" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "peer": true - }, - "node_modules/@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "peer": true, - "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "dev": true, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@hashicorp/platform-cli": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@hashicorp/platform-cli/-/platform-cli-2.7.2.tgz", - "integrity": "sha512-G9hLBvciCOFoyc7fbq1K8n2ZCklp2gD1w6a13zFEasZWrA6eX+7+4oms52H/AHRUpwUn1rCMDPjYaADpUXKEIg==", - "dev": true, - "dependencies": { - "@hashicorp/platform-cms": "0.4.0", - "@typescript-eslint/eslint-plugin": "^5.48.0", - "@typescript-eslint/parser": "^5.48.0", - "chalk": "4.1.0", - "commander": "7.2.0", - "ejs": "3.1.5", - "eslint": "^8.31.0", - "eslint-config-next": "^13.1.1", - "eslint-config-prettier": "^8.6.0", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-prettier": "^4.2.1", - "fs-extra": "9.0.1", - "globby": "11.0.1", - "inquirer": "7.3.3", - "lint-staged": "11.1.2", - "open": "7.3.0", - "prettier": "^2.8.7", - "readdirp": "3.5.0", - "signale": "1.4.0", - "slugify": "1.4.6", - "stylelint": "13.8.0", - "stylelint-config-css-modules": "2.2.0", - "stylelint-config-prettier": "8.0.2", - "stylelint-config-standard": "20.0.0", - "stylelint-media-use-custom-media": "2.0.0", - "stylelint-order": "4.1.0", - "stylelint-use-nesting": "3.0.0", - "stylelint-value-no-unknown-custom-properties": "3.0.0", - "ts-jest": "^26.4.4" - }, - "bin": { - "next-hashicorp": "next-hashicorp" - } - }, - "node_modules/@hashicorp/platform-cli/node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/@hashicorp/platform-cms": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@hashicorp/platform-cms/-/platform-cms-0.4.0.tgz", - "integrity": "sha512-Q8fixx7JnzzDvuMEC1+UK8xO4bqMh/QxNX7lPusfMixVhnnyJaTF7xRhDRFWMG1bhUwI9TJxQYElWC2aDj7CmA==", - "dev": true, - "dependencies": { - "rivet-graphql": "^0.6.0-canary-20230309231927" - } - }, - "node_modules/@hashicorp/platform-content-conformance": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/@hashicorp/platform-content-conformance/-/platform-content-conformance-0.0.10.tgz", - "integrity": "sha512-vXLbd2w9phS4JfFyh17jCiyu+LXVonTfb7WEUK2eMlOL/wxe2umyJvEQaJNzD5bwyYC8LuXGA5JkbnPXnU5ZQg==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "flat": "^5.0.2", - "globby": "^13.1.2", - "mdast-util-to-string": "^3.1.0", - "remark": "12.0.1", - "remark-mdx": "^1.6.22", - "unified-lint-rule": "^2.1.1", - "unist-util-stringify-position": "^3.0.2", - "unist-util-visit": "^4.1.1", - "vfile": "^5.3.6", - "vfile-matter": "^4.0.0", - "vfile-reporter": "^7.0.4", - "vfile-reporter-json": "^3.2.0", - "vfile-statistics": "^2.0.0", - "yaml": "^2.1.3", - "yargs": "^17.4.1", - "zod": "^3.19.1" - }, - "bin": { - "hc-content": "dist/cli.js" - } - }, - "node_modules/@hashicorp/platform-content-conformance/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@hashicorp/platform-content-conformance/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "peer": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "peer": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "peer": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "peer": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "node-notifier": "^8.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "peer": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@next/env": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz", - "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==", - "dev": true - }, - "node_modules/@next/eslint-plugin-next": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.5.6.tgz", - "integrity": "sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==", - "dev": true, - "dependencies": { - "glob": "7.1.7" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz", - "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz", - "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz", - "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz", - "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz", - "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz", - "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz", - "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz", - "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz", - "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", - "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, - "peer": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "peer": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@stylelint/postcss-css-in-js": { - "version": "0.37.3", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.3.tgz", - "integrity": "sha512-scLk3cSH1H9KggSniseb2KNAU5D9FWc3H7BxCSAIdtU9OWIyw0zkEZ9qEKHryRM+SExYXRKNb7tOOVNAsQ3iwg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "dependencies": { - "@babel/core": "^7.17.9" - }, - "peerDependencies": { - "postcss": ">=7.0.0", - "postcss-syntax": ">=0.36.2" - } - }, - "node_modules/@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "deprecated": "Use the original unforked package instead: postcss-markdown", - "dev": true, - "dependencies": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - }, - "peerDependencies": { - "postcss": ">=7.0.0", - "postcss-syntax": ">=0.36.2" - } - }, - "node_modules/@stylelint/postcss-markdown/node_modules/remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dev": true, - "dependencies": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@stylelint/postcss-markdown/node_modules/remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "dev": true, - "dependencies": { - "mdast-util-from-markdown": "^0.8.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@stylelint/postcss-markdown/node_modules/remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dev": true, - "dependencies": { - "mdast-util-to-markdown": "^0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@swc/helpers": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", - "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", - "dev": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz", - "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.6", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz", - "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz", - "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz", - "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz", - "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", - "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", - "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/mdast": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.14.tgz", - "integrity": "sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw==", - "dev": true, - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/@types/minimist": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.4.tgz", - "integrity": "sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz", - "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz", - "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true, - "peer": true - }, - "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", - "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==", - "dev": true, - "peer": true - }, - "node_modules/@types/supports-color": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.2.tgz", - "integrity": "sha512-nhs1D8NjNueBqRBhBTsc81g90g7VBD4wnMTMy9oP+QIldHuJkE655QTL2D1jkj3LyCd+Q5Y69oOpfxN1l0eCMA==", - "dev": true - }, - "node_modules/@types/unist": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.9.tgz", - "integrity": "sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "15.0.17", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.17.tgz", - "integrity": "sha512-cj53I8GUcWJIgWVTSVe2L7NJAB5XWGdsoMosVvUgv1jEnMbAcsbaCzt1coUcyi8Sda5PgTWAooG8jNyDTD+CWA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.2", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", - "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true, - "peer": true - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "peer": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "peer": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "peer": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - }, - "node_modules/autoprefixer/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/autoprefixer/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.2.tgz", - "integrity": "sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "peer": true, - "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "peer": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true, - "peer": true - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "peer": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "peer": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001580", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz", - "integrity": "sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "peer": true, - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", - "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true, - "peer": true - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "peer": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "peer": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "dev": true - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "dependencies": { - "is-regexp": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-regexp/node_modules/is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "peer": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true, - "peer": true - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "peer": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true, - "peer": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true, - "peer": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "peer": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "peer": true - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "peer": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true, - "peer": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "peer": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz", - "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==", - "dev": true, - "dependencies": { - "jake": "^10.6.1" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.573", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.573.tgz", - "integrity": "sha512-tzxxvKDTO3V5vzN2F+3v9jrK9gEbCdf1YYJUx/zVq1cyzyh+x1ddeYNNWh0ZS2ETNCVK3+Pns1LHIBq4w20X2Q==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", - "dev": true, - "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "peer": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", - "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.52.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-next": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.5.6.tgz", - "integrity": "sha512-o8pQsUHTo9aHqJ2YiZDym5gQAMRf7O2HndHo/JZeY7TDD+W4hk6Ma8Vw54RHiBeb7OWWO5dPirQB+Is/aVQ7Kg==", - "dev": true, - "dependencies": { - "@next/eslint-plugin-next": "13.5.6", - "@rushstack/eslint-patch": "^1.3.3", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" - }, - "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0", - "typescript": ">=3.3.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true, - "peer": true - }, - "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "dev": true, - "dependencies": { - "clone-regexp": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "peer": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "peer": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, - "node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "peer": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "peer": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "peer": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", - "dev": true, - "engines": { - "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "peer": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-versions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", - "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", - "dev": true, - "dependencies": { - "semver-regex": "^3.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "peer": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "peer": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true - }, - "node_modules/gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/graphql-request": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.1.0.tgz", - "integrity": "sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw==", - "dev": true, - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-fetch": "^3.1.5", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" - }, - "peerDependencies": { - "graphql": "14 - 16" - } - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "peer": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "peer": true - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "peer": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "peer": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "peer": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "peer": true - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "peer": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "peer": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/husky": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", - "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^4.0.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^5.0.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "husky-run": "bin/run.js", - "husky-upgrade": "lib/upgrader/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/husky" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "peer": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "peer": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "peer": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumeric": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, - "peer": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "peer": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "peer": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "peer": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "peer": true - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-url-superb": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-3.0.0.tgz", - "integrity": "sha512-3faQP+wHCGDQT1qReM5zCPx2mxoal6DzbzquFlCYJLWyy4WPTved33ea2xFbX37z4NoriEwZGIYhFtx8RUB5wQ==", - "dev": true, - "dependencies": { - "url-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "peer": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "peer": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/jest-cli/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-cli/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "peer": true - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "peer": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "peer": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "peer": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "peer": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "peer": true, - "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "peer": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/jest-runtime/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "peer": true - }, - "node_modules/jest-runtime/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "peer": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "peer": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "peer": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonfile/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/known-css-properties": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.20.0.tgz", - "integrity": "sha512-URvsjaA9ypfreqJ2/ylDr5MUERhJZ+DhguoWRr2xgS5C7aGCalXo+ewL+GixgKBfhT2vuL02nbIgNGqVWgTOYw==", - "dev": true - }, - "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true - }, - "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "dev": true, - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", - "dev": true, - "dependencies": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/listr2": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", - "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.1", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "peer": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "peer": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "peer": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "repeat-string": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-compact/node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-compact/node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "peer": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "peer": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/next": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz", - "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==", - "dev": true, - "dependencies": { - "@next/env": "14.1.0", - "@swc/helpers": "0.5.2", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", - "postcss": "8.4.31", - "styled-jsx": "5.1.1" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=18.17.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "14.1.0", - "@next/swc-darwin-x64": "14.1.0", - "@next/swc-linux-arm64-gnu": "14.1.0", - "@next/swc-linux-arm64-musl": "14.1.0", - "@next/swc-linux-x64-gnu": "14.1.0", - "@next/swc-linux-x64-musl": "14.1.0", - "@next/swc-win32-arm64-msvc": "14.1.0", - "@next/swc-win32-ia32-msvc": "14.1.0", - "@next/swc-win32-x64-msvc": "14.1.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true, - "peer": true - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "peer": true - }, - "node_modules/node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-selector": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==", - "dev": true - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", - "dev": true - }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "dev": true, - "peer": true - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "peer": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "peer": true - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "peer": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "peer": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "peer": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", - "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true, - "bin": { - "opencollective-postinstall": "index.js" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "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" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true, - "peer": true - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", - "dev": true, - "dependencies": { - "htmlparser2": "^3.10.0" - }, - "peerDependencies": { - "postcss": ">=5.0.0", - "postcss-syntax": ">=0.36.0" - } - }, - "node_modules/postcss-less": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", - "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">=6.14.4" - } - }, - "node_modules/postcss-less/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-less/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true - }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true - }, - "node_modules/postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "dependencies": { - "postcss": "^7.0.26" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-safe-parser/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-safe-parser/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-sass": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", - "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", - "dev": true, - "dependencies": { - "gonzales-pe": "^4.3.0", - "postcss": "^7.0.21" - } - }, - "node_modules/postcss-sass/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-sass/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-scss/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-scss/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sorting": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz", - "integrity": "sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14", - "postcss": "^7.0.17" - }, - "engines": { - "node": ">=8.7.0" - } - }, - "node_modules/postcss-sorting/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-sorting/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "peerDependencies": { - "postcss": ">=5.0.0" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/postcss-values-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-3.2.1.tgz", - "integrity": "sha512-SQ7/88VE9LhJh9gc27/hqnSU/aZaREVJcRVccXBmajgP2RkjdJzNyH/a9GCVMI5nsRhT0jC5HpUMwfkz81DVVg==", - "dev": true, - "dependencies": { - "color-name": "^1.1.4", - "is-url-superb": "^3.0.0", - "postcss": "^7.0.5", - "url-regex": "^5.0.0" - }, - "engines": { - "node": ">=6.14.4" - } - }, - "node_modules/postcss-values-parser/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-values-parser/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "peer": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true, - "peer": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "peer": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true, - "peer": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dev": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dev": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "peer": true - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "peer": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/remark": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz", - "integrity": "sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==", - "dev": true, - "dependencies": { - "remark-parse": "^8.0.0", - "remark-stringify": "^8.0.0", - "unified": "^9.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", - "dev": true, - "dependencies": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/remark-mdx/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/remark-mdx/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remark-mdx/node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dev": true, - "dependencies": { - "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz", - "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==", - "dev": true, - "dependencies": { - "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true, - "peer": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true, - "peer": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "peer": true - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "peer": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true, - "peer": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rivet-graphql": { - "version": "0.6.0-canary-20230309231927", - "resolved": "https://registry.npmjs.org/rivet-graphql/-/rivet-graphql-0.6.0-canary-20230309231927.tgz", - "integrity": "sha512-6+HlBIKGty0+XULdpQaXwFpXgItmNUOCSZ8a6Eit/kJzXPp7YVyBMvCN9ozaRVqHUK8PiToGB+jg+jo8/V+bgw==", - "dev": true, - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.2", - "graphql": "^16.6.0", - "graphql-request": "~5.1.0" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true, - "peer": true, - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "peer": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", - "dev": true, - "peer": true, - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "peer": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "peer": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "peer": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "peer": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/sane/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "peer": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "peer": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "peer": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "peer": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "peer": true - }, - "node_modules/sane/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "peer": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "peer": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "peer": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "peer": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/sane/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "peer": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "peer": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "peer": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dev": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true - }, - "node_modules/semver-regex": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz", - "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true, - "peer": true - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "peer": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "peer": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "dev": true, - "dependencies": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/signale/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/signale/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/signale/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/signale/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "peer": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slugify": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.6.tgz", - "integrity": "sha512-ZdJIgv9gdrYwhXqxsH9pv7nXxjUEyQ6nqhngRxoAAOlmMGA28FDq5O4/5US4G2/Nod7d1ovNcgURQJ7kHq50KQ==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "peer": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "peer": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "peer": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "peer": true - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "peer": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "peer": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "peer": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true, - "peer": true - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true - }, - "node_modules/specificity": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", - "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", - "dev": true, - "bin": { - "specificity": "bin/specificity" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "peer": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "peer": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "peer": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "peer": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "peer": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "peer": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "peer": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-entities": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", - "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", - "dev": true, - "dependencies": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, - "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", - "dev": true, - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/stylelint": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.8.0.tgz", - "integrity": "sha512-iHH3dv3UI23SLDrH4zMQDjLT9/dDIz/IpoFeuNxZmEx86KtfpjDOscxLTFioQyv+2vQjPlRZnK0UoJtfxLICXQ==", - "dev": true, - "dependencies": { - "@stylelint/postcss-css-in-js": "^0.37.2", - "@stylelint/postcss-markdown": "^0.36.2", - "autoprefixer": "^9.8.6", - "balanced-match": "^1.0.0", - "chalk": "^4.1.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "execall": "^2.0.0", - "fast-glob": "^3.2.4", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.0", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.0.1", - "globjoin": "^0.1.4", - "html-tags": "^3.1.0", - "ignore": "^5.1.8", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "known-css-properties": "^0.20.0", - "lodash": "^4.17.20", - "log-symbols": "^4.0.0", - "mathml-tag-names": "^2.1.3", - "meow": "^8.0.0", - "micromatch": "^4.0.2", - "normalize-selector": "^0.2.0", - "postcss": "^7.0.35", - "postcss-html": "^0.36.0", - "postcss-less": "^3.1.4", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^4.0.2", - "postcss-sass": "^0.4.4", - "postcss-scss": "^2.1.1", - "postcss-selector-parser": "^6.0.4", - "postcss-syntax": "^0.36.2", - "postcss-value-parser": "^4.1.0", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "specificity": "^0.4.1", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "style-search": "^0.1.0", - "sugarss": "^2.0.0", - "svg-tags": "^1.0.0", - "table": "^6.0.3", - "v8-compile-cache": "^2.2.0", - "write-file-atomic": "^3.0.3" - }, - "bin": { - "stylelint": "bin/stylelint.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - } - }, - "node_modules/stylelint-config-css-modules": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stylelint-config-css-modules/-/stylelint-config-css-modules-2.2.0.tgz", - "integrity": "sha512-+zjcDbot+zbuxy1UA31k4G2lUG+nHUwnLyii3uT2F09B8kT2YrT9LZYNfMtAWlDidrxr7sFd5HX9EqPHGU3WKA==", - "dev": true, - "peerDependencies": { - "stylelint": "11.x - 13.x" - } - }, - "node_modules/stylelint-config-prettier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-8.0.2.tgz", - "integrity": "sha512-TN1l93iVTXpF9NJstlvP7nOu9zY2k+mN0NSFQ/VEGz15ZIP9ohdDZTtCWHs5LjctAhSAzaILULGbgiM0ItId3A==", - "dev": true, - "bin": { - "stylelint-config-prettier": "bin/check.js", - "stylelint-config-prettier-check": "bin/check.js" - }, - "engines": { - "node": ">= 10", - "npm": ">= 5" - }, - "peerDependencies": { - "stylelint": ">=11.0.0" - } - }, - "node_modules/stylelint-config-recommended": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz", - "integrity": "sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==", - "dev": true, - "peerDependencies": { - "stylelint": ">=10.1.0" - } - }, - "node_modules/stylelint-config-standard": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-20.0.0.tgz", - "integrity": "sha512-IB2iFdzOTA/zS4jSVav6z+wGtin08qfj+YyExHB3LF9lnouQht//YyB0KZq9gGz5HNPkddHOzcY8HsUey6ZUlA==", - "dev": true, - "dependencies": { - "stylelint-config-recommended": "^3.0.0" - }, - "peerDependencies": { - "stylelint": ">=10.1.0" - } - }, - "node_modules/stylelint-media-use-custom-media": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stylelint-media-use-custom-media/-/stylelint-media-use-custom-media-2.0.0.tgz", - "integrity": "sha512-G7Hwma8HIMFJOChqrX9ie8hAGbtEMUbEjuiaR3olHIXjloDWqYlFHIJKsCyyckigkm+4LtCwtZDQASrVY4pRBg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "stylelint": "10 - 13" - } - }, - "node_modules/stylelint-order": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-4.1.0.tgz", - "integrity": "sha512-sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15", - "postcss": "^7.0.31", - "postcss-sorting": "^5.0.1" - }, - "peerDependencies": { - "stylelint": "^10.0.1 || ^11.0.0 || ^12.0.0 || ^13.0.0" - } - }, - "node_modules/stylelint-order/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/stylelint-order/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/stylelint-use-nesting": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stylelint-use-nesting/-/stylelint-use-nesting-3.0.0.tgz", - "integrity": "sha512-BMzhXWbK5DdAYtZMQULn7VmWZXpy8Rwlx2PgeNYqKInQrKTJWM/TFKPScc+xvsGUc/6JPiUDeQQij9gFnOo8Kg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "stylelint": "10 - 13" - } - }, - "node_modules/stylelint-value-no-unknown-custom-properties": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stylelint-value-no-unknown-custom-properties/-/stylelint-value-no-unknown-custom-properties-3.0.0.tgz", - "integrity": "sha512-8WoOnZ4ELTxA1cDbhwolIVOutxHwbjpXmd0lL0Li3Iye078jSnEb1KO6pJ/ig5oDVGRApFeA25Fyy4qqmqwGgg==", - "dev": true, - "dependencies": { - "postcss-values-parser": "^3.2.1" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "stylelint": "10 - 13" - } - }, - "node_modules/stylelint/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/stylelint/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/sugarss/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/sugarss/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "peer": true - }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "peer": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true, - "peer": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tlds": { - "version": "1.244.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.244.0.tgz", - "integrity": "sha512-nkacnxHmN5USM/cpmPx29sc2/AnmvUA9han0tNtAJ9yOhh4bPmZm4dGhyg/isWBIES4a70mjd0Q8FSaof6Vf0g==", - "dev": true, - "bin": { - "tlds": "bin.js" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "peer": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "peer": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "peer": true - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "peer": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, - "peer": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "peer": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==", - "deprecated": "Use String.prototype.trim() instead", - "dev": true - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/trim-trailing-lines": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-jest": { - "version": "26.5.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", - "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "jest": ">=26 <27", - "typescript": ">=3.8 <5.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", - "dev": true, - "dependencies": { - "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-lint-rule": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.2.tgz", - "integrity": "sha512-JWudPtRN7TLFHVLEVZ+Rm8FUb6kCAtHxEXFgBGDxRSdNMnGyTU5zyYvduHSF/liExlFB3vdFvsAHnNVE/UjAwA==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-lint-rule/node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/unified-lint-rule/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unified-lint-rule/node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/unified-lint-rule/node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/unified/node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "peer": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unist-util-find-all-after": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", - "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", - "dev": true, - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position/node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position/node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "peer": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "peer": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "peer": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "peer": true - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true, - "peer": true - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "peer": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-5.0.0.tgz", - "integrity": "sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g==", - "dev": true, - "dependencies": { - "ip-regex": "^4.1.0", - "tlds": "^1.203.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, - "peer": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/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==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-matter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-matter/-/vfile-matter-4.0.1.tgz", - "integrity": "sha512-ZeACdaxCOxhePpoLO4A5y/VgI9EuWBXu+sUk65aQ7lXBZDFg7X0tuOzigLJUtsQzazFt6K2m9SdlDxZdfL5vVg==", - "dev": true, - "dependencies": { - "is-buffer": "^2.0.0", - "vfile": "^5.0.0", - "yaml": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.5.tgz", - "integrity": "sha512-NdWWXkv6gcd7AZMvDomlQbK3MqFWL1RlGzMn++/O2TI+68+nqxCPTvLugdOtfSzXmjh+xUyhp07HhlrbJjT+mw==", - "dev": true, - "dependencies": { - "@types/supports-color": "^8.0.0", - "string-width": "^5.0.0", - "supports-color": "^9.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile": "^5.0.0", - "vfile-message": "^3.0.0", - "vfile-sort": "^3.0.0", - "vfile-statistics": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-reporter-json": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/vfile-reporter-json/-/vfile-reporter-json-3.3.0.tgz", - "integrity": "sha512-/zgRtjxQ2UGJn+HViiZ7+nIXtUzkkXFQum3BmaS/bSyr10P0X41ETRqqwMJ95RtbKUah3m7pKb6oS1eZeXXHzQ==", - "dev": true, - "dependencies": { - "vfile": "^5.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-reporter/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/vfile-reporter/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vfile-reporter/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/vfile-reporter/node_modules/supports-color": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/vfile-sort": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.1.tgz", - "integrity": "sha512-1os1733XY6y0D5x0ugqSeaVJm9lYgj0j5qdcZQFyxlZOSy1jYarL77lLyb5gK4Wqr1d5OxmuyflSO3zKyFnTFw==", - "dev": true, - "dependencies": { - "vfile": "^5.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-statistics": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.1.tgz", - "integrity": "sha512-W6dkECZmP32EG/l+dp2jCLdYzmnDBIw6jwiLZSER81oR5AHRcVqL+k3Z+pfH1R73le6ayDkJRMk0sutj1bMVeg==", - "dev": true, - "dependencies": { - "vfile": "^5.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dev": true, - "peer": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "peer": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "peer": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "peer": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true, - "peer": true - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "peer": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "dev": true, - "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true, - "peer": true - }, - "node_modules/which-pm-runs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", - "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true, - "peer": true - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "peer": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz", - "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/website/package.json b/website/package.json deleted file mode 100644 index 0a7354048..000000000 --- a/website/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "boundary-docs", - "description": "Documentation website for Boundary", - "version": "1.0.0", - "author": "HashiCorp", - "engines": { - "node": ">=22.17.1", - "npm": ">=9.6.7" - }, - "devDependencies": { - "@hashicorp/platform-cli": "^2.6.0", - "@hashicorp/platform-content-conformance": "^0.0.10", - "husky": "4.3.8", - "next": "^14.1.0", - "prettier": "2.2.1" - }, - "husky": { - "hooks": { - "pre-commit": "next-hashicorp precommit" - } - }, - "scripts": { - "build": "./scripts/website-build.sh", - "format": "next-hashicorp format", - "generate:readme": "next-hashicorp markdown-blocks README.md", - "lint": "next-hashicorp lint", - "start": "./scripts/website-start.sh", - "content-check": "hc-content --config base-docs" - } -} diff --git a/website/prettier.config.js b/website/prettier.config.js deleted file mode 100644 index b3ac14ab0..000000000 --- a/website/prettier.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - ...require('@hashicorp/platform-cli/config/prettier.config'), -} diff --git a/website/public/_favicon.ico b/website/public/_favicon.ico deleted file mode 100644 index 91edaa415e6e40788168fc647cfebbde3570dc8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 zcmeHOYiJx*6uvdZ`c6dgt&LKl;;SgW9~<8$Gqdf^?jUUyfd zK}Bexg7xu7r6QuTA}FX7@$p9*Nokd|(sbv}CI*}A^*i%uC)2xk9y`0KumdM&@4e@q z^PMxVbMKrmwutqx6)PBcKihsOW7jjr`uqKMA7g)@uMeEY*DYpj0|b^s22Q%YmhjU# zHtZ*p*vcvc{i}iVIU>sv$J4o}X#8m+^u5zEe%xc$Q2m^&_~Pc3b?37HBi+YzKLqW( zxT*0s;&5ag?*x9t;ZWIdF3*ZlHP1Bc>&m)4L^LoU7ULQ^v7$Lv8ZveMY|Oc8m_>ez z3dcf@g`dYVKWKa*@u_TE2EP@U8#3H}-#?a7yI7@Tp~i5n^#J2f3hbhy+v^t!Uz}as z`|DKLF}ByT_MZ}`XCcN{tvc8TeEXI7HT%JKU@L32ODwH+t&CQ#oW3xLP2@JOtFYsl z^bKQTQ4(EgWsrZq-`uvdDNY~eF9-eGTnFywA^V0nJz2+F#;@~F71)vU@U2;~C7IU> z{))kMC3c-V#p2X?NpNJ9$%>!e&%jQ3w!3zaa)UpU6<5-ES@Dy8 z9`Jvt^g*-V3uN=+dE&Q<_A=m~QTWinUdGLNVJAI#;&=6F_Dc%<0{dh?jE;)q^728A zpZ|jKH&fC!C4Rh{^E?MJ_?zc8L5`4;<9+sRo@;>)EKQ=rdPRRS(A$@q(J>~j9>wq>-3W9e(2YPlA|TuY znNm`Ytg2T)KE#($Tg)(z*H{m=XR2&bmr&DAf&xXY`B@uj4v zTBruR;I&6beD1fa0blC%2lG6A)k4kHUoFf8+_hUR%m&=WRYkp&JO2px#+m0A#=ZG| z9ME=gjx*-kO&UjEj_S1fK?9(}by}$9>K@$)B#8j+TO+rb2JN7|Bk=S!F{tUty6;4F z0u0CYAC~p^H0JQ#_@gyi?R4m) z^N`qo7pK9ug>|O+Z4Mn=ioA9g^t|PN=R2x42V>zr*>}K3yJ`-iz5vU|uFvzYkFieF z{*(;oPKj-S??fx3IP-4f9_hh(`Z;PJ*UguC+mh+S{^sLR+i1_?KE6^WAJ<2r!R==Lwkp8E--GE$W9V2nS7GIr1t%9NV7-T z$2Wl_cACi~wQm`d7s3CjsC|4h8EvLJNqJj+qW00Qla3^|WHM>&8^&KJAqKmn z7);%MSEf5jUmE+Q56{qD4lf7a^U%E$CkJCu4w;R< z-0#5{YA~M&Y{%8x$mS#0e>9kH8hkj=E90{H?)pi$cajdAlRs6llg%eP=8$tc#@za8 zId??2?RfBOIc diff --git a/website/public/data/vault/boundary-controller-policy.hcl b/website/public/data/vault/boundary-controller-policy.hcl deleted file mode 100644 index 41c513c13..000000000 --- a/website/public/data/vault/boundary-controller-policy.hcl +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright IBM Corp. 2020, 2025 -# SPDX-License-Identifier: BUSL-1.1 - -# Allow Boundary to read and verify the properties of the token. This is -# provided by the "default" policy. -path "auth/token/lookup-self" { - capabilities = ["read"] -} - -# Allow Boundary to renew the token. This is provided by the "default" -# policy. -path "auth/token/renew-self" { - capabilities = ["update"] -} - -# Allow Boundary to revoke the token when the credential store is updated -# to use a new token or the credential store is deleted. This is provided -# by the "default" policy. -path "auth/token/revoke-self" { - capabilities = ["update"] -} - -# Allow Boundary to renew the credentials in active sessions. This is -# provided by the "default" policy. -path "sys/leases/renew" { - capabilities = ["update"] -} - -# Allow Boundary to revoke the credentials issued for a session when the -# session is terminated. -path "sys/leases/revoke" { - capabilities = ["update"] -} - -# Allow Boundary to read and verify the token's capabilities for each Vault -# path used by the credential store. This is provided by the "default" -# policy. -path "sys/capabilities-self" { - capabilities = ["update"] -} diff --git a/website/public/files/press-kit.zip b/website/public/files/press-kit.zip deleted file mode 100644 index e037e16ab0eb6bf2ad124fbc6d2bfec47cef09b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191102 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 z 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 diff --git a/website/public/ie-warning.js b/website/public/ie-warning.js deleted file mode 100644 index dcb6b8053..000000000 --- a/website/public/ie-warning.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright IBM Corp. 2020, 2025 - * SPDX-License-Identifier: BUSL-1.1 - */ - -!(function () { - 'use strict' - - const el = document.createElement('div'); - el.innerHTML = - '' + - ''; - - document.body.insertBefore(el, document.body.childNodes[0]); -})(); diff --git a/website/public/img/api-pagination/pagination-workflow.png b/website/public/img/api-pagination/pagination-workflow.png deleted file mode 100644 index 8ef4c932e859605a7b1623a5fdbc5c846ce92ac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27883 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 diff --git a/website/public/img/architecture-overview.png b/website/public/img/architecture-overview.png deleted file mode 100644 index fd9f2a3076b87dbe65a294906a1618fef0f653e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170680 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𝔜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%0AJ4Q?*3*EbvuK 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%0DuQ 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 M{i^%oemA)AAE1(~mjD0& diff --git a/website/public/img/boundary-core-workflow_dark.png b/website/public/img/boundary-core-workflow_dark.png deleted file mode 100644 index 405048314632f2efc2070e69dedd9961a5f96619..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56035 zcmeFZX;_lo`z~zxm_3@=piP$6Q>N*oR;J{DG^v%TnW8z8r8%NG-~fV^nWd>^spW)2 zPB`EM4hW`|=7{qEBB?onNQ#1r$fn$W_gd?|uJbz2 z_4=-bsf^SyDKRlInOiq++!GTMM~L30yLX9>B*Jd!h>E|T+_Vo86Fa2*=e^_By)(Z> z2X_SBGrcBO-gA6G^yM#)tL9h5#3~b|w_GK}#3*66Zd|nq+p$RdJHpvLQ@9N2KXkkH zMSgFt`B<{D{65oXAEvfUP16#h)ZaE_=f2&^sJqfJ)%BzQxpqR;rKd2P3JKHi?#E&~ zyToM9pT1XduINL)dGsNNlU`=$oRfqbMsr30ON%A*CE}RB5j&iAD=;W!E+a^NE}b5f z)wV~}q5pGVy~eNQ-~D~C!&2)gcqLKUHZWrKQT+~)J+AmUP|5@WK0d6OEKV|H`|IN!@PjRu67hwz=gUN3PWyJldcqo3h zxX}0OOBp?^cEHq)^l*yT%V%wC$54un^%t?se4)mm@a)5%3;GN29RGb>F|m+|@VPOM z9)79o@A+MGj`U3c;^#IW;lwSi?g<<*+p#msV|j`_8hTi3DWLvzqG7+Eiw$}0m|G|f zmWnjk1Pq^$FmzUbKJn9``f*zpDztg(hbg=PC1-%{djdnwx--;juY40S{)w za5y)AB4qxO0=T31P}J4PEjYJ+P1k4mUptw?h7p5^*c}gEr0cIe;3YRbl+}#fR$1*G z@^5+ZcVzNV$8(|A${4pS3GXA*PdxK%j&i1cZ?jMJ#~ zNo?`!n1B7f9e}GPMU<{q6FL>El4USTJq-7j;#v@}AvD*dM;!fXW(t!|kXmq*i43vUatn|e03y6tM} z>NFmMQC$8ar=w%qY2;2HyQUFiwGC`~^MdxzdulHUmzCn>S*NnuU^HFjVA09UcORT^ zqLi*-N<0cFW50%%`FG{91YMu{^Sf1esm0Ee!i3WY>7@0Kh4nK-J--6@(2!EQ6hG4{ z8KY94Pgy;uM4dTrv!4rZj#0BZa=+rYzR!KG8IRLQk!~^mmnRquO_tnQ_sQozv=K`9VH0Xt(Exij!)e_xV}35JUWqN|Dfjk}M#I?b=ber> zCrwx@lV^Q7N%^4-*mhm76RhhwrG>g$&Tu<8qFm!D%#!7BAT!FX_I^`h!$xYT6jI8c zVteG@uSiWy)Aw0Z=6uFW{+^Mc5Ot4?pA**i2X%f=>JH#V{eC+6+%JQ;FJ#iGD!5qM z1|`>15on_dfl8ZlZL+1*y|R=_^Kme)C}f26nS*xnDS6->~}h zr2y(W1VT$w2hzPWULNJFCp`6Ag& z$(Q35r0Sc>WPH-!#VRqvV8U@$^DBJms4TTOZ%bBVoRhq!VF;vb58aMuO)Q*oR>#A)I{@U zu(r(Cy9Iq};4U1@EQN5gC{@;X3LVrHQ~pkN zNh)MAp!h@_gE;^?C|XU$&O80?a(UMBq^dOM)QRA!t2fgIqCONo)Y-?WKle&m5^A67 zZK@ifSnf6S$iDXQ-p5HUMi;W*&^<_#YVQ}Cb<>_>vgwvb=C=@!S>=I+%@2dO*O1}C zJsg?Q$x3g7G7T*c=Ma;raHBsaFZyRu{-j=QR)f!DW>vA&*p+A^>C#*I_Fvn9dWVE> zoR3@*aGoQV8{KrpkuIV?JiWG`D|I)utvU>KM0kfhs=Q_#U8>@$T>fy=6{&bYIzMDR z=zyg{U-)?s_mmDVHn;O(tS&#{OWmpbf|V2eK|zC8VjxU*}|^B2!!o|~-5 zhlH;-pWb7OxfA_NYvf5kwWB}wWH2VqYYysj`=tU+eLzejx+A~4^SQ@~l7rUQiZV%X z23k2|e=u=SJ7luHtgE^te`gj1vg6{$Vh)Nsr)V^^J-Isf=9*+igz7 zp-;s{Jwpd+m7Y8&Hl)?i9(_EzG`!gAEF#xSu7=jy+Ukjjtc>t-GXovDWeC1r;**-- zFO-vEI6!|{CrsCODj~{Y3<-E6a z%zbVc}D&fIF$)0q=zj?n0XqW!3|1tcyItK2W z>IUC+4{QTU%(_;EeW|wR<+JmP2aegw3$`NNi?2G>B=poL*qsW4%k}EuqA2MLjh<4k zf1SK6vgTNgKh>M1H51un`+GZAD1B}ox97pAy3!ZqDZmS&q3TJ`8dIegEya72wqYa?$_V@aqa?at@O4(SvXOvY`xp+sak+f zNV)g9QBPvslC%f+Qp@>cK?3WRll+}IC}>~p*VsC2+k=&qkeHi9M`1&c`$9p2hkN=yl+cf18cQ~?*M7WFq6seat zUfhhDJZ=!ixZ0<5QsvmLHXkaa7S>Isb|kB_TEcPmsr)XH8x%f=96qa5fkwDKS)|}P zhYhQHbbUu3C~bZDbTn0O`P)I(tnr#IYTQVdIAuP3IAq+$gTN+Gcimoi=3f;Mx2+=J z$jB<{WG54^bAjDP0aN~^wW3CJ8y*vAxPBdl8$Pu)q`)GXM|*mAimpY>_!Ve!r`S_e zrF-WgM`A;}EuaiPWLX*l!pfRlN%1Q7TN@}aubxf-_9T=T_9OsP-X+F7=Z@ehS@8;G z&}r#mJk)1XU}e2G1Y)Wb@HzQSVZ)w1?tff_UJtqXr3Q|LBZ?h(cm?mffHE3cV~&J| z`%`M93}yzc7vE_2ymG0Q5x+jU6yM5+j$o4UoMqE8*7qy|IX>;;kjaVdLsb6YfG@U| zNV_eY<}LPeZ;PVH@y5j{!h4q*n3|3#@`|Fki{&uZAFo8qA92=P&y3vO;F46=i#KCP zwMiNG`a;@}Q`Ikw9=yG9MdU}Q z{(xGE@tL7b1p0HAn>lO+dfkKtoKJO@-ydxq+6|2(d1*jM*_Kf*H-|`NBat)*;c`+& zL)6ZBB^%MAEqKUVqT#3G0ls{ufiF1=_!!FSLmx5owYgQyswUs(9RtFHU#@XSmw*Hv zgNpcLU`EQhbM1!KcO4zm6|x9Kk%98u+k&f0Q~K~jDR-zt?9iogcWl#k193kR2F2IO zAXqxBtxG`N&4yHd_-AV!HV54_stAAb^Lpwvx@3>x0BLi`tY}64%1~n&ecj`5>#pYw zp`-&69m`h9{%F}OsMxMUqFAQ45bsO#cB~~m*76POvjuIaI4=KWFMh%?eW`esE~aMi z>>DM2m8`p7h2)6T%&>_3bS=%*Hc(k52qY+FC0rY?@sgxECK|SI=}nEDB3B^`i66__ z;v7RD+Z6Er8)po-AM+M}o|AOn6M@CoP!3uexoi1Gv`<9*maFv*A3MV{kQlIYfmW() z*R`Sq5FV9nS6J^Di-^BAh~;s3|LHRqEf~7>=8|bZ1Uo0<<})aHxjQdb=N;uEridqTT%-@n0NbQ3x%ti z4HXR}1nR2^wPqn%)eR^gU8+Rc=Cc&Ql!+;|NOl;Xy4Wlf5Tz0RjgLoW>p&xo8UaV97VxAT8 zG=488P%1)LzXb?khNg~kw0vvY?0~NELjEgr1jmM2+c=(}KXv|aP2=2fdE)cQSxr~} z?g26-PRoz6IHN^+jwXAL0q>0{EjlBo{rVb59nkO>}@RjR_5Zzva^= zV@^DTY;0|WtQgS!@=QZ(?8%$NtqyfO<2A_m*^{nU(r`?+bHsA5G(2l3y&k>wLa^uo zs=ejz{&Fv)LC@xSR^b4{#c*zjx22tc#LjtDhV?6=8 zSD3A`xsffdLPbmf2Q0AgRHlpmJ8O=AS*hpd!$AU? zCV$~HLFS53$qeOe>x9$mZIMA~NDN zeNb|8+t`zWN0_1`b$+*zI4vPN7ckd^=SDc<7Z2;+ec91eIO)k&{p_x=f51AmXF3t2 zyLqP#@QiW09!m9D;`jI8Gng$ir988$I}rWF4nmvSnN|3b~^ z;mi7TU7%x0inj(3v!8I>u4*3|&r~s>s6??N0T4oA8idrbhi19+Lhj<^u1lZG(`hoT zfuT0$15Bo!vwLAiVC)+1*88(#_8w>`oiw?Nj}>k!5g3?~YE6Eg63v}n&(ghaNW9jW z>Qe@|-D+7ww8(Uy_GxlENZQm<=a0bCSIHv;v`*FR{MW>;2EWj&WCHTL1)>s16I)ek z2sm^FFg`;IKKMzIHku-H4Up7K@wZc^Wuc#qdO%qcy49Et%v>W#Fwv_AiY^f$ADgO! zDamYq@f@$A>80bkx?EJ)+C)}lSqXH{hllHpdtj!=Q6H1dGu*VA#vl4Gj(^I!b~T6j z`QYQx9C?3y)7Ff{;UBtC)R=@Jq#3bd>Ervg)!c8R;}P8(LE+x-OerhJ6wa+*+TBH( zSza3mf|LEj`iQk7A20Z=lEu075rH2X$qjL~kUu|^AH-@{<5Ky@SkUA)$_G{7gjKIY zml9n<2h=kH8O0&qs|S!k;g+;7vU>I_|E07GG3PC>o}8%! zZ$vPs!0k?q*AWv$Rm2zpBDdXjdv`rTi^1{QQUQ*+-c)HV-{9n0(cPoeA-MtM&iI7q zHeOzH;Y*ECg%*|Vl8flQuH-Uk$TNSqoLK&H4t)%bhPQ%u^Aev^bFAby+d<_4uI!CD z00ojof4dg}hge_nG#Dtbtp1vt$~MAS8OQ=Z{{uIVQ;TFSE`u#8t%sQ`mer^YY#FMZ zP}%WlLO-_w3TKeQ9c95)caj^u`jl?_)h)NG?#_BBJP>UZT|S*qQu8R$Kv(Jo*!EC# z-T6l7>z42V#tR!6^5n~5~rQV>^AFZv` za_bA&pgxIKa@14VAnEP;wX4Gw0owjY)1 zGMLXL>`eJYBe?K5uOCiHoans4AJDCdY?6f)S}SN10sa%;Gr9Gieet@dy-Rv(Nh73V z$5ILtYP&MOUZcJn#}@hI_E>^#ZVd*ub4q8vau$lAoBv+YHTuOpjmchs*W&$N<0GvK zXNHzO75fy!aHU43pNy0mEPyQSaMn;rCa8>^XfD_ z`^yWVB|sWj9ySrIQ7yv$>b-n@??57#M~0Lv>rNnzw$`q*J%4^MwKY-%cVyLeV;dQ} z9v(Fa(F)DO?$_)*Yf&NcSB@c<@QvEah)qw$Es_jL)|7Twu3&d(Q?hgpg-OWisz z;Oq5uW1rvnS_Ltw@J<}P73Ze5(U06cRfZpzf^%{%yh}3JZC#2CinAa#xEp>L4 zWf`{ObEh+SYvW+u)eQe)J@oUJ8PcvlUfp~qWY#~ zNIYK1oGm3Rr?9C|A?e%FRwA0fLkXyoi*2D=)zs9jZ;U*;Fk%e5n4FSQN`+GcOiiEp z$MU!9VN6zjH@1$|wB;SgOe$t4qB`H{x_3PDlOqeb8lmzAGPAjV)7B8+L*V`6RqiFy zA!)X*jKOo6+@PPo1kfJ-HhL&x^$sAsK{g2f^7o_=F-YPF3|Iy8_g5SEhdZ60XoN`J zOSAUBY;D*7?k1RcqRD%H)unv`;T!y2m&!kp?z`9(uj^+~jbL#AWCEI}pVQre{RDZ^ zD~(*o@~X{de;wvVz+|t`^QuP3!FibURf*!;&#+HakKa5Vc6&U?iUj}MaeF$JKhBOw zzLxXZdv>9mkrLP78Qw&jwR!SHK6C!8EdURPP)FjQ%)B|+-&xl&fobcfTH(GzwTgZ% zFf(k{l8y;(|46u?}0EF1Lb`Z_a*k z4FC3Z{<>3g9VcnrZ-w)&^NK2kURCtZeKZAaq$E`&bv_*j(Ox|{NIaWGPtmsQtd_p_g4ob%s;yn@VjI8n~ZZT)yHuavwMZeBW zJ)zZ^fsiRszmxY5x{|Q5)i184?@=N)ME)}H5l@&K+r8@LA7XvTb36qPgqA<&7V211 zm4vG`>9MEY*OF$QqzCr80T{ExW!SM2EQ!%V-CWbUL2o;?JX)*hC28uaRsNUBRZRz! zfTNJ>{h)*uHXZL-Zwq)E_Z)rp?#LE=+L|l~mwIM;Jm3{_^Pq>Z5b@*_qD5GGOXf+Mcsnj{K z+Iap(C>*r5aVJX)JnM8h5rsCh^MI_Gp^O9}Z_#*s2w`DZ=?3~cs3E&>DGfJ=9N&fy z7jp|#U&X)1_`%i4;PKp(_^BMzMTlRWj?XC7zX{2zxUO@z=f()lS{`SYyRTLhK{WWK zg(-SAk72&^gGExSDC8J!|7%G7dejC6} zQ>Rht+I%E+6cew@#p>37NloOIMOFYUv*t)zz{T5#w|s-^<)_{kvgE;w6sIB0!?H%k z?y~c;FNmmubU~ftlwNsm!Q5xLUBT96KjjkF?feFq4ZF}!g4@C26F-=<2}B-H_gYFxxTX%9Cor;__nD6QQMtWIS9K1L zWoa*#pKve*-<1%HK8`bv0GKExJiL$siAkAcu?r~N0=v*f#M z|k+Kag5YDc-VRUKHrGHFn+B`D>5WU8j2>VMVqs8>;!WLnVMTQwy` z?F0+`J`01j%#d~00m6%a;$!QD+x#&jgojeJWmI(rd<8O=r=GsZODwAzvfLVr@2U5r zL7Zm%w$=mua$$5zm|#$D38lC^n{V1|iG7ra ziX$>JRT{27K>hxz)b_sG6brfp^!gKF%jjGCrqF{d6UmHxnU<-C#nQ3ce9*NLvT|0K9}XR#J-m%Cd#8PSy3>J+>fo6zoc`!jv!RSo^3^b@JGgrH`osdh2p zq3$^%gn03U>B>^Z`Z3{xm&G&QAco-CA#cTvBWqrNn8R5q;Y44Lup)RgzU zhUWM@1>-aS+~&vH)zj9gw=%yj?d-XGw4WZStCJjMJU=O0-Mvx`Q66W4g^| zC$nUwC-K_d3xz@H3qgnIi^;IDRQ5}Xa}jwka)Na)n(*D12*#3#MK#21CeL+!QbyPy2#%AEw#7tYmg2ey+UgT9M-{ zRV|R6wh<+7!14iwf5j7<#}QW`rxxX}JUdM_FJe#3mdL@k&BblQq%KIwZkvFU&Iwre=r;tUxt_mo>@?(wbEs!30)=Ybi=N9rka8qnnFP(G6B5)^nP;H!d!(k+VAC%3oxkY zEt6X4zOoQvw;SMoZE(9z>L}V0K>Ly;4PR_24l4QmE(4ykZ}N%;u6}-q&gCcpreK9Ay z>kDHaUI>{SRL!Ulp0ojLrFzM44v2u1%zm0)q30hc zcUeWL0+Om*dn5AxUEE#k>&K6PmnLk(Ycf}QYE6^BiPK)NkNuiyT0-=0bF%28(h873 z=5f?~a5{(76adxItv4#!tmlwxn+q6OXJL`^IZNvAEK4;fDhfRqo7K6gu8AqwbMEzjx0No}5*G)tMq_>9$WP zeHibSChljZc1P^{>=IfqUSN^wZK{ZRmEMvKur(r4wkP`|tKzl%0zvBM*vl+V6D20BUtW z80>7=wxm7GeXSOP>P@9tdD29wh>|PbRLK)zPmzI3rlqr`+Icgr4v>}8uQXk@PVkqe zzT2k~raIK~K$m&~+Q2R;bnREbde*Qbt3w?-A5f1LY|UMN_@Pt1yl$KnM1=x1d3;m5 z25&b=|LUn@VxBV{$sv=Cl+sS*Y$Io}kz>T%9(}tYyH|o*ISjNcoMY^|w%}@a15Cu) zpYrybaCuUDr+cih_&D5bh_6E~t(H;H9hC$Cx0W^?3?w@Z?t_Lgk~?XVC+g=EoB6|6^rD&WZw{0qI$qA5esbA zrE0_lF-8~C_=_2`O(4vudG+bN>3)zc28dFS3cl0q_A z{A+A>p$8XZ5gvowDwQ3rY$NGlR1bOJa`f7)E*F|B91}kR{x!N+P}#G2c~M3e;4piB zH$1mvB2Hp2tzo{_z}c>Ml9CzJMF4pgjGWw{=52pJU$viWQc+QYMq76^jnK){GKU$n zMZZhx1xI3)=0DB$8*E@F{Awq{?%U+Uhq4?AJuu>NAp8Tkaid#=2DqhPc71OC@p3aa z7V~Pl&AggzGGqwuIcssm|6s0N!QKC)A!>;;yQzv`rp=BFISs(M&L3%P!-X(JXOqi} z8p6SLK-D*&J=B_e`&ZpEe>A<|PC)WEBu_n51bz+f`R?7B zqM@e&fWG>x@D}jRDigPNvYjq{0K7)g9e0gZyJh}yf|NH`F-px=ImkU{Smbs4C3@R0 z6&X0|vg>5z3*vrF#l~NX*B^7{@qhnC}oN#$--*xh(x1D$Yj;QbD)D~tuG|pq?3u_{hKcHvN-mZP^ zU!62~V}V6*EEVKKTFCb{p!+L z9^ymOt2iBJp`>JJ+4$%IrpYU>GuN)(b^cFA>8b0j9PPvIdbVOQaol*&51$R+9P=FP zub-Cpy;i*uT&C4Lq2W>HqeG4hgO>LppYFLZTtxBi8^O2>66XRCZY9cfVU%%48cWwDw3UnhL~Sx=nTxF2lfqD@_c+uR;I zDroGKxi}5~lyXD3ah#YqHah<}d^M~(>79<@7Guc#x`@Jp7-iDKT_pz-aKj`RxF?R_ z_fgMg?zSvH&E96g$1&0xElK=rnRUo+Vdd|LM1U;0LUNDppJbpNCDgw*$?B2LfGB}% z_0fl3-@UljJXoY+92?wNm;)8rf+)Y`J@?*B*m=?}eyXIY zOz9cw! zhyh@l_x1zzr{Z;cevhpWV)iheIfBLkWg}@62z>lDH_cP|;DnprIvna~9kMBx1dAsD50A$xaO00hP&JL_aKlR%*RrY2t#{#Iv zyG_&9nmr`7BiKa5+U+$+Pxl@9D)h}uFdQ&B!3j|RWV1gs=y*a1`&F9Jut^guqFUVY zRn)}C)ojS}h`GDHHFkREYO%vQHutiVBy@^MauHoZ4y(s~~BpA1QC1hjoA z*35VxTcqHDP$WZ=??j}_xToE7wMvLo9~-^xF01<2pR~Gq-UO_E>{}F+jE;QBB7@xW z)IcXBNY}g1-g&L&Drqde2d%dtN)_Rf@{E!;Li-{wm~j(Y=&nIsA<$}I;)p58vMMPm zq4r_GctAb)iw&5-!c!O3Ap(p{ihsnkf}Td`V!(Inp-$?@9H83Nhl~0jcL?Gm-Nl|x zoI8iJYD2b~G)=1yD@LQ8MP?2W%o>WY8pkpy&A&`A1o}>H#K~4Sbul-HMevdB4s@wt zMrHh|h8KbUYJhIUZ*w+?dx3e-Haj}AjHmjYsPW+W5y1Q&Ryff*)~hEvg5_PAcGd(m9aMDH7gn(g)N@-;YHOn;+rV|pr7)w*PJg!7(4ye*!FXUvxgFFXa>CZ z=qEHi$)uf+%fUdswL$B$kL!Q;1@&z+#C1Oat1s{>0QtUd@nO=d@+~eqQZ)F{L&I5g z*2STrYUmKAtrQEkxx>5!xf=-D%uG4jbLii?RuPS|xNRnQJURJv9b)hKzmh*Fxgs*R z{cYi0ZKc5sLYE0^=Gw$k%ywUhVAGH)_zlL-S(=rxqJ=ut?Wui#qgYG!L~faA@}x@o zk{N8uk|ZOS>+%3$OJh*(>(4kZS0gZ7wHA<60aRuBzBC>_{Hgo%yW#+c<|EEt$(0leWtDwX->j=;z+h;>Bo3V^p_9 zH`q`4eJNn`ET59W(f<%2@*{`4P^Ezlpt*Cn~*_|4~ zsnfQ{aJW?srGUKPL#LxZyNy~$FP2u5t5j@3uAQm$f#S5nxj7@@MjWeLls)!9!|<6G z5P0*nOYLwo{(7Ht=vbLmZznG8@aFiOk;nG}H}pbzLn^Z<1IqLd7RUVp%3KHakHh0o z@A)qnfe{i1G2+oDMIZxhkAi|i-dlNDeyQJk9PV(PW^#9TH~tc)(fuA6hGA|OGtyH^ zuuVEA23HAbY1Pi(%gdLN=I1c0_!LcIC(LfJ0pr&Fnwy90K}SX-Ak6Oc&`L*gsE=^1W$}wur za8NN5gtKlM(G}?DJ{n*fx8a^liiilAje93iIHH7fdBQONCDqQnTd$9#8A#pPo0zMX znKh%H39rIIw;(=|%U0BC?#S@ON~ttbGlLbThbbcZ;wK}m)s36IvCCFCcJ};Qfz5jQ z5lK=%aq7yfi`0W+cA18vSgRxuJX<3udOnwhqmCU5ZHj>ANk{rM{jH2hwQnB`r4$v# z+Fe{bqyFiL1Uc#FE^Ue}wbir?=ny&BrxfIhzmHtn;?O+PUBBG>t-m&?X24$zTEvuK z@#>mQ<0MWdRlkha8ztM2YTV5JP;{-R4_HVHcc|$Z(=(6!ojn{mf3;Q%S_q(BC&yl! zt3l1XYRi4NBY1%Wg@SuJYk`PlX!y1TV(YEa=z>2gMkd9>#Wzk3PGA)#{yMz6S4|yf zoj8>uulkoTP%673KRdUg@M(_U`vyJxeG>bkV?}wY%&d}w(dcODa@daB%fna6h*WlW-m104!bece`1?Aa}Gq}x8slvN%I7=1>=`rW2%I*Oe- zz?Sbnrl54E)&oV$w~tDo&vvOk@dnaeaK=0QwzoP5=3L>yTVSxZ^ZF1;?sJOfMh-PK z;p*IVewwv2OD&gDNE)efwX=z?(I{Jn49f=(84pP6MBm00lC}>y9zKyrIe_L=bT7kx zQ`h)Il|{r&d+OcP5r(Hws#t8-UAe*Ag#uXc2-iY=OgLJk&;5vNs_CZyKu5t8yyM*O zp)4t{KIV`IeDuk!xr$V*r}IesYW8$l@XBjj`0sPJfnNfS65cg*WM|P07+-DSql-49 z|5|L)?|{E=&p`BdU9(zS`do|l1dKn)W0r@n>5SCz-ajLAnk{qGN5YrXM105~e_~m- znoGZ(WPrn~ZCi(cO5DtTu5JzM(P2NsZ@Pw&ndWcQW=vU#SMm?B!#v9T$b?^X?~imX zyqxYoY^vIP%inUb6(eSteG8yiu(oBWtC`&GV|L?cm$Q4H9< z-{8vNkuDZtG53lc=DrS$dq%3~K9Jv~Y}x$p-q5+=P2$cJ{PfqX=kKmLI;+*V=dmH zX&_2;Yk9})%(Y9E!cOXLp@v+P66DW(-NpJkOFz5O>1b3e#B$7aeefoTBV zyl9`~8RzeKd1rx|+xDm+;Oxi%O0LnS@1TT3CLnSgvkL?Klm%RM2E3nhx9a_FZR36? z3xYGA)AD8KZo;1{o|h}?{FRRJ9i;ZuT1CP>iCkiD1sx{DclDgzSkbgrP5<=?ALWAu z-^uf9twk4>>OrvjJ%13K#RUbRUKaaj`tgtp5RO&|0Bgn!FJo34r z;PxaUuln5;VfT87&G*hTns4YT zLXfc};(nq+u-`zPg}nvuw86~-yhmqmT-A{B#7xE0K-5SFpL?)y6fY9eG-zf3 z!D}~ms2#sy4B~s+;{`Vj&v$Nq!=HsYSPlWBt2e70oxz&a-GvT?|LA~-8fYjp5G_9CbyQA@#^VzhnV1*K2=mxNuU`0HL>KGz z&1P9tZ+=O^F33iz|LW3M1L^bJD(T|R2LH3g28BD(c6Y8OE~Q^#{~3$mq)Q!nyLMV- z->YrDEC<_?wQ+(qOvtF^O1*y`uM~F1Q5j5BGeVR=zfeo>$2-)+y?%4;%XgCC07f#z8kwy~+v?EBA`y<_r@Z}5RNs9K? zAoVk9hG%&tKD~8Qq*d)GR1>PkTI`CeO}({Uw`|1EE{mwj^;Xj&rIr z6gvqr`mL-UAr+xQ6tMh0SOBXF!&g?<@Q(g42tWO~%XoCKoApnG;B#Adt3~Z3gP5Gh z!jt!{J|)@63DY_{xQ8GLbg_|h9My=in~viy@!IXZ-uN0nttbhfsFA= zwU(=rvjBU@Wp-pOl|`NbypHg{qXhBxnNZqdx5U<_vF>|_KmIR3WoThF+O?8YBPh;dWrc|`EQLHs1nTzBvdo$xK;a?xk{b;a}jA`DMV*qDA6Ms|O2 z2n1IVDPf$D-8vyoGXZ{YQ=Bjn$e9n;76C&oxmlNpvg^GnX*UGLcIY5Tt+&+soh%?c zHXcR%t@5B={r%#M6T5C z`N+y5|G@x!J5#n1nhsYQ^#3(T@RN!8Sn}T`BkQzsd`mbY~}hNZS!hc16XZ!0Y(P$>eT3q+EVFr zHhCzc_1-9}`I3`AcU;l>qv^eZP6HAu-p-x7oYk!zF4pT4JpD(7`ShO~|ItU!OGff$ zFZeAHp4}taJ$x|`8`l+5JNk4i#tR#B?2jBntXFp1ND2X$Nn1F4)I_%-;E!76%Km>u zklX+7<*;Y7VMPV z72~I?6!!C(Uuyka7UEBcSXpdcND&R=W4jXlZbSx;IMXz%17~g%L^K5GaH&1FD~Kr* zWqNgqQ9_zvv4sLc97`IqB}rYMddzG2xv@0GJ_7guApcCndfs>_@~6ba!bJ-1bOEM(?~vHN$B^c>{X4;6ag&Ly&NK)OA(WzoU&MLT7q1V})+i!ngN(S@2=lc{Rz-uE zR(tVEb|gf(Pq+X#e^aioE2YT=LRgVOhDCrlYD=_syfvlN*D|Nk1U^58Dhp%kD;7z)fVmJAX5Fl*!_Q4 z8T-#7&XHg8Xa5Q@9JhgRQllakQX^LBEs*qR!aV_z!nKUImf zA%(d8+?UT&ZhGCK65_u|iYkjhT_yTa_qY=p8a|>O4J!Y!c0qkvfI^{#3V+)Al~Yr* zN=ixT<{ka>_5ZWim6!wS7Z0BOfOc_kfJdxC|DXLEC=^9HzHG)w{eba7ZbxUQ?AUoLQ`s*5T<6G4hpj(Ll|GhHkJ{8Rn9-z`$qyUHlNJJdjn##2q-Y|< zyEy)5zm;9mqF6z+r2$R^eL*c?xa8#Id^%)k&`m^ZAMMW%wZG6?sbL>T;JdhnER9=^ zKCnh?>G}T;_TD?3%|8Ag?RaRbMhB&4JzYl8QhV>#Rzj5+Rh!Tfd$o$%Ek(`PA+c&p zjH0co5=4X$p+>COGcnHX`Tf4|GLH|A?&pbE`L{Bah}B->v#R#b}gA0BNR}b{uN3J+@2Zb%k98ZiG*X)#iDx222|DiBn6Un{6g-XkEPW|v&@4!^86gQpS)%tlJ_VbAj6bhfzf5; z0f-pGbgG89)K>#3beF4iqZP_3b8`T3#K`aVcCTsaf)mo}J3A04wGS4SA^G@$VU-Cu zBnrtYH08{l3>Oa`53gc?Ja7jKfYcUlA}v8snW}rQy>wv?Pt^%Ne51%njU3U?Kl9`|BBs8 zr&_P|v;?sGxg>SAC#rU*QiAWN?|6&^#O?*@rq6Y`6&<m14B%c3hg4HbcvgN=m+S*vgJt1pvl1Xe2I2$l9}4^4w|FpZ)3tGjiEB;F$fJIu+% z>v)I7y<|JX<>mdZ1}8bvUsQ%@Qv;TYHNgym7(K!UxTwSOX4$7DW zmp_)-K5(~s9R|nf)_@TsixUD*s7{-51P*2Cn_*E8ni~3YI&;sJCMr%Ooy0E?7Lsn; z4Xm|PB^#t#k)&FE5`l~B|>4c+X2x@RK%3Qi9&>^S<5jv<3hSae+2K#S< zHK1K!>66WE@uhp2R+#oG@`agCDr+mls|3?qOS-Kt$afl*XE7!+8~oqQnRhl>8N?~V zdW(`0C@6#A6QTXc%ka0>_Yk1LW0F!()b5sO5>n-l0^XkQ{bUbg;@ZkVtb_ zg*ip*NxU!=5qOXV1;x%^;4c^ZPF!MeL-rR7sl5=x8$a$6twU|>O>1={LtL^@^m6dX zXOU0&JIz!6LSi$}=}V(*AA@OKTRdhRhg(?%Zh0SPBbS>7Ql^`wd9p@KF7D8Nv-%`Y zo2NZ!?xMS0UL-$`no&MV@b}RIuSc5_DR8rFBWaZ+82=u=W^%_U>MYQ+rP{H0xx$ z!L}LPXd2?14C-`7MWky6p=dAI;h8u{ zHJ$b0QVAkv>s@6L0&(|zAz!v8*H$- zWq0#)%OmqMm(aP9UDM0-FTnkQ1nXqPqvLyEJCV>;L=Q9|YfVe=&zfxG@o-i{!)(BH zSa1naNpdmZUWg*u+H;o6?623b?E0*{XHH_fw_mTNgpzk@hsB}f&<@tgf;P0Xym|;M zhin%Bzmr=l;-zHNFq;VW%!5duNNhsr^Mn{}A4c*T`aAVSO=b$WMJ;-V9#OG0DJ`9} zmEqA3R8G{&v?IZC(*wbOJI{RK-i9|~FFCu$da1C}HN7&Q_HRzqaoHT}s^%Qy3T0pp zo5&EVlz4~XG7$tW@ogThnFryBJJb4$K=+^t60am9@TK&xWaGDL@{g^L(D(N}8mkb2 z$ah|xzLGd4$65bEWg`#$24iv?;J71N6}uP>bbZ=GD_m3csdjt_G)e40qsG-(Z819((wOf@Ti}_^itzFeTh|a={bJU3um3my` zVDD~rAq%MI6KB@74&SjFn{EGcyD#{S$AJ12DxV{})W3 zjtAy(*GvKg1}dMwwn?9x*G_F)=h%sk@%Mu5RO%BWZEeb~^Q830(J%Gv2A7t6S;rVt zF`1QdZBf(mCOcQZP038}>&P$Pb|L^=)?9obu*|B3=Z227h0IhmK*!za&u~}))8wKS zSbf&5z)ksaNHWBknEkRWf6jY4`e2Xk3XwY+^WCMrZRxMtle7a`V1eDXx`&}Vy>;hoZo;J4C{4R7aVG&j=uTe4oqPt2!<#^T+*5`!`i z!Cx+!XCrwdvmY)j0FEU?ZI$i^l_?pMESR`Z<`dhiHt3q|ntV;jKYjaK(-_?eMG5aw z?4!sNv%~ibxhH=dGJVf3B%bRj&$vJSSrCvL-(}!t;B?Ck{kdwhQLVV^9~z;W;DcME zaiRa#h*{b(*8tXC3Mk&_u}GVy&%jC~BEA}bc{R%a=f>)o0;nfA)sXEP6ML0WLDu-w z7;@*~EsjvGr-*X^OB6n~=#*WT4XI&M3J%`{96+XhN+<`HI=be5kiwDY$Pu3#3dvVN zOs<9^Wb~B7xPeWBB$tOYw^b2(hxKKbS8`>ZOU-&|LYrGfZt)Oc zpj#pv7PTiCllW!3v-;giwpbe}28}I*X(VF$Ku5G{Pfn|5g|kRJN4GsG*ExV97GOPm z%r;1cK+t({4*TUf=jvECIYT6Q>zqSIFds;;ey2Cbo$lSdyxN;6*3Fx08((DXT0*wF zoU}l2meKDqGqn$(A89A|b02nzG(wl%c2#E7cZq8vUzxaU9>0>7WazhPk~u#ArSnbK zCTX5~)W@UE|Mdh?{q5Skr;Ya1`EXUUmzsH}WJY6|48Ym!Y%S?5u%3^Zle$t9*&=DE z>?X`dQ)m5atrN{4A`kujR@5uo|1jQQym`4>x$)$K_4%t*>&fkR9;A_%NBQmjM=N`+ z-IXmXx~qr5n^^XFwqaJ*wd15Uzd+A9d!*GAm-A7;>f0h0`))$ln#|b8F)EMz%B(hT zgPrUDAZEXL&)7aO`OvhQDGc_%PIrZ_f$wPFNiphb1(Jc}q$G(C3ES1~ud@K%N1stk ztwNTWu=vdr){fR5n-tox5 zUK_1dexf#obGDcozt;q~0I2YBO82`5Mvgtb|C7`^-{)v}+_RDtCjRXeES1QG~TRn;XNc|6$`9i_}DCM!VuC+SyDb?PdjZ|W7l>!(Ch{)Ib zT_3bZ&!1tmxPH&TOLeUiW3xoh_?o{jx|tO!Yju-O3bd<%YmXTW1Z3x5F2|BXsP>}n zR)Gh2qEuZ)mSal8s0Ydf{&6}}H0wjI*g z7ht?!DDQOglwJv}uHV9Zi^Zu$`ZyCX2|#QTYh)@{$~xiD)#t7p%>d#P&aa7+xupG` zF~ZspEQfuDSq8I3Dn>R{FPG$w(FU|J35_|K;R`L!F!s>5)p+wZuZ;s^O)1$-C$u~{ zlT#gI2^mNAwb735(%-t!7BufR-j{ZQqB%5rCUs5Gku!44G)K9n|J#we-5Y%g1E&J@h!Tfot$n{mau7^@8K4yI};GHENZ=?7emQUtw( z9w+xY{JoDh_rJ4ZS1N0}`D(nyC57o}hStx5*K60B!PvB4I zsmSQ-NmY90J2%3_RyX00T%`q6VxV)bx~)Ja zH(hHO+V0cQM$i3~x3sld?XVMc>BltnyA|yR#*!>Dx0v53*7um7!%-w)h+O)&2O9b< zlTPHDQOf^a-$r|S0V`jXzbo_IJSkV%8?{HuLAOjFVrhYE7f7wL#A1_Rd>^vv$dP-$ z;9F@K$A||1vxvsh@siLRt?X+^a_sPvk^_dfpZ+e`CqkD&l(cNm3}L59v*zs` ztA#Jn744fH>a%K|oLkAF6~7P)3A)X(4C!(DjXe4kBe*a2%!Wj)paOM@s| zVC9|Q3>GNQv?$vh>F>*>1nEcq_n6N7OyKf__XReBkL$w{g+isr$)aDJuyDi1v+%sV z6jRLkgzAH~Jx6N;Q2Q1p4u;)2U;n;t@`8lkugXPERMyDZt{bVX=N`Q9NlDc>F$dfP z!J+2H#&-Hh-dbS!NdTaVF%{PrJNtPnja8=Rn1=azM}WrT(JDEC(aZ-t5i9J*#46tW z+!$=O@>DlIwVG(0&n`{4KkAhqwj~EU#XT03?-yy|CIIsqk!m<01L2*Om|`dDcFYx;6U=n)(*^%PCEQ(@&X4H=qPZ6_Ujyh z4&Dyi3I|$aE{H2XkK-G)*GCM&Nqkp9v_rY2p~Ztwk{Efv${;0-Vb_!c19bdi;LSya zWs9Cm#yb*xfsjpY<(vBq9fRH6_MXbG_YYMsbz!#End`UQ#C$MY#I3bBk8cww8D1Gp z;^U+Mw?mz0->`2CkIR3KvU)J16`J~^)}4+8-Ot7vz|np`BeQ|0o3X!KZG&sihnxoB-bn@{YcNi|b47dgQk(CoDg)!e? zojvr1p3a>ixL`8J&~9_Hy=G8F46y(?-)eNf5BUSe8n5d9P<&x?H;Q1JrV| zzk!)BSIoL^Cv6B^wa`R7EW zp_cUD@y2?Nk75ZwGelMdrxd9)?FoUL@kYNxJLi+H_8#8^M?G90lwX5GL#D3NDJm20 z$1>Yh!El<=1z6z{be0Zreeqt)q~Zy71#;+vZF}!I&fNpUr`$5&HjwaF# zY=gc&>SLq(wn;QxLdmYBq<7l57Rbj00ZAr!`b+RWE4?`W0t}`Ql8YKXr>4Tk3qn%0 zm1!Z1B`>;7O}u^KA$`aSDF2A3C1tSht6BvhtuLU6JcVlGn6`%QD*KRKdWMQuCj|Bn zystMN5DYv<+UoTThm|Pi`OkubI17!6-13(Tj!KUJFHK?_S)}`BFWs7z8J7GSmj)7 z5&W>fRpPK66k@$2J6w+q?IbNX9e#~TGk5r7<5#aw0|nuvJk*t=$wn|9x+fkIS$fNW zT|_{Ne~{$j%%7c!1rFT@mG75dEXiyKFrOs2o)B#2$!}&bTKk?-$L*WdsrCT3E_q=63q1HMV(a)D;724y|E3%w6WmS~NP?qEk|D5g8>@w&;YCkCw z);=8mNsIV+4Lmt@ZgO7#{7H1&W5p!%g^7TS`9Ihon|&P!R>t-@a1Yit#hH6k=?$gd z+4<=b{g+w+gV^Fp3qDdyWzYynI{0qhzZV}j3m8)HBn~9iaU{1sD+}=)WrtG=wp=bm z#GKO=UkCleKU6Q{deT{phwl~7Y@FpUvS(~m6q8e;NVlA|X3rLm6s)(zafU&x?%qT6 zJGaW%X3z9Hk+*{EP|v=^5av2x_&`EZ5tE<~qE8!TvCzQ{mv)BF4h~4La|WNOcU}B0 zMOYu9<63>OHGLwAUeMTRpuv=GhcfWBp{}6_<8gX^dZF)Q6SwBi?+2R4pvtl0!Ubz^ zIO2<)rpTmUusg17DZLHh!9YBgxM>c97poTtp$MV=%sUs(MV75<%?te|2141cY3%V8h!XOQT2as^H7@_YZCk9YCjLb`BU96~TBt7!w%3pCkjWvP9GN z@ZKQrA{4L?^Aj7~vJ3qec-XF8cnMg&h#m||q-Wcjjxq~6`K+tKdzdS#RSQ>lsTrNIG~qCx!q(2nOfA2y1y%m^6*j?l0E7S9cg$1B z`MdPt>%Cuq_F5cq<0tX1e51`;pI$|kZC?1bsLA3=*!_|DSmLwb3a;t5FMgTR5OW2@Zz*PY^l0Xt0X{)AyBVt@qEr_m zE%^yW226T=;C%`|Le|g$q1(4N&WKHC2P^$L7*s$n&zE&*oQZeOlJck#vsS1wk?vE? z*U6=SHs}p4FfwyC*Hs*cQ>?tK59491sMq(9Ue+Z8pMwpFG9Wh7yy1kF zTo++XO>3~=@EuIT8a1OrQE>xv01$AmdLTP;EOV~g;9}EzDvlH>@+LH#Z+ouN1%`N( zmc%oRY81wOcbgVWU<-|6y%o}^MyC#y1es4%7r+NN&4ZoLQ*cBkYLr?Tm#omxgh01N zdnX@dA5a`=6RA5LWT6S){PA8NaF?=p>ANzcj5TNk{kbwdmeLv-hQR5fMPT~>*_M;3 zHT~Z7he0w}CWK84E6!yC>P(cS{{2>Zw9oLbIJW+hwtSx!X79D=qim+Y0r{!$#5}kQ zTWC|=UIZNAHeXF*+hwJ0XY*?P1GJ5N3dzC}PureNdHV0vLe4A`zp-t6<3}_tYFVDO z2l>pvZ9j8A#d^YxP*0O!nB~!`T)|D6KEnm#MbD8S*XZ3s*Eq<_E`}`B<=r$w)%q81 z)1NRCWiOo?>R;gpW8XW_2orXV!Gp!oJ*q(}$PmYUqW5AV?YAgdmuNWCVU!6D*R!@H zDMcDo@If%jYaGhndtV`8u*HCy#1K=TOJF%(k8b7j@GVYeM-v`KqrdmB`lT+K;(DRR zde91xis{E5ANT2SDK^#cRT=HnG<}5vpeoKlqssAkRl#xcq)nk-M}5yxmI#K1LRgme z2k9@#D!tleVYiuT6M7K57o_Y%A{|neCyEx^bnf>+ax;S!EttxcW;`d%@jDW1O02ge zli^iY?wtpQ_Mml@P&HRqp1XFsq;+^@l4q1@rmBizDH>u2$@JyGe@~@CUr(9TuO-E| z$zJ=+xmjXVm?a0&Ry#hBQVx$^C}|Ph_+zPSWHHe27m~!2|C@y{MAUz6Sl0&WSEo2y zpijzpDue8+6A6#Rz9tl{|D42byf3u6p#v&vF00J9%X<8~h|A&;h+kL96o+f)gJ=VOV_xNQiT+c`i5`#X!DdGvih9D%BfbEjG%D2l z8Bs$qgfB5LBj%j*CW^*jFM7LTzAJ1s1;)>0TNoysf#RhtXEJtgNQ8nQ)$AdB$4YIG zWonVQ#me?X_Pep-bnsm02zP+e_XC9WPe^W=+VTc;2SXxg-eSqWLt>-weQP<003zVP$8^aqq6I5kj7h*{=t zj*uuy7Q9qKFM|_-XDN!nMYB;o+vCr|Ej|T`8iM~NK1qlnf7r}-sxgfm)PIu_q=opm zm85s*?Y>i~JMYf^1e7||2Ps*K$A9E}uhzYgWN6o&ps_%|@GInrtw%RVsbFW`*{8qs z++x4xQuCvY?kUesXeHFX!s)tsaiR$*eRUz=F+TG3kB~*^@LddP8%ZHV?-nl?gwU2t zqz)KLggiOt#3vdPi7dbV!mvZKpkl0zW#k9CvgIn08?5abGQ7&ed0g?RO}-NGS*~qe zf~?-mcWIcv$qMV(~rf>+IL3-BPQD%Htf$(ak7bKe7>ULUx61 zcjrkO_ojiXUi)P2IsOq=;_WeN=`ixdk=PzFJbbOPfY-_|jEF-1{I@{{F)v~O+6J(^ zb)R&DzWhe<9qwFM2|ss>CRVZqfQYdCGZJOLVWFhz!$ycA=;B-ota(6$-C%AC9;D)U z3MS{+oH_cVTnO*!r`b=+_jUNa03GVx(t7{D(;X5JW>}B##e3#rC*^pAsfw=~yb-akzuPniKHj~UlzCXJMhLOv?j@N6hsOW+bcS?jqTliAitKeKOYb+bt&W>p9ln`9Bi`eku3$ic%SnztX*jD;m$>GN@cs+) z^ua1>c^U}g3E z;L35Y`u~mdj_?J`n9v!%rKG?T&u31W{4iK^5jqnBB`VyHZ@k>@Rc5KRJbA=N@*6k4 z)e_htO?=E`ZoPYVFP9|}5B4q&a>R&X@c;s>*50=>Vnep(KWGuqLoU08>DOPehOvZh zryPm1*o5T<-Etv}e%#H*Nu4H<@Bkw!flf*c#T>3xp z7FTzt7PS0(lE>viecufkE6Q%1xit*4TPsh>cCl%ZS?xURNXlJS%R%{2bx1e>WCg8s zUXd1K2;z*~0svqg!-iFSD@~i^*YSwamw~4iv(F{%X%ogMpf=hYUmg7tD+buS;`=ZZ z*|C<=g2r39n9tSeDRz9j3qLPuvt58XnBpar%K~Kf8O|`?p?j!k2*5x3i%#pEqB(7D zC48ltn5Bco8^HrxM1`(P1WB1Vc9wIs-vLn6NV<2fT`I_@c;|BD6aCiktAID;W96$2 ze4>*q?Xa~&|1$%Yfr+b2Zt^HID$utymIFoVuuQ(`@>tyayJMq!L6+|#s3I`lSo%T^ zYU124wevL-Ux%r<^UX={@ad%LXoJrD-Ltm81Y*u-qi!rAwPv^36qNa3LjK2!pp#@! z>kre7z*)2@Z@_oEN*w|p(NZ!&{Y}`J@MG0ekT`%dPxH_@%jPinP=RzL%$FjPD$ z5AxLCmRt!eU85BWzkGzv4n!2??tE%bI=3@DlI|nI+9LUl`Apu)DQKzr7VP zPN`WB>#pv81UNWCNE@G&Q|>1R0q8$Zp{ChW$*SDNoTLMZ#SH%^$np;?8&{|QlQWb#@sDZxQXeVs%gXdoQaLS#q z_E$YTgAKxg6JZ{d18@U!_kj**;_z5lILX_l-s(;3{?2o_Xa;r6vzIT6l(-OLgLCr; zkR2tBfg3ErisPqyW#k2FoozjEfJO6ZI7h21U@AASmH#xq+hje<#+)1qcUYRYfo!>o zRU;54#5FdKWp<*wZu;b0s12~zt$@6sG+=q?ssM!+rEc;MLMY4FV$5Nz*x29QxvATg z44&OZ?f_1kO0Bt}jSsJ?)Suw=4U5uUJcxfsQVzDNyq0x$viHzy5n|HX87U?FC8k8+K1Io#yZP$Ub$B!^?rP0vn>-p zJp8$GvyAC)nDyZ37dgIVa5Xqxj<2Gk;`H>|P64qGc{&+5TG z_+2d2)zg8Pmw=cvH=fZ|-LC$@TFNSwlJ=lg;;0qjpJ05;#FA}bcv26f5!n#Dz_Ig; z&3IYppQSnBaNv8-&|e_RT+VaCbDAsIN|=DfagmQqMwbloK~?VH+m_<)!V{r~hm$kF z?7JfrmfE+_0BqhOj0geoMI|Mu-vz9 ze>O6tnbHc#yLCK@%O&fjIxwyFmBidg?3<}&-GUSBlpxW!(>j;+_hV`?A^?%tJjG6@ z5~(Cjvf8ql(2Z!i@!+5yA6s_9UaZxDz3!V z@$h`a_gEE+u~48vQ!;+hXt~6*G+yX6&sn``qf{lPo&nKlkJk z(JRGFZXSNy^~&)uBM41jX>^#31YZ`*@;Ub6ph{L8#h>^&MDj?orG-$=2OENG%zm{jb@i}0yzjMDo#PR&=)wg=b zz9;7adf|0Oo?L%`CA~D)Cl!Cnul>Zjs{s}u7YhXgR?|9L6PnXWkQ87XRbc!pOmw$J z{-dog_;o3*Jlgp$cY&23c)|j&|9|`c?Kt@0UIMvq?^}0$(U{Zm&#S6ytg5xE6zH_J zbXnZ{-(hbqF0@AXFI*0qw&X;L+uo!TEO}uZi249tfrUjBn5E^5w$uE$_lg1b-OGEF zdQ20v*sR8LdxrnN*{s=3@N4pku!!K1savlwN&57I|IfZu27wR~aXYnx#k++%$6vqe zBqoJE_-{YIjM4QZzy(}+6jeV*Gy6x&;?tLhF706tL_`ikS+|*ELb=^ekLBY9hnVE# zWQp#T)<#OOefN>nA2v+~AQbGpffx^NSNVUDrSmF^D8%s>FIH>q%7k2d-~h;s#zRO1f-4i#o{xoAJN``p$*mb+ zW|^4u>c@t*|H#bDEdRQp>ISifK}j#*0L67LxugUKp@rsDdnmd; zr)`OSRR(RN+|Cs+$seMCMsWd~`Q{#fd=H;G%+cWOEco7$P`WCrGbwq|>YgAsqT)CZ zDw_y2JevE8;9G^eJFGVz75q<$K9~S-r*3I>6abAp?AyDQ3l+XLijmPMl&)L_JH4U^ z($(DRQ9M42>!0kl0;vb_yUP)JH5GF7JaJXx_mU(SO9)yebDR0UEjg})q}ECw?py>2 z6BZl;^Em5|8xxLl%F}_zhqEs_{)xJMdSk2T_;1cHf8eV zs>oVIO6U8LvK+rpme$Ku=rG-*$~+!eXk@AwsI!xV>qkFylV^K3OmCPfQg2Md0=Zkh z2MvPjcMck&J1J#gJ4;i#tSKNpDI`W*@)>E;>I8^e{EM{hwE_T_2j(rUauU;w|$y9{v{` z?IH~nO~qa7ZboO{8vdMl!NKM$Yo_z&@R`m3>qcV&Ek z?i3;N_%w>YejNl%%E6$@+}!-$rmDllZ*hLyVQJ-fyqMQp}R>vn3> zYIgRjK!TiT)6Z5oxz~}t(8@J{@0c3P;zkH6!Ow;J?a5ShsD4*@xt{lQ1 zQLxxT)5!`o|MfK*a{`rqNk%Q~BOfqFp?IgaQhRn-Lywv-|G>yKybz`S-HM+S+zw;W z`uD#BV%O#ii4OrRPU{PkWJdy*Gm*zV$NRI_rHoMM4a~MYP@V1JJRWg>)_Cgx(T`jf z`qKL=<$MPK-2B?IbGBd|7}f&)+N}64c!%bNG(v7o!OK3NU-mZ~7=QdDsTa`9oIM17 zXgI{mmO<}5C=uJtyY=+`QEEu#u3Fbr;MDQSS9BQFe!L}S3eWT3@pyYGFY@fN*sOAV zeX~`P?*34~_C01S0MU6@Siw$HfSEG`mT_4)oSy_XIcxaVkY9VN=U@)BxJhKD>G-{U z0xD1ZBw#u7R!0unXq5@cBFw_TKrBTtfx~RaOp_nuX+ol{rV^^?TY9uPn9=h6>vB=} zYWNPr4q=xPu^XVZ65exx;8HtDIsRCr{Lj_>np2)qxRNB~(4RJXzaL5>p<6muk9(3l zXuEje=pMde5EZ$J(6ftt!hhEUuNoPBQ?+S8eEReGjXR{*cpYVd5APg2T=SCE(2ws$ zV#*wl-y^ZA`@ca@*KgO2_ZcrpZqykx1T2eRx*#+73zngEGOQwe0FXv5^!@c%=BU-b z#;4R?y8J0Ps^&qdP!z_{wFsj||1n^DuiaaWF}KHfl=e5h-4zSxdr7wO%D)`^D}GSs zEKmi>Q5WoqeP2-Elf9Ut@n0 z=o32!W7hdj+xlBOhv4TR>{{2i^lX-@DwG#OXCAI-G@d5fe4D3qm`Ng=!@8GhwB)k% zwr2B4zO_^KM4axIUZ-gG3*}~g{h*I77KRwAV7xJT<+v%NwUc=1QNZMxi1BO+U z?^r)e6r57kdZV?Wc@39!CgXoJZb93m8^8n?u^Pcg{lN8QZWVSI&81?Ow|K7&2Yp{}2|8IgBzEAw3m7?*K z1!^{$*Z}IDyYGt+4gMB$|IV6R_0uhs6E;;>Uw`VnNmHd-HVxr&zhLetwDZzPtJh6s z;#)PF64hs@a^$x!3<1-5(izTES+hPj8K4Bi2J-H(GpfTpZ)=f^wuTPGY#%;UV77P{utH7Yi+^=%PnM(8n~UXrtrC1E znG8n<&>jXGjV<3SJe82XGJb+@>$rGrOp8ZEDl&Kc)0@!nJO9s#OWE>HvuNs<9__uT zTPP{-J#g4Ylq>WPGy)D&n$$xxQ$2~(;)w_FCK3=9u3cnfTQrxN7JuP%OYmZSL(7Ua z2m~h>4YJZnkSZtX>#QnI*J2O zU4gsSqy<34ns*(>-gVqJrEPhtNa4&S*RQ&x1jwx)orSd;v&d6dQym zl04H#aDW%%GjlzWQz!!p+Ub=>Ls#D{KMBsp%0ZpL)l-~6o-1Wov|dpuN~lp}ak1sq zGa!-&z-zoHL(R@HyVz_w=CI1-&Sn0D1Qt}tPx8O3Z{)&`*(&>bLf&`hdRhWMB>Y%q zlD=z?utiFqZ+ddX!xWRwYLdafnWj6vaj>*WPS>GM&)F0D7 z9t4e=_*>M>GG|$UaP{EJLd0Vv5N^Zsk~JK#Od-t$d{3MyO-!5-2aJkvbY;NDf-Vz^ z^Ca6>heRn1n7G}lhd7>kbMSEuj6QuaH2K;MP!6-#)R&l1Ss z<7$HYV==hbSd_j&v2I%Df>`F9GjpZ6rYA}=T5c8W9qk6&4z;;ne=D8x@V(#@S3W{I zOPL(Z6`c+s{P-$+vt;H#{`#&pb$nkVh)jSX0o>>`+1$3;XpGC2;elQC2VsZT4^5nn zIG%l6?{ExdmFZmi6v}7b`Bw#qlZ8XQQX771?X{xRs5@pFYX{JpL6qIx!?8-hF9Ibc zIN=(`U|UgPIW!KU6KeptDji}se+Q$7i-#|KkBW*iIQz#_7nse8keP%@5#wKflzwOm zC_n%wxoN@gl9f$jA>4t@4>{^U-3afcW=M^(za9g8=mWZ<($52@G+ua;@^JKYB@8gu z@VX2N4F6=j%G|ugc!`12j?N&h4Dp$PZ>d3s1S-muuc%tQY^Jd+q#|gw|J%~jlpcrN zA8YBSAab|%Dgjzq_zil&BLjY&@j(gq108ya_EsT0W%Dq*(IjVyQz-5ogZ;#+Bm2K0 zr8{ROTJH5;BM;dWzVg#=T|?$Etf5Ba=v&u1A7Pe(OVsuwkiYv>Rg6(EUk@zXHBc>j zwe&BgVztIyVXAwlk_Hb8gXn7xu+@#-c+euc{Oxx0#q$^hmd7;Y#+@qaWcRdpk3_pcN&z)=pBZ;0}i-mAWg2WJfr z+o0SGUkJHc&BJFTL--Y>_*RB@_1gD-OSF(tlqeppGp~nltrtJaE`HY(AH@QzH{=-WntY6`s0hj?rp!}XRb2KTx0%H@K)V7rHoRKf3EK2xiSh_2nwDQ7vA2Ia;$2tsPp-pU#o^8 zf1SBMS~NKEB6?(P)GjQ*KH6@5J%-zsfe*p(1JlSu?o{m-$W9poOa5SaR&eI8wy!CG zLG5!WM>IS>Lc5=TH~Xy2?;eyyzx?C^03+$`!&eZ)YxgTo|g2v9N+5L*Htxf

?3|732Ry=|W7zlDD9Zm(lH*Ma|H&ey0*_Q>~TR)6H zdsRTHP%G)Hpr>4X)(=MCwMiE)Sl9?*oWK}jztVI`>L71YS==bzcg4R?%Hw%DUd~}I z#bc-~g$eB85i<6|I^axwe=?w_mHk=e)z-Z9w{jM<9e2Q;n0Q(`=C(HOFR+ptT`U{23@R7fJ|jx zAO^}A5~6ce|M+l+!a|KwGjH9Y+8c3+GYu5nTGa;Ol!kwdG~zEP=CB|F1sqWpcNQF^ z0=KOJ*zIXUh-F;9r(UK{IDhR|`);%lu`T`1NY*CRo=H^R_ z)XYGB+0CL!?9?qn8()46{3))>*QE`$xY%JX-l%I=a!>Ng(>Klj?XQ~{yK>JJvv}H} zw}Sw8tv0WqjNEaPD_gXS!Wp6KpYN7^<1*7tZ*sYsS<4$F{?EOGqxXQIv}^E*c~LI% zRW49donb8bADkg6R)d~ZMRmwrA8f=V^aimhSrIr90^|Nb&#|~GKV{3M{B`2vSZ|g! z$5*0^@_v32;J|!njHcZ`vGY6G?jB)h&VKWO(u$E$cNFt@o`wJRuL+#TrBFNR(W?f# zBhK;GAoKp-6Nh;;Q-;gOv=qL8QEFEsq-l)#OK@Ju#@3emR*C)y%Lv3JWX_1|XX%RF z_pOK~fzjr-E@l&Cp;*MlD566Uf_hrAs9&;Uxt+VFhIngsXnJ|tIdcisJfQy~41W5@ zE;>7wYX2+T(7|o2flo_&E_n@j_u+%9yW!z{4yWij$EwbMSeud0|9zhax>BIvYONV8 zng9aj-J1l3vxZ&NHa_X#MO)hB?gJ>&2<)(VZS82gIG-9YSU=+pD7{rig?|BRwo!l+ z?05*))QpsTK%1*>87r@>^z~TNWiSBJ%oveZOw9dUs8s6m7`RDH1LzXvDBT7W;Sgm8 zqpnELEtS&BT#B`#i`8owF#Rc0rK##brOL5*F=)Y@L3gWg{c*OMUTJ+j4wyRnGqdoP zHksx@s_<(3#Kg)jmVo*(01~w`gh|p3EXl4l0y;SWXZ!X(muKGuH)r2B9zC`AWdFGdCN^!lHV~$prxk1HPY*3x;@8gk33Gqo?2?C_c^P#59v=AXiAU$ zN4V|fT>TobC8|RjH8+RZ?ZiP0NJh(!^^U9E6@WmT)(ossDwj;yJnSKTva3OK5k+*D zD_^tS7HiJY^XO?18SGmJP#IK6pl;gaB4Kq=OLjH%`G`XnA>F1Ch$0*TB=Jbp!aWPH zokT@S0!r~GTj!r;XB%wcZ-b!iu;~qv)8Khby8`r(ZPjW-dkv>S`R&`L9?Da1Nx=-? zsIXzD6!N1gkFyu{>wr);H?HI0n1+1wx%e4*RGb!xCiKz}Z_>RIi7$nFXOx9x^rsNe z4_zaw(hg<}b#ht4a$0A}@?%;d{Wmn*Vb@JpeabhabgV2pXUcQ@@F}Q_PKmgFpd%B;rvOI4hjYee*Z)u8hYf4X`_($~Jf@i|iuX37_p{wC$u#?Ft5x3#j;X-iJ`e#B_8~y;184yU# zT$UBDKyH<*u)`XICZzrv8Gn-5dp%%MZT4*!k5y#h1YC#zFg%%lYbNhYRQP0Wve1YtTKJxDs67<0l!XeX(MJ)j17yX4SZ$pL**9UtbmWo_s;0TKVpYl25pnASAY(xMf7m+F~27AzV2x78YdF@Caz*JX_w){2zNxg9AH$wgvr zWe=kdzWWg3sheg$^5%7x=j-uJim6QEcz~+hXTkji{}#=%<-g|~qo&GjQz_ngA31nW zsKZJ@1yd`^w+SOH3kuYA1g0_Z(ZS7(tM!=ZXChgL<<9MGy~QJ*PwOSeo$eeSzK2O} zs2ciM1Mn!C5)C`MC!5q?!7_Wz+DW7kQ;z6Xn(bbb^g%p1$HA+#Ro1*{Tkx&ku}|Vu zB0EA#RM_;A-`KxdxmmwX5T>Z}Df+4Gj*}|CoD^>#w6t&JF9a*OomVA$o8fvOB!(9Y0|=$s-H042ZT- zxYC6HB6*GNj=A7})kCv!%yeMm?{irrW7dQUpU z$24rOq2b4}zqNVM--=Z7DNFY($QmA=@q}!OmNji4p+2$0&@G>9SFiUj(jpMkh&O+q zjPW_h`&3@(P@v<)v3*Fj6Bybk%UNpUQ0_L%z&jTm->h*cgXB+#nrYx4A6mT%QWD{U z(v6V+ZO-j1>r5w5s$AZjjNMT_FVZ3TWm@UBK6qrXfh`+6Cq~$tC?z0P(~oPB7!CDA z+FDG*;(=TCgfI7%EG&#R`}!3&vrBv-=u}`B6my(>vW>;u_`xJW-|r$}_}Yd&%rhor zFX+5{U{&X2pR^VE9O+MKrypjMMDQw^F@oy1L1!v<3;9ka=!aa4N6`RjvH6>ynh%7J zYZW(CNaBnZ$vCNhdpU5j+wJdaA!7aDTZ|pB*6Ti;x~}wm;pYoBS)v9e-WpYg)32{G z75v9}>=oO+HvYAX%8Eo&)apBlM8gaJMqUF&TRqVM{Zp@(el!|kk$9W=e#SY|2;}b{ z-HoD{YJNFiP`RnYkZcCPuYgcNAw513RV2X&ND+O}hsv|4L?Mm6?~OzldA;=`WCdXW#ye#*z$k0&Q7$-Tk*z4f#E>w|oj)_VBMqQ`8G+1@}*0aZCb$&~r9o zcK;voYp|-{`&`-}G1K}NOQ_u+poaBkA&>uqxA%@}YJIy!Q8%I#(JcsqfNm9#j`S{| zpwdeSy{L3T?;!*Wpwd(Xq;~?LN{0|o5Ru+%fCvbog-{b9Bsq)y`_4II-0}T!#~t^a z{KH@+S!=!TS}X7K%xBK|lqxr$(F^1oi}O;I%Wn0>Wkao8CWDx3uYkUUMG7B@fR&N< zps4re)^YDjJz1TsZ5^aXL$=4i>Dv55Ii9INW*wB^*w|-Rikctuj~8WunY~V=;&Q&M zsbJZM_}bLK-ENwT3HYu;qH6j35maP8-!G1z#H>~6yCPij5pRfo-C0xAvlbbGi*h!>Jz^I z2iRV!uI8U$r?Shbswk?mYc@;;S)htN*1bbQJl~sqlnsaRw?FUSkB$#(Zg*M|UOASV zKAN>%S4~H9K3^TK0l3!dNQfemaH3VynD*Lg`(%6fG^&MiZ;r>=&IP1-PMo=A4;|`lEXCG7J;2WSz)G zRGkjYWaY3mo6X)z#$`{B>a~XBFp`rj)`@FVixJC%xyhvOx*%hCv9o4egCu%ady zJyp%s=GR37iSbW*9n*Bguj0W;sBPs^m2gT_RO8}W_V5@H=uOZCQR)KevJ2M6azjjB zm-NZEru$)=GP%AK%DvRxaKjvweBjGMSf791odS5oVBfciDcXg$iOKwm9Vlt9R&!oZ zIOtl}3Ig494^dbeV>%jgHpER3#4D7OAL5ABs+AsjB&Rllis$9?M}H9FeN%cS1RM14 z^mqP*WE9RH>b1ao#g*1p(!X2E*w)y z)Ei`3m+40G>QzsLwz$KLa)anC?}y!g4mK+?7mhAr(%-e$C?Vd-uGFyXWFraye%G%J zsZVQuMTR%F?7k0HCYIZ@&MmYh>2`gb#TuhZdz#;Ey zTv|&-Pdm3Dg3kk1OgSk4doCya=kbl^v7?XFP)nz^kv_mkIM%FX^EG|lT?`?#ITc@l zpRUJ@DmHE2wnF(f9c_8i7FIu|p0E43HQ-m#mCkH_v?VYqm@-|TsKdQCr&YgvzfL%1 zV{SBHqeSmI!_9T4%q?Qd8fP^R$8ie3OL7zx%KO!OqaNaU0Tyr?H$4T4YxX~uQcnfO z4L%(|GmAx!2)6yXz;%9C4$rF@5f7RJ}N&7OrMA)HcYT9$cOLo>E z)aJV`a1jbdtSv(@{$Ac|^Qdvk+6>Q<{`lUWAE<=Zj5?t)Xjw?;za>Xv=`st@K}Zpx zU)q?SD%+FK+gzb<9n4UY+we`xIDRi!`=sc*wSH+RIOSs5K}}JB;gAXaPP@3Z8wtnx zw{~@RBCCHcAuW>jY*M6g-YF}vnMWd|8aP9MX$DBybrKQ6+prZAKYWV;yf3b{M1nN6 zv=gC#?1M=ok24QG0$vftLWmEzb9sn0?o)q;dWVh}u_4#%eEYR39Q&&9lJbz_>l-?W z`E=5rGvCdat0SA%qHnn2CT&++!F7cH(oQP@17P`A%3Xg5=n(AK50Qhx2~fwps=zfz za6rkrtEoQ6cG1r>1SCDp4Xg!vKq(`!?}w&M<-L7o)uFjCP3vwe|Bi#qc|t;tK)M{n zcf8_RPDOf?|G0GnQ31L?jKwsT*tRC$JE0`L{zDWV(|`daQU+|hyicO7L|N%L z!%l}=m5KJz*ht~$WSagSE z0{T=yD2mLG+}A4BvCRi)8?#?!WXc28Sp6}HuQmjR(PjcWwza2(?*ll9EKqN` z#Z8Q=2K?PN*vkBQK{6X+9tVi;^8k~<*4@4I4CRSjo9e1)yvBTx$*3sX)*~`tz`Lof zMhyvN8!*sj@9@F~m!1*kvs$KJ@a{YjpI&^Oynl2fW_r~x9Pkg(rCBrEyl2m%%qD@? z!?b9D49NEtuq;wZLLp{nKka2xJY~IGt@EYVtbC2|M&B0Y;2RL^_f8Yy+OTYqeF6Rd zM*2*x&~(o?drh~%2jyjDBJK_HZF3%Tdp$k;P1vA@xG>Df*ccm6S8^Goo5V>8ovu$W zcy4Tnuh7Y}NN0j9UUpE~6nyj5L}8-xdC_hu3Cq}!?W z!x-#swKQY(#V5m1?tR6^E6SCWBBrqBZYs$IV@k^LM5`T=((`-f{~|{ZW_!JM@DUf9 z)QqFa6{#VuL#9(86059Ak9NGQ)CmG=a^#14)^p_GI2QT3g>*U2_nIZQyqdp5EDy~0 zLuUi>-K~Avpld6&N?SjrEDd_yRA7~mfRpevQ7dB1e&7K}Z39*bR3=HSSS|P7-Yu2k zY5>Ur3xSBU^B?y`W#`7rX5r^2>&N*a zQpyQbw6$8Vr9L^fK|yrm>kka9WfXURx_-Ona<~}!Purkw_V;Zr$C;?Mp9_SJrHwVx zFDziJwAH#ERbE-5Q`~kjLt*d5xy2HBG5_qimqkL0fZ(9cfL1Iy<EBwbAVQI0#`z!Pk{R8G*fO3TNf%C~^k_qS7vtF}Mje&spPHUC5ex9Z%@$w_Cz zKLws4GJa}X%_{5smKcl1-o`=MTIpZK)MY0I8kbuB==<}1jQ zpKgvuIM=TXP~I@vHGeJ7@CloE`o2CNf-IkjkI$_qo^24d>nw?xQ3QI^L-lpWh22ZxM^|~a_AOO~h_4+$oXuej$ ziuFCj8w#3oAB?vlHj-U`U#SCiAtWT!6zd(;M%U9~=lCV6{s!d2;*d9~#Y zZX%#GZhq96KSjtch&=eh76RFCIyOi6|$!O^mOXl0T7FU6Y z#Y<0{BR-b9>M@!1mpyGB3;2;z+ZTII=0k*d@21At=H6rtOJseJ(`V1w_Fk*13G7lJ_;2%YQ``4e3^yfMQvHvt=zhUn@NKhcb_hu9Q?EJhwL3b&-b5D=w_jWUI z)){-fG=;%;9kw!*qg>XON!aQl?ayQb&czHlg7c6qWYAgy*Htv?+KmL;&})?izd;MF zErz%p2EundNRn&+*tVsVZn9`^Oj97ubY?e=O@^d zua}=hb1)B3(1y7mmCW8RbaLJ#kzVoa-|F9d-)>or8SbBzHjwAf|}3 zxSQk*MK;w1+)>oBsX~DKHorjgx4#7TAs@%ZhpRD4f!S<|zI^-$g&l6ID_a_njjjB1 zd0P?n0@1%q@Dt%Y&#T4B3>Aa$iY3rg&5}vgwu8c|m1sW9;=?_}EEUJM@mL+p%)*Lm z11k!26G{h4+Y{!m_I23((+S<#gPoxZ2AD@dj&KdKG##!voZS_-v z3Io?rIjwr(9Q&rW9b6sD@8CGr>!?re&^?D+haE1C%(X z(PAbC72h+0MQKBq!?mS&WUoa~|4L?Uw@oTj%!$#6yh6_~r(`O&+C4wK2+#ex@V2`r zK`%acu+A>>zD?Qsv#`p_p4elsj0s`mA3FyzSBXYvy_b4jMGKzI!4m{z127qP;NiD)a1Mncop<-{e*y z*N#ePXS8f_LfJZ3^@H&Xg{}Y2iu-Oxv0Yf95IB|Cp_+g2RIkOvEn7B2G9=^3k)u%7H_!*w}hs7hbg5s=#z z!PjUv>Y8x#@O@S#c#%2>6sk=+>XO{Vs%_EHncuqrmEk-feGYiY5!BJTTM)DCt2ws* z2y~ZTjGmoEV65ti%@mT+WbMusNGqec;tjXP+4?MAcr1f22UQAPC@?kD*~Eg45f<>l zvXy?TJI~(Z>sFF1_`$r&$nGF6e3mdeZ}Nfj?QzX~vWa8Yz!P_OtM4QkWdXO!RukFJ zCYtiv+U}f+pG-Dc`Ie6#-7>*C!x93vw6u5+Amf*N4NIzQ?!jnXf5W${hE}2vJr%nc z)X@7X!+ho^d^bH-15*c$RQiA8S{J!i;^(mY;yGNQ(j7kUx}@GDxXUm9xr!^#@46>( z(XiQ=Qqom8lnol$Ons8pIT~IBt03>%E`DSbzUWZ-bVuUbzzO>C!Lx;41Fe`Wa-^;>B5uCpD8ytv1~x?Bt8YCxs$CH^ixR>A9wuOh^<6xiXImR39&Ww#YdB=*ao<`|wGMhwNVy z8sK1F(bzGoUFv-d_|w6`_RwUQgzc}TfA($a-?{33B^VUnCN)L^W*frtgR;`#t0Qk- z>SHxs>SFeOFn5rO?vt_(7 z+LYJ``Z1 zvyxquRAncl$YEZ;9J~-)F{SWTff1hzR_V1{%vOM@QpXe1kzzC>RyCpl{S%~tACZ`@ zBKYfu7kl|{d7##ncoLI`gI0$>ll$DJ;h%`5_E)p6q7ZtNzs(FFXOny>#_6ZT<`6s`} zaA#n7*9~4$u-NMQGo=i4?Udxtt0R2}XmpCTIQ~ZDRUDf;bS6~R$KY!#OTx5j!?b#b zpP9#EmN8kszGjRhv$+wx`>CeavoeiPohgOyVr`4n@Gkky72Z$|F}ut1+O&zFGb0JE zu6&k_faK5Oguh?hFbHr@@bY_1n$1Pb>O>=EpYBuDTBgvnbA0|mw7JZ!EmR;XRDS2r z=&Z0E=()^u`orbXt6P)WLVRgKJwK)9*2ifBx8_C}`257%PQ2K~X@8P~4cMu=Zv->5X*;2aA73h9c*u_O`0R z1nJf?4({^iOR&+afK-G-PX0;*YKhYAybfNHSBUE|RbaI@=)z73eG#bNVBf|*I~z1C zB5Ll+ellNXKEr|FE5TWOx5^hAP?cV0`h`%SCLHtjqGi?Q(M894>s2RTlHD5blgOxA z+_Xc;5IP{V{|^C;njE~4Mhw#iJ}iAcNky7I@(uOOD-EgPAuE0n0LU~~JVj6d-2u>_ z^7QWq^;1GF9o?^+rz~rLm3bLJ6M)zK|5AruKTXR4!XWcMo3~6XttOi)DjF1k4fch% zH^(11L32Q;|H-- zU}rp@8^$^2-5xqzuc$Ow(YyT+W2Uei-%)SUU4N}T$`PqjxVq=t3+#mM-^F9;IeG2@ zt*B?vIUZlY4%Psog1P-2+y@yQjnSnu6$S3Pk9;#v-cG671A5|(P$e{aGdcGA|S zm>Y9YxF;$BN4m!)R34d6HO;cGc8ozowmku-|lW>c(63 z_hlk-41J*DIay&f_vcT+#;m{oJ~;(A(>pwPo(lI~`ieTd3>BALQIYrE&3|8=wywv_ z0J0w@&$PbkBYsbx-QMP@Krb=3+29QvOtL|m>drZB*h*{-{!?Br1mF6rUw7~?GHRSK zs8RZA9*7azSYY!_Yu4~tRN(xg8aO*Pc6KS@7L{V#;QZna_-<^2!}tSAEorgG8pX}k zI!CiQqmKc>G2t_om@u{IGnU_dO`H*43CH&eayX*lbP_2-^EMy<$px;&6lN%qM!yx_B%Z@4+y%_HI=TY?WQNLHbJR2B7+s1nN ztfvF`X+RK{#FDs ze^^p6C_4L*pLFOT@vf!pi!;L$SLmIXif)1SYco}bWk*yQs=P-{qOE%+yBfhQi{{Y^ z+6mMN%6caUveo>dtJE+FGA>y-nmJ;z+vK#u)yO&b6DZP~KRU&1WaU|} z%VF_MBW(NUNtH3(f!x8Y)FpG~<_mD@kjbTkTs5ts>;u2;UsrB$QQZ=(Dc|ue|3Es!2Zd^~=i%Np7h(pP9F%@0B2tjP-Q*>YU#^mt zwj@5GAtXdmR`JK8TW$s6##zz7)FvL@N{D3jo@@)iX0UYM;Nu%?^OAn|G`~Ho-Bp=; z?dL1Xy@s=JOy^)%eg_r;eB~J=wGk<&sxMs$*-$Q>plK^ME6VRz5Ug%=R((Pr6YB$ z%s>_LBH z!&^2((*Wbb?)K>Uny!oHcS}Fzz7AjfBv`h#bJkT|3saYqH#jO}C96E5$|?}|F8WJ_ zu+oWS*5QkKdj-fSzwMJtMl1rxPk0drnvJ$I^<{i9ppDJO5#sX>3nu3UU99a)HC@Ed zU>cw8<~;2sYcq|eg5hEx3~e_Vj} zMr7SXT+Lm-Nk`WoU&UZAd70Sr{8jSZ0_cvZ&q$RH=l~cDU5;&|v)4se^V}%u-65~j zEeBeTUKiJRYqeCsr>o4jp3`RE!0W$RZBCbv2j~Aov;Y6FSpC2M`q;RRIQkE~!lLHq znFsl07SIe$*V8r85X^8%_b}V5?KclF5iFPJ*6}ukEh5}76j=Fb8qMREfDy)1j|9|+ zl{NGGPC*oBPj6PW{nuf2taR6&!XJ+CCH~n$ZTSmUbUHpbjk0P60_1_aT%^nbHDTl1 zo!uzPVZBP1b7ia5y#YlgaB&g&or<#6=42#K*J2k=5NSYhLk~Fcqucbn)CJA0p z^S3ue8UC|o2TbfcBwVySoxuO2GxXnFpPq+PO6!(c-lxYl6cF_!M!5T?UVw_$)R2@; zw-qPmYlC6qGEKT~(4f+I>ZASV?WdRITf5#3zdoN&NtdS&DZ@ zd537)LzSgB*V`Fdr z9eGm@$zXUPW99T+dvzxPv%0=4C3YV@kEGs+`~h@A&cE%RR4w(DLdRe||IW+w^z-?R z)6eJFTAInge*StmWwq>N5Oli9Pz_Si?f9P-YjlkN7oLLu<{JN3gSY=1&*1<0qnrJE zTQXHQ)%8P^iNNB_kZ{9?T!a8t)qmqs^9b&N;Mb_lI&Pj7)Pi$D6DBKk#KHBnf1ZrH zMO_bik^SVZ(%Pi9tuLKfR6r^C>i*M4>2>b*`H|C}JZ`%^&nFuX1R(yUW;{!VtIH|y zrL3c)B~Rk25yMT4CD>0PZaK!wnWwhCBF46yO6u-@eTmNORb5xzmHqeT=wtRRko!ba z$|b)_Mmqbo%fxFrZ8WaQ(Y-5^!}GS=)cIi}Ipr|ueshP6aO7leZsidcfj|Iez3@M$ zw~I6Yxv`jbb5HLC!Yj%s^qHqZ7HL2X7;s^m{g8G&`ATf zz2~h^;ytu^Oi&VEwd?u(r?%DyN*J0|hw?=rpSbDjw^2%|nGU{mJwof&=6H@uqqYI5 zCUT#UX;kQC#kTu`f2YYm0NsB;w9Tr#98>7jW*}BpF)=7cG5$ua5R?jJMp2Tmu0@UZqL{e`YiqeCUYd zuYQ*TzO1kBmcJYts%q`s;)W6`KDK!0b}TxrU!EU+uc4(l)6MHHZsfRp#Lo*>mfan$ zBjyE}j(-BO%$Q$H)-k8bFKsMtA6D}ygz0xCL0KXso=;IIy3 z)#4a+&Ar<{kZIS)@I55^k%N{)pNo7k@(upoMSBg(xyeVjR&{m=MpdIjM%S-j-_d-U zI5zNg$7hm*{`DQe@<(V1)_~giN;!JIIqUBkt`M1oe=S#7uiYEy1v6+B@8Qw(J^KEg z+XRyw*wXnKg%}|SC^|1tJ}=LtD$C7u4Gm51k!1MqCiHsc|7c<*+p^6@N4GA#H=@H& z2R>;P&4&`iX96S5>Iz44m`&H;93YzOx*8M;pj$&GeLtHXra5vVrhR^2Y?iYnasAp|^H(sHEEQkJ9XS>a(S6O0P>~8H2MaaKh)n>9HP4l0A zne#G_6|%Utzla>}r*eAmP4KyP<$RcETDt*fW)!Xu^Aeja5pq;Fz)bA8g+$&gy|x}K z>cSz#SvUA9>-gJox!MKyZu}c{16Ur6e=u&qF4)@d>eP*lATb=NW3~yL{;9W=(1DM3 zu!NO`UpSWzAl5Jjk!DnorsFc2Pn^=+qogS6LB3D=?uffuWvYT)%O@V zL)Y?blQMG!=`18n-d5W?ssCI(3zKGi-z+$JpDPdHonKuVDH+L{&ORC)IonznU!Pef zG@~kV=N_}*s)8KH4M!Ae8oVtc;*x6Iq0r%d9bB>Ev|bCF(ji~$$me}>rC~2eEemhN zZcx^8!)&qEMk$c#la()iQnsrLVI!&NWCc!o!1VZdnj_Lx$&B7tv~=hN;qG96uqi$0 zGFv7%(*UnlrW!@bsYj{>*e)*Q_$3}p5!rv}Hn!B4JSdZm1U2U_IJ9Ni0{Pi_ay+y` zxL8boIjUu5r~XlwIr2U;op~r@D7Ybe#WVN>0fZFqs=&8Foop*?Y^DoeZ#w$Fgm4@( zURb~}s&p^2K6Fr5H{zfmy)6RnjisTy3HR=^Nff}|kOo}IHd~ORLB~^~mba-i?Lk zZISF%hVru@oDAFfrKV*Z|Ef`XdtjF)KQ_H`bNx`}&Zx@;$nI>yBiPrwL3UZHCWn)O zWxK^yO_QYQ;B}G)L5Tw{P``|qz5N5r-B^Jj1p&2Msj^o>Z|?02aatbq2^Cp7xqBw-Fg;+DMqYB8HcqIy zAP{nqtT!&n!ei6p5SNq%6~z%oV~*`(2&jsaCFM_`=KxRJ6hDeCSlGSxY`lw#7UdX7 zzsF8j6}D=`ObF`_1^S0agx=f)-K(hHKg0$sWXMXru)KUxyjmvqzQUNq6At3F{Y};C zTIA?6p)%(F0dD;-KVMl|)59d}=t1l~ThldA%u1BlzzVPUWmb%-olEsqCMDU2(s6TS zCx5v0lvn-Wvo1$X7fr@FGoIPz1N7dOiLSBZ$XWaYiHk9ZsfNA#=^ANxgO`dKeNI*q zA9aFR9Xuwm2FMh1zAjQgeV0_2*-kJE-M2;5LaY?Ua3D3sE|9LuuM2V}`w0(SSD=kVhRE*^Ws#gj_C@NwM?QPEbL3xs)@46# zpz`+vsibuTkI9WsUZNMi?MR)eJm_6#A9#wSj^4SObb%}yK48t+CtDO%BQbkVFbZR+ z#MTV@=+UkB_V29Ta;oaLIC?VYul});rv)>fq~C?2;@y6HYQ%rGqPKULd_X~WXkI9e zL8sT_!Y7`BA_SKBI4FtE{%BO1nv!{}$Ut`hxL!VO{%vOXwTpi0btisaw14D!6g{_- z09T%i2^CYoeeB^b;qx}xz--(9OeI~(&}G#u`+KXL9v4c&g~Ez`3j-q){;6{N4Cl3G z^9<-q^BLo1Fg%Pnc-_iZTgH=qkof9LJl{cduub>VQko0k}86z+Ztht!S5(p$-9j>3UkbuF3DgLlNr2j$O) zB)dSp5`T4dsE?a5%^xql=6C$+S1m&uBEMF4W~EDe!|&d-$1&I_0EhiJ^G)M44j~Az zrQQqP*U*02`Iv*Suo=(j%lMk{qFOE4*$QAQ{cN4QxC z>JF(49e4E3LF3%_n!oUk1)u!xEi5UHB!j<Kd3ufzWa!vi6 z>=FdQOgF{QHP`dTP|C!kt&HKjm745M)gEIzH zaJuZ3&yqfS?_M#A{K+f%p#V8GVa=|~vGF|o@hYDFYKn`B+LfpKS@fyizZ_czD^7O1 zpJ=oXdRWb5vvk%Xt!BPrZl7zfFVs8xtanB-#ZooA)td23Tnvd#<>N0X8cN0KOerH9-{-5}G zsuuj7i{PKuJvneoOZ)svG_fg^{QHRjipNX27v$dc=c;Gd%Zt$~hIkUB&~*%M7xUto z)A7-$&DB%q3pb4^;kc>>|76W66YfAS#Yyy5QkPj>*39kzg;i2r=jyG^B&{hcOWh$r zS#0PGtUP7`Ly0^LSvObD6my^Ew-0zqM*Mc3AR66D&Q_CC2Ic9BIkxD|(@B^64X*if zcua4`D{aXK^>hm~A+nDm$-`912HHm-no<>8V1@++7CKV=E6rf56=Z_kDcMA9+Hwv;4oQ975ufOE(x@o(E8 z%?YT5M=DVd>!?^pKi1fAEUjXFJ_PsU%ytJy+n~)*-L%b7w|mL1!?5+75ykpaGZ50Q zpLu{j&C2vN9R^-yY0TS&FPO>s64VB)Rz?yad+e5!(BE!+hY?z+X3BmVzhe`= zT~FO0sacIWDvYC78FtR*o?U1?NxDVzVmUY& zVwlH8XpIzzq@alb6_#nABc0c88QdaBQ3fbS0vV{2`?!h9pws6G*waFsm;7yb!hA~G zZd|pdlvhmh@C(u1T-LvdL*}7l?akxktY4lT@~mb#! zSincph0$3nNu|W8I*HQMlVwNin^elVa(Y{gFSgM(B^mkvc2#*pr#Ldq{It-JQ=&}q zhe)~e2F+SBjHUC|8TJ;4D7!g?%v3qNMp32Y8b!U@hRPGd?TnFIg`gv`wRZ&kIiYVJ z88R+j*j2c`K5v;@=GxlYs?1Vy{_;fY#6$qqIUkcxsjaU!3ll4~X`SCVCp^6{ySIxh z8H&`D%MM>jxl}B`f(2wcOgjZ4v!xBznFmF3b=e1 zU|lTQp^5cADEKgrh3m0-VD<=W8K!<>C=_b$aO!r2SzQ@+bZ?W)V(rds+Qj;-? z+4^4k<53es8Sp@07QMKP>xo6mk5!m1wotD;?kD!5rR}RfmPVv~@)FOSKuoeW8 zPN@N^G>1=b;;swN&7;Y)OnmTR9{B9c`>agFgQ-j==xq}9HC&9(P}~PZkOqr_4!(RY z3`9h|vs0snL zBo~fQOB`LiiYNBIekPZ68Ctm~i2Ol)-=0cZi0p`-%S6%UZH~Vt9BWI2?JlLD+D|yFj8$K2K0Bs%Wb}%@WSjgLYG^|7YQEs86cB35RVrgaNV*J|@RZsj@ z7q02o{~2}5jS$78-^b8~@;u6OzYwX!GB;MG=SLuApf=L~QZWT8RSc(Mb< zk3wE=8<^E~>!#Ka_aDK&@J|Oqf+S|J-nIILpKumkG7{csLdTzwt@-1ukOkAOoV~o~ z7fL@**ah->G*y+)WYOOd#a_Xi5U#tw#s>{%c`cJFfwm@cK*epjEzv=#qg8(cwcU1x zz7c>QaDz>R(%GY0{8|l=cQnAZ`Qe+HG6Qd;SA4A4W(HK86Ir2rt%tC!R~7vLr!;}G z?-L}?_&V+D9^Ps`t#Wl*alG$$)0cIdq~eJvdi@7qKg9UMH{BD2kB{V9iAk%Wfk(DO z>t8RXpaY-Rl{N*HW2*|1&z@X^Rp<9(ixwa$(TGx6gCrc!EPn{5+C)f=nU6wMd@ zi^nWNZRZ6T>`c*Dz8=FeIfjPX^~|9dOaZllK=a#)Nc<^iB5oU9d5eU|^Q&sK(juGe}7$GT;+(%+sWQ|<}I#)o4WE`c0t zy$)jPbC>qSGmR>4Cg!OozsH>GD_>fFGpRDQ zbI)F9qQ4i}E`4m>TSD{at-c%NFRp4<3Pg+r$XhqLaQ+h|jgTOn()X)zp=DQz*CCNB(V2ibARQ25HZxqFC= zKdOFn*$6R&Lwe}pF?NeuWW|_5A~s=F64V}ytpn({^@M{LcKE|6a-C)rZSfN} zjCQmc?4jD5;j!vnKzIp1q(z z{>MX(nc@2OgV1_dZI1CB#)sD=fM!euf<{mg-Bl@i9eP%#GDR(*OgT`>$bV;;;8VCg zdx8#JPuKe%*uGTvG)c&V@xqK9=MB(DT_(MWO3T5S(pKYdf)nDtH{DE>e|XPSDw!>y zQyF8fwUoownIK@YX~ZyDu}iV2cA+S6_PDIFL5`2;KQQi0jD97*4?Hi6Zahi^VrJ>* zdc*@KT;8>bAgGqsE)20(5okqTLcUl~0M{8f_=#;o_SI9#*TL6Va3{0BFP+9qq}<|W z=Rs^b`Q#Dl+dP4so8DWO=gei4RQxknGkR7-EPg|&mR^PyC@TkyxMPmHPeP%A#~cz!z`OAfrk7l!+x~S@|4Q6bVa#GXP*54ud>}y46Ns{(H@tizsjNnaxpFx z3lX=LyhgPA8|T5lUgMU~JMdK_A8E_gUgG9cJQb8<{zcRY*>gFQzqM`ahF#s*M7X}_t+Rqa|uc{(y9o||RaC9x#r{99I+N|1>KSY>v9~9?iKTx?>c5i#m z`)4Ys9N}HOJ|EwGF?!kY$!lIi=QrrPIo`hoEZ>QF;xyW|;MvJrN7c6=fvm|kQ|q>E z@x=I7OvHBbvge?Uh~4M52z~4p`;mkHP9R==X^n%zsA@TwWt8HPP@j0Mc`Q(`Jr|Er zaX@Ary;Jvv7(Mt(zFMw=)W7F%fn8O7fL99fN`1AG-?VNe^FFdcB7zHF6FlWk(v&ZU zF9rznRkIV_<-6me?A`8XxRpZJy&$F7Y{YN~`Cj0BbW~+e9ZZq$#{p^pf$OS-eKOfh>#rmmpletEEOw(1uO<4!1-- z`+WPtZiQOfpFknW)bz)l$J$b!Q6eIdu!^T82Y%H;PA_FbcmV;^AV{}5eEi|P&Vd?Y zX-<*aB@Z3ttlI@oku&**<4tSGG0Gd94P-8hd^@7Jf89M0$o3dw%#4J+9lFAYU18F3cY*XXV^!O%PTH>yPRv5hYrPV#XDh`P~2> z-pEY;_K?Mk$M#cMJO3m#))L>qJTUK^Q)Bt2cva^gWKRX{<0ISh2dSA1Xud7+a`8_a2p;%doPyp=&F*`=_ITS1_}v7%Z1)h17lPG#lzpzv zmGZ2M%|O{CIKG`|Zmw64nDLA6^lLvhnVVTEO%H4}b{I0bIl6R}mlMEN!<*~915bS1 z=Te_lnQ${YZ((5O=e@Rf>_ zA9VqlHZ^1$_-|F%+&GoQhvx(GYpt7`<;u;gw5=u_Sj9po(T=$i;PQ`LfaX=;|Z zeGMYOj+`6M#N|ZS5T^G;5pCGZ`$L;zlqp%7344QkCD~(+FJEFe6TZ!A#WBa!IP}hr zE_2Ne^61fU7X&F2NmoO;w(|xFL1TRn3BhRC9}I{xE8ioQ-UjaeKQA1UzP{ z4{fWKNjD6|8&m?SiY|hsEp+PG)#(JIX&_gLIlCW2deSpDv63%-r8;LVz}I=vTEmpk zL1hY4P*`ncqJe7nnS=X@=@<=3sUZW$rNQb4w;#(r zI>j4$jnUCw16Zm9ZSN4cLSlS^+6g8@`JBkivgPVYPk$_I%Yxrs-Laxk+Dp36CsTPo3jZA4gmAc6tYNxhlUulhmY!Y_S59+w?B^XSoM`ZPZhs0EOUXZ>Em3qhJZEt@sR&nE_6Zz}3Q2Qba>7I_U zwb{<%HDG3Qe70DvidyI=i$_gz}nI0N02H!9MR04z{}hUItkjK1}& z#Ji#v+RoT33{mtNC>aasbnCCH7%CCCjtUg{pN7lL_FIHD{^qxy0Zd6A2F}h1Za!$i zEso^_d17dFxHWTTrnC4=t56}awqa03uDF53c!~p5WCd=W84e{)==Z)2eJ$| zQPR`zkd6!PD-Gf)Ct>$iKeFidoz1bm0Nn=4lE%?hlUwJHD@BXHh&V!%ms*7!D2<$K zc^vL`NygB2Lp8Uw(@EIZbJ@sH6#OU_faM)t zCDR)g8?n2GhAM{k7l=LQC{Ije(DBsiO`6eHA%ePP*T3rDZg}2v04}81c83?tHoZ$p z?WUnVJueU9=4j3=h`gcQBnuj;)N(MWw49kNZaovB)d--Rz|Qlk!RKsVYyppsT*&W> zY9~5sG9n^nS}u>LPHTaKOOCwaoMMPU1R`sX{VvQ2bDirrG@P?QG~Xf04-?YPa%tXt zh?k|4JAumgMl>ILVEcIE4aN{NW()dQn;>dq<7s8OFhY>c(A#*^RgAyJtyQwrkQ-<@ z9}c!-#{{Jr<3Acx*elzHv(u}@--GZ^@udx<-IH(+yM?1sRsTLq{cOyK2jrmOidv6G z&yu}D$8y40mT?D1B4ljW6~a6n)N||#-tt2`_ZGq0#s?P^Ow#MZsw)F-bd%Z-no(Gr zTDt=i{AHd7N(HIwHB-)0Dmfia-?Xunj50 z%+8n*>$bjhlG7WV&N~`kJN=a?eJLiQG^1oqnjke!)K4~6h;kf$t8&MQQvGcFFKKgh zG32{x013J^wCg%R4i!IIaP4N&M^Dz^|8C=<%>Hc?yU||lok~5q4^)m(t@FYsk81Eb z96xX0CLL4!JryUx>ibzXRqM|}tPB#cQKF-NQ?lD~;*tL-#_#O-wAr4J^IKWM)xJw2 zL!WhhDOdtXtqla^Drv))+&V$90wjMk`d0h22OY%7_jO%UKIU+s(v@+La?qK-q&C2Z z18AqJLj{q&&&VUynEdUcfI1#@y;obv{I&)?qIKR@juTciIDV-dfrZeHZ9UdE`zlSg z!dRHY6tM|z2?x(V5zApE*z!13;9MHFmesUM;!Mhn8@U=g+KN?-TFCWcE31qMGuV;` znnIQ?H44bfq8n7;Ub9+lEE{05YH2^?yHGoFEG7^}B^CJ6C>B^3?g_b$js~!_H3%|9 z`sWB+5_KFOAFoK)pDV)%Rhkbr`@WG`X^~B{UhoRqZ!=o99am*WoBeNK7FiH8Qa(2~ zOi#t_Y4);R_BT>hP*|gtN95ZVMC30#Zw>}-5{`^!j_!J?`@RX>F|V|pFJA(tt>@%^ za}FPC@^GsMZ6;wRhjM(7$7IHLGtV(9I+`N8lKifrWbnXGD3tbKzg2Xp)V9eH&sjJ3 zjHF+p7y3@@y{Pm(3D1Oho30}K8qB7^o!o6GY{_4)(s?Yr$)xvZA@4FbG4gn>VGeFK z-8v?q2(ITr6Jui!1KQtdD&}DWL=**PQsO}yC2{p|KHb;bpsg@=;?iq+b-5Riv7P?9 zovc~sq&cY)%8g%{c6c3#k>OKv_y#$T5N__sk^t(BJ*ro;^geMj2|jU1U!ugXBskv> zy7WSX<6EN85y1d6qHz5^k)0SfFD~~zA$dHMF+po%6+0_;A;-uQx_%R+LdWu51q!OR zm;8jPl09xfBVsgd9!KALU&d4$QVYCtnTifNw z)|zpfKkmnW_t*V#_x$zz^ZCAB-{hxvK?1lfvtd3RD(DVO=flu8w%SaNYZyN> zr=UQaFxDtRlN2O3*;eRk*I2xW?oyLYgEa#UBC>Sf9&1uhG+FjJ4*~fEKP@Cyu)Qvf z*tIoHY4c+qmN!vJyOX@VrRK>k0AkHVKr_|sJ)}LW{vDs#O1LdQ7fgeTK2m>!lLP(j zTTLZX%anaxyMO5n!O1&;Ejz1?n2>Q6Ks>n+z~~Qa9=mJQF{a)f$n7TAde16`9rh#L zgud5Q6aa<;HRVx6;-9x3flRT~+e@#le0N9di9HajF>ak*Dg!OLJJZ^TbI@N66 zz{6Ts%+_8!bZ@JXzjXnU*Gt=YmTzsB=;41RxuULr!TJS`&4zF5)$MrzOaK}*T7<;) zMov^-Qj_3H$y<5RaSW+R_e4I7-h#V;M7_S+rQ@=z1TP!QVr@ z`t+sZ`o~wOx6#iU*9U(>2!bS3D5pAN-i7072u430p;hO0D&ReHHM&Iv<2)0RaY0M# zKanIg-Mqd7r3rs?+#Vlhp{m!V`rMrU3Z_0kxj{-eW~rN6jA6$@?$qgUGI1iSLYv5R zhB#yuW?vgVnoV}wt13eV%Yt7NF`hcoAXh_ZUy31K#%M7cYQlJ)dedrSp{8kVSq?|m zj^*D!tqC<}KFe<^U^(*@WEmH^gMYqa>>}-S{N4jK@4QA~a46K-s)zU}(F$EPqz;xo zo5)LRF{0`e@Aw$C zESM#7Zg5)x4=`QXNXKRGW-KNmB_be-6M9qrH&7+7=7fMEK0A0u&k9?0VD8iDh@hAH zdZBxNYF>!bKA)8B#k~Q(hoLSnK;0RLz5x4^Z|@6&&carAM(ezBOzieQ5~f2W7ynD; zRn#CV5S3b&eR<=2X^tN*Y8qXyp`SB2sC4d)Uwv2jcov?cE?Zn^Tp^5g<{;nR8th4g z;*C0Pa{8tTC#5W9(+|}ZchW|Ge)6QYq}b2^V%E2mHeKI{mBO$n+rhIz-i}VXV2{hGM}eGfRyHYqR;FO6m(DV#f1fx2G$sa&0C zg(vBguYJ+QnG&|{=X;ie)onHYeT@8{f~x~a?d zzkA1AL`X)6kB?8p;^vKee0&EWypQ=I0bWUJ_zi8|>2T0Z$51{#$+LT(eHQo5tnmu> zh2As2&R5-kVu5#Y(A(I`n2)bERhZ?@&&NmlV{yaSE^6Nr`*5ra0m|jV%v{@$XA)9C zU;c)iyzh1RQJdr^&^rOLZ@18x)|;o2>V1DszXa{~J$9}xdnWtML)q(+hjhj*x$D<6 zko(AIMBM9p|L%SGoKN6LM(dQ-5EqLlNCSbCw_Xjj#jPa|_+T%vAEPPCsKQ^F%i70# zp#OUh()ar>md0wQb4`+turo_aN;EY;-Y(zklWX$vM{J}XJu{b)$qH1^M{Wyd>@PnI z+1f&L&ZgDE_C}g-KE6beNqqNC!wtDlO~PHhY(7`oZc|?8-#P&i5xRp%*Xx~Jkq4$3 z`%O(v^ELjhP&7$;q}KFrgUhcpkL;D9tfuurk1Z|6{7?ArT|cgT|I}db%QbO#vAy%X zXElO*XXP7X2Y9E);{PoD`;bC^(f5i^CLZF=Lq5JY*ZwKB*Vw| z#3WfJfcxY?(xii(-J_0Vk;YRdNxw07Y;Dt)p&t2#jP+=dtEbJ6sLyYZaNNgoem)mB zv4w4OTK{af4jAmceg(CW9I-M1n%6f;7Ofq6_fS9J_cPHOIl8v#xRB~Luiud@R$tsH=l=0_=YTe^ zQ;+|qFF{YsZi?#+Fhvi#KLD>?X~h;#zRtUhr3jw@z8WR0hTz4FSTzOhTD=44P3dz% zL_uz#*%5`wK#A);fiO%zzkwkFTZq5L)i1>d+*~tH*C-anw^WM7bj0I*?bf0T8O!5n zqUedsJ_vp;xd-O7{-dBx6Cc4=+awO@OBJT5?F)pNQg)uC4E~Zg8F9;S6f?4nUTrP za#BsjPT^rDf)uvsiL1Zk;KHYNUw7V*_*B@ET_u}pF+kIV$B9Y*oySc|GBY8rS?!6% z|9Y=3B%JYYjR?ZB zUd7%zKG}B&0&EDG$pyLEX7)$%-FTU+AL*&UtKo|gpj<}#%=`e1&kdJ4cy+BTczb$! zR(NW6R-w3P4E7?Gg#=9 z1`#!5dFvMWL=$o$wF5Cn{tKKSMsq4D4n4$sxJ?IX%O^jJV*M3u?E*2k3mCI0T;oazUgtPNOq3u|*>7_>|ZubRxiG_x6y+0~b=i>?JNhJ3iegjeRsS8AR` zbFYM|`D^by2Y0~%k&QxmLK+*heO609%7W@6mPrB4&ymsnIaf*$w_CHy!|kh_X0Crk zl3lYKQ-1x@7$+7H3>y9EOP0qfib!4W&RV*x{Sp6%ppyc;eF?^4J;?p67Q4GK5`p$? zYl-VMAhzH(hb)~F+qaRAwPJk96%l2HZFdaUFU#t@!tJA{J2c@|tNHZA0qFG4wglwN zM;TeYN6)OXE*l1agfhjNVF|^eM!i3JUTbXTs^SAg4C_sFeA}aB^}?QQ<(5=^`}VDi z%x9+Cul6iSCh<7`c_ZP{cuNO#$oXgI#Lc|vBVYfCQFZkl;)rjyFFKo65P1`F#Ltoc zjKXF^Y#2nyOz5hGmZXibb&naNFq~y53dsuxH7Fu)7^_cuf&2%H68F~A5%H&(JAcxkQHGD65)gO8M!Wk5 zZl}XJwRYK79(B?J|kYLh~;wB4Eok06lR$` z${bkAx16XWCDZ42)ZQjGTscpwuBn*o3_#EJW#0h(MzdrfcoP z#EN#)RD(+UYJY8JNqdf~bL}rl2IMlt$7*Ba?8^2gw%P_fyCc$yq}W2D zoYDP*wVs0-QJ7OQTE)}zpGp*$`$G}_Tk_}rXH6M6y|mn)CM-#Gv=;|3Y(Zh1hR6La^+mhzpt1S50n=Yz}T1~>ke1OGec zy^r+IfAYCJc=?h-*pHqbmj`!$9y0lwiwQB(<*)U*CPcnBskq%BT5cN>sO~%A)FAtb zT52>}4KFW$zU1wf&E6Kuad2|-C>4 z`{L1~biGq?V1saCFTvARqHaI^7fY zsY0U3XZ{uSdK>kfaq6eTPI@Z&I_BW=8ZRrF^L3xAxrn^oaqVJ?vUW+opn*+f|MheC zckzm?)(>a{RaAELdi|6AyuV?~rDOIh2i!o5`u%zHY4JnGx<{MV%VMt=uk0(tAJ6vZ z`maK$7j*k?_xv_#x;zjOemW>c?85u@^88mfrYv+%5+lTY0+8o1=7f^t(7UnkRuqoAnLoMPbZ@|aH$Y4I6%P6om7J9J z^?eJQcD0;Y0*@P%zR6R1NcCJnu2(W=n>ym8M>1^P6fl(DE2tS#<6(`cW3>e}!#r;@1;`d@DERCt+q0P6dES3A0p;8w|Mg71-(KgIqX+L>g`Fp4VlBtdPBSllSYU7$J z&l9#Dj;SnvgPt;airIheVLI}u3f2F zHIf`Jq_W#%EC+46#-@5Wx=f~(tn~un$7HYvz9}`2ElY#{mvX%GpepY@c$zZnuoQ2b ze8$_(Nwa+fWJ^pvC@!F$$=(?Y7)k5-;gY%2ou)*7KU_NY{)KWx%-S(1!WXaRKZfj+ zX~OuVpd&rq6fUj%Fhb`ol$^c937!Q;r+G^G;UQ|@^jbZ19UQMQ{gc5nu15X zBp=^^a+AQmB?Na75p!YQRCyD+RlyCMYn@T8e(|i|HnNY>gLMzj&m~tGtKTAEfn1J6 z1vgXuH$hJP8or=TkZ=C4WKp>~D3d{+)TKL`m?SuQ*sdvcz7pvcA9qhq2}>xNtnFP7kK*h+XNI_{P=?%Sf1Q&V+1~jbvVtMTQ=q}E>q*OE zaVQ<IM5}O% zaIe%YgUr#43r;}v@vZ>+D(Bqcq2#0RwxkA zO`EqV^4dT84J+Cw9d{!1nY}`hxaKmYyorafxLrqm@u$t*X{ktCYs2o>SL+)3;>7#& zpvX~q?uI19gBmC6>=aOn+Y#4~`StYcm!{(CNqGoM84^rZiC7vuMydOJ_S=d9|1dFf zWZc6#pw^Acz|c#Rb;jvL*GPm^sc#NV`!wq?M!RgK4tO%a!6mLm z7znihV8dynB(XqTLTzkx%(RqIhy-S`B=|9DRVCTXamRepn=eL;XDkkYWD*uBb*rp_ zxZMo`(tFia>brQWU2y$Ln6{P{O7=FcCL)_1vJ76@9KKU)-Ov1hVOM#R-A|jNKmprq zh2`peP9}!+BSKc=VKa2+Wqu4c43L4Z&)P}7=U$(DL5}mmIddTns&?6cZ?YNz_wRn3@aHnV zm>|~~V$DRuwaC>*f9#q?q~>y)*|8EA$Z{hv@9}5!xhVJ#Mt&sK>L=}S=YVgltJ}EV z?iuEfG;re&x0NRKR`An(^Kv}P?po7$6F8r;kxd?iAsxsTftc`S%kF61O2g^Y-w zvA;L58|SLdFM&esjuuW63S>%OO#JqE9k_);ZaA%>;`8DsK0P-de|p%wg^|bYv83m& zA{w|Yk;NjiIwP+S!{fTr<|igDPy&|LCST)D>WddSBEvVFFSVW3~x62mF9%S3p-7QI_HbUPtkSU z!9BxxQja>0wAeV84{P(wht*n**-G^hT@j&scJD=5-IYW7R}Y22e;I80G_qHr3^e1; z)v3$OiPGx2$kt_5oiHEEZ0*t2MxtAjRjPsX!FKlqwfXXRdbc$lS1_l%1`OUYUpC@y z1gfYhYc$*?_Hq8+yvmOqO!f@mpatB*Pt1c}T@vIA%YJ*>Y)luo>xo`>lOmzHyR3qE zokGCCvBWAdpw@7SfboF!K%Lhz7D>fshu0&WLKg-XT|Y z+@GuzVR$^LCsaUn@;M9}8}+#k-QR9f?=ioLSx6fH@31 z$KKd_llio`lZ@uVhbFJEm#ZNQ4+^{QYndT%VU%9eCw9QwgGK8zQp`uM@-oFYTl2Z= z1#H$66M+Knzvz1IJW~iX+1m1al`uMb-}IZfGbW~S3yCFxCyGpkL-X<{N#0N>26AJ8 z6+mj}7PusrhV{UFM$>1wz_1yXx-+uZt3Ssb^BKp2$UHMUcuJM{>O&qXEH8R?!T#Rg zt_R^NGdzJbu~Ag?4`icUiELxs{CDCPIsFLK<2mI|<>=W--N~RdOis+7=Q<(350NDT zJj^NmOSiKoHSqzB-g%V8y!_aq_3D^&Ou9miE`2!^Pna$F$(505=1aLp?4v7s?3muQ z8lF}mx`F3%BlE(We*Jog-hOAf$JBnRf? z76`APP^g?$;>bwDVHr#zf}Z`Ux|%`$i!xW|sY~A7qVeq442aQI>Bg|5kb+R7e&kBs z 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 diff --git a/website/public/img/boundary-domain-model-overview.jpg b/website/public/img/boundary-domain-model-overview.jpg deleted file mode 100644 index ce41a22e569e1bc8d01f5e0f2c865119fcaa0f9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366610 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 z 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

AKCSgk3AYY8)7-JKyH{B94 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

Lb_|;O|NqOF1Woc;7ZN3QS138VzB)Up^Q>2 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

XA`#u?#w2<)FAy26BeojpMv> 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 diff --git a/website/public/img/boundary-network_dark.png b/website/public/img/boundary-network_dark.png deleted file mode 100644 index a3778c473fdd410085650031d3f9ecd7595553fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84873 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

DSnm(m4P-I&6JzR%~RJB+#f6#q&% z6HvGg$Sy4w@)MH>Y^Le6agdr2R2)jpdkV@#8Kf|?v_`pfTSlCUWn@=vUG#Y%aO#ddS?Iz~R^IM5TTValF4NMU& zVW!v`=T@On9>on%G!q7}9v2q8L#Cr?!8#CEqzgSCX<>GN+U>V?Zh4NE-cY(H{$~lT zzM06%?4da7Xoa=nWQS;eF|YnzJ3ZZ#F$a9au4PEQViRGG>v&v(^^i&*JA@EC>53Cv zP7fi+fMx($!@9%umhx}`yXk~=Fb9}Bx2r|-kQLZT8 zf?p0DlQ`aB==pkT`KCOLp+lhwg&0N+EF$TN34Po3tN*96XFUhIm4s$~_PPrV4H7lp z+T7b2dSD8w6C3sQPjsDQWP~prRaYmu1~uL-sM&nVI$w7OjtsOBj@wzy91dc_OBmtG3cDix}aY#G(yX(WC&Q<_a#inj#CbmI?nmO<=@9Op9@Sn&MM2EN*Z#I!tdhP> zMwfssE^jiO4;q4+W$ct~f_Ww?FFR3X%jePWjj`ElcNkJ-o+=O-w=BLTJK53xnJ=LA zd*5-OjYJ2Bg*nH0i5{owc{p#r(uf$#1Ngae@}w@yBw~JWUHf_I*P-$!KS+pOUX)T^ zxM3n$O?DhSQGX;h1yOvyZpcnBVgOI^Lw@6^zNFG4vO(q3+sx=7F5k3Cb;Hf`w3J8r zbIU6TkVO5FLk~W7k*8~&;tppmdA^a_8?r`CO{qcC=h&T@Tppk`lKv@KV(;&8IOuI9 zZ>?QGR>Y$bJqdEPfoy)$RbF9#8cqZ_$7-{{rn*T z#5HhG7oaR4!I?9I2}4>olT8ll<_EI|FegA?$x31Ue^BN#n8p$j$)WBHw~(`D3>r`~-aZ5fnm351<} z2u=2|SHTmCpsJ$F8g?wZDeXMvP3J-$HWfNEz2YXHoR!$qJN9z7XqzhSXEuDtzUdP4 z0@%q_>dJrO)LWuOQH!)tecYaYNFY$Wg$v|>7zS-A*L4~nBFh$I4yF-{wCtw5Lf$Ub ztgD$(ePhx<(2A!sHQeUwL_|(X-1!DDwEy#v2K1KqgRcK<*|xr+hoPRGkM31#*rafm zQU1?awvGf|&}oJFX7}$W)o(I1qp`oquiE;~sjnP8JNcb~_pqMyyI9@_po4H`b6pFx zoV#`l3(hByTg*6KI-owf+vGW4p7CO53sB&}#A<5`vVKD4DH%BgZVb$}7dQ{iL8mM- zEn=xjoQiRJM&%5MyD}U9AQ>jzr%U3Npl#d91#NbO_G$MLWFDX}|T?P^ye(m-Bcm#`z-sVo46wwG$c^HCi@p4H z;7m237>fSr5o!4u>szd8`In33GiZo5HF8e3azEn?k!Ilam6+a?Mj@DFf4iDwXPa&m zH)cHSn6^UkO>h1+7SOr+tFsB{s5_;iR4LXNf_3H)ry zi0#Z`ts1OgBaX>IASu@&_3p>hE%l&|)4YdJ2a4G|dAA)5~+r?g`h8R`Sr@^Z+z-y2VZb4gf*_O>Hoqi}e%DM5Y!pIgz(UeX0s+HUG^hj-9Rk_@(p{I6Mz7C0h3ULTy?`(SRgn-Q^VXq4*EJQdp>A`Ipwgzt09#^J>@E7Uw z3RrmKXYW8KHjkBl3BLA1HZ%_(HH@i|mo}BqJdHm>LEc&Bok_3Uz3!DKI$(D^_?Q`q z23>;PD7vsEzJbwjU}T+DysgmgoVFj-utCvjd+{5LY|77^e-%kSQ~a@+6(irQ%6-5p zEJ2)H?1mtoPMy{0BJtG$ag}UxoF1Z`ctrS)XO%wm+)VFvN4_}9xXfF`7#$nLzsh!t zdw4K|4if+9pBM>UWgkS&&vSNzw-ACW(sG3F=tK7TE{ENz*?6d&^kF!b{o7oPxu}r6 zH%)uf)2cWhAB4CB(6L=iDyQttND8C!CYttdH!3b;!Ts)Drx$jVNp8)(NMXBB8j7=^ zh1gqOpz9>#kX_#fDc;OwgaL8Z|Men2@>q0egCVn)j-wf);2xL80HtnB2A=1ALP&m4S(VbaOS=D_;?Ds;p50O@^_f5^0W~$=C&z&X9xDm zT{<2Upef4yZY|XQ(RZv7Fu;NA_y%^4;kLmfH=>Y#eG4fZB;}vjrmI*HjBhzEyx1?j ze>iOxbDJ?FKQoP0K^Xo}5b%Aw!Iz+j0TiTB2xdWNN`G91_C3t)W`eBYswt&tu5y?T zhm6^)<5H>BpP3K)7XaSt_Zk-7LVcXicpeA<)w2Gr!LD9>lWszvkR>u{qw(lFUi$HS z9;q!ki09JaX3mSs+(~xG@3mj$fbDoqN!@Mr0cG1>Y;ZiH%x)-D;Io2`7Dd?Dbm>oC zno5umcdq0WZtBG`%q(PUu+D~RuY3K^Rradwg~?4U8kANO3QL`q)2UY#@X+?j@So2V z^NGwtmuB%K#eniRo2V0EHk2Z`O!*!2NCvQOr*{*myy!|PC&Dmo15B(ra^0PZ;i(4~ z@$&+Ejg+3~~qvVpo^COkA?~{778fG?P+nPgIhrS)2Z&^_>|CPPGX{#P9rJ`A3 z%A|LP47#M50>gO|6O-pjnQ!T3a}N^aWIfpCA|zfB)1d9B(8*Y094!_)LmodbVng9Q zb~S9$EIS<#Lb44Of4H>Wza%Dpwg#xQEHE6?-CFz0tbm%+ra@kj8}x-07o`C{Ta ze%gjSsvi6KBZR8p=r0CyJmF6rh937hH!hN|YRdhOV=@8Y^-bRK?nKA|A@rH~+M2rF z$SX|iUE&S~+oo(|%$w3kmEX3xqjuu`&RRvXo>y{Nc#=geL#I8hq)XwzT0Bi0%e2%h zvk){Fe-sh=Avd*G-b*zwPP-5!L@lM$WVol4Z8xj>0LM(8B;?;s!-{de>!BJj|EQFv zQn@Q;I_zIufr;EvJ0>qT;Y&tOYIrw5`Qr1x`z4rVxS2OF;qp#X`9`{U24Rk_CV{dI zl#JSPzdPzp;=jozLFChYM)KMkao7e~M-_puEERmklb3KN4?av$PD;~;HdsN0A(AWc zRklSY1~o0xfVw@ltpPgdx7iPrgp9NCI!$KejeU;Ou!%M{MmdH3q&+AQv;WE63~SjO z78{s|U{dH43tP0=m#0UE$Efj)mCkYV+drMkW71@Oh7fg3IzuzC8LJHN=Uke`ggL3` zkr_btK+tQG;+wj$=M+v*8JCWa6^*%8TPn(eup>+TtL%|Ga^8p7Ma9a$9gA``Z1n%| za{dr>GZYU9;!{-I6BgC+v-k;e%i;YM66RrKSvk>V#X8Aksf=;=jQ|nI(bv{f+=6dV zpS5}zgr+9!eQCpw@!n6r;X79~c~aDkjr`lu*;q)Yo#E%MgYN^1Hoy9j=XsMQL04%6 z1&M=Pr>K#k7&|+H~=`yop*GNk_e-jA4tL8nIs}Wk0|_StIDc&Q(Q6 zZt+#zN*`ZKl|M3*N07+=jnBLRif(uMQ$9B;lA7!iCF4(eRf8+t1i0w^_rmMM3{1#) znR+agH9~NRVYTVu)`^Tjx&A>Om=ooz!)>w^z3jr@&Rm|^T^KgVL@3K~^L8vIu3 zqi3a*w|T@r94aU_x(2aRc_;pgNK_emDF9Q_o{C`)R--s-nh6D+YLQ^uu`0U!Oai?` zfkjk$OmEuQGH*vPkyFtRU5O%Fow8FU#@~JU6TcY{Pk=~!X<+Y$=pbR!$n96X3%HAE z?czZmN|4~C-|8yl@KA^hN$L^UHAvB{)e(cC*u<{k>medmmg)*`-n34wur#|hS}(k+ zc2qme70L=c+Gy|G0e&KymOZG}*()BG zg>O#%U0J8;s(_smKV1~$vS_h-bEOah=R<>O_zQq>h#*3Zly)wC~n^@ylCZ# zqs72YNcw9!aDxXs(4K3*(IK(oE`zMlWKrEhuoOkFeDeGCf{8WFu@n#Gk!#ClPOo0h z_C(%wy&h1C;&C9_yVzbU+k;%^C-}n5$MRr2q1~!HS9pW9quyryG%_@jJ_s)=G9og3 z`yVVdr&GJRPSUmPPV^>wWt!3^Ua*S1VMdp0G%RXEt{Nyw5Pv0Kw8? zlbmWLZ)Kz8GyaLb{q50rqtZW_+476Z$*vt+V#q|yHrd5?c8-7r?aoi0>u=P|DBvL{ zVWB!tvoCwyxg3`RaLb`#zT+MzaQ^IJGa=k`63Tefa?moHb|bf_=-0EC>Hyk=SXuSG zX5MqkcT8=d(y2Ee$`HPO-d-;wH4ss57ZPUl#3r50MA6Mv$tx!y#hPzZJwnd`EJUqw zk{DT9bSV=#N(t?HSZEshdiIr3%ZBRHq*_tbR2+x{;0*Toz!f#TE26I=F3}9?+6#Oz zT-~P|=IB$`BdZ;-W&P#SUr2Rzn{V+cf2V>soN3O@|A}`Q)xD9{ukSXr9aQP~GCm-r z{|CqpO@7+!8v}IcCQn<>X3SskTQBlFit{WmYBb$LvHZ<&Bb_3$7maH$g>UkyCW9*< z#=er>i?aRV7gC0@Y&7=Hd_b=^o-0dPuOm&w{n-`}dUF_JlR)q&3WYtloyr!za#__M zuF+d`N3U=MQJfnn`<>_-Fkvh77Y~d2amm`4^`StA`yf$j3h}fgY>3@S`G~|I(Mp@B z=t-Rj(`rb8(_V90@DandE`lf8WAEeTAe!LYy~68N2PrAN%+%4C8zLT45=gSm0|Q+8 z+&y$`c#L3S8NQLArjAiB9(BoS2ym;$F`z$4X`a3B+lNe^ipV(>~m*GW}lJ<@n zW4k=&o6H^j$#AgUoJKQgn{Vhn-2O=czYAf2mBY=mEe?mcu zj{|M`ZSiR{)>DMzvvUW`d-gy1T0Bl;13sSxJ_oV*i5dH>{*-hrXT8;Vm$CTxS@gHn zXzaU|yDuf+&Cf{}Q9MA1BxNrF2I_8R;Eyu6n+K`M()OH)B2}0te^BZd!aj*!xDQVZ zaNmbfs_%f4Rin-+;)GGHwfBfi4w#5mnMGM9bNxa5Rm50$!AsOrgm8?J^W!FO;&4dp zJ?T;h!?7Ow<8+Ks?oYWv-AXy1DdwbEJOG%lHk(ycx3?C=R-HFZ zzG|eelxCbzWXy?hqP0pLsb(;~cnxblkw%#$6_VSryuDIauJf2U9$&woXD`NfxLvno z(3&>ZxThN<#QFj^^WZWg1d*IDbErN(oV|7QDZw#bNwjE=T$}iclkSNSdFrX#at~kKh z5_+7Y+&+A~cxo_1+u+l;N~T$WzFnMlxe6Y%xeyHM!x2yQ$`9M^>`QI=-1n;Z&m*Lt z{yWaeBNW#NV9T97otZP$u`>eE3^Tl%;h>QU+RB80JNBz?>Xnl*c!G- zu|H!}O2Y{O_!_PwF!?wM*dWh+lrU(m=%}g8P|M_+sD8p#wZ38z!?k-iAWR8&PYl_G zyx3i=dWV)c zjLEYOxc>M6z>A)vqr)?))qd<0WBZIf1?5wHJd( z$>%Rdtk#exIn0%^^=MGXUT=ixYH(cq6;86*yQBE^S7o{#=A<$AQ;q?XCwzWHEbO(* zEkIKliLS&tE98D7heaX&w_i=EYIBk|0o zcEKDl8nL+@Tl4geL4$rIB0`9k;fy6>Lz*tPc59*Z$!6N$N#IY|hdGl9lyO~sYqO+0 z=PSbtMgYejt25$-`zTKT9iI?d1{xF}KpY;tx?>A9-`=QPJu+(y%iQW3UWI5*0Ig72 zUKR5;j27A-vjhY3h=I4oH@@wg**%)G`kg^+QJxi26B0}sE0$^DW?yXx?lncUW31PS zO|UHqZUs{fRdObqiGL@*_XsshX7~Y*@Cw{!y^6}Kw8rc8NRo1b;njcv;(k?tDNrEB zX8U9jr!s(+xAmNaNeA7$DBa>4734HDAI2#fL2-)`y^KgO<$&DfYfZH+pO`S9oC?_o z`EI{oVrAZY_zV(c74Gv18kTQ0*}Heaoi?&qxgL|3!t*;%Az6OyAvW@-TN{u&S?&|M z$O}lF(WIznaVgI-Hd=0ZOp1hOUu2mL4Wy>#joAkz4l9UfcB$AP@0nh~Q*&-e&DC2Y z$D7Lt?rlBZ@!)3C?@Jlmye%=r zCA2h2jEsqEPvVuMW@m3wGaujI&u!$q$gcqWl${0_JZ7eM6<6hT9}6suEP$dd)b%73 zWUg0g$QLyRkk=n|@3?~DUl%Cge4kLKm3qUqm7+~)F>g{-0uuPo$!gmkAyq^)tj`P` zurpu)5fKM2|3HIpX%upE7k3ed5!(MBoABt{^!-JT@lv@^5YqrwmaGx z7Zxhs;1*Lfco>qn2Msb+@I2Sg(|~@2Q_BYgt|`8fOKcd_BacnUZS*J@PvikC5*sb- zCbq5OMY~&1TyRxlfM6>b@53d^F85e!gwk%#11v_RU(oV?R#Bakn%5?v1($F=cLhUf zi$`$(O;>z;{6<>z3~n$o!@$dxQNS^&Z!vbL#6f10Pqu9Tg#7z}IIwO&uthfv5~>WE z%mPA%LeD5Ygp#bv_%r?HLZvSbMN5n`GRhJ_Z=InFiNV!F`WvkRl1Av)co;<1faeermJ)}VK%arb-IvR|! zy(G7vGHD>5+SokSOSkSuB4*6bu=Wvpf7(^dz=;+Z$t* zwTvJ8C~1w_7LQ?z%!$8n~D>8|lOsiR>FKZ}A`|&o!lmA;0mG=dz>5x!sS@F(EvYX1_+7Gu-@q;;~>e zUa-sF)iMG+pDE=~l;+p-wgPLRVc_4D$n%#D7Llmi4Q z*q&3rJ&rMnONP^V9TV7~`;-wZSn8KeZ)eFcprst81|37c=VmcEIG=EHsy|C;E1&qGJfmc=lkjdskMlcDRSr6<1p0nG7c`Ov= zwUFTvc5C069RD_ypPIQztJc@+8C$P)R zDFNrw$;_3o3r-_YgLY#-5dybFHTy$YT$XJTgaLv#pp`fJWui8NxM%_;;|H5Xf}<4q zeuKA$Pf##(8ZKHHgI=w_-s=Vo3fzqTC)hyHe!u!S-Be|wxbE9yQo`XF(9g^CtVlK@ zfm0+FFJ)Ad%fy9*n4P+ytBL$&*&hI!@?uS{1~j~_=Td43oD7)?2!je*PnBJkU*Dpk z!81Q1@IEmT3NM_$y;k3^Z}IIyyB9S^qJHty@%u!w58A^o3F4OR=DMEQjCtl>YYrP z7qF%Cc8{aY=^nd82rKTM$jpKpo;Cq%PcnSg3x+zRrF!Y>zdnEmke_ZnG|aD*DNn`; zP!^n(X;GPe6oIVkYE({RHeskRLy3mNW;iY8uccUv4?+MEBo_cm!iCWVt^{S=892FE zo&mTOzi+f+yhK0Bm-y!vXz->t1z>ZAj>7>u(&b*G4_HpCXxnK}lA#w=psC^RcJUPw z_}mAfAAZ0032n144rl2*ZP^_O!0=>WvJcDaax;D3?#%mjTH~<_r%|e5rA+2g!xRX^ zCPR0S<;D0-jk~$L`_G2kLnddO%?nK20Xr+KXFbM@N*b(lwQT|q(PlK86Vjcq zkvr@vJjTUOY_YsQ>~Z6}dYYg0Q}Glieok&5dlItY)C!n9)FAkZ%E@*e_xp!>?MiJd z4eoP&hxy<7tp%CqtJkpb#w<#=>ZUn54*|Q_fNa8jZt-(5ww+o=VU7m_ZsE7L_-N47 zcCtIJ+@`#{(_4?}MS`SdhRd;G&Cn1maDNnUXm~BxW%)BYl&~h4HX62*!~veF1c=|C z+qahhOZo`1#3AD?XY`}S6>VCF+0U$G6o%2CMKpNwKD5;0K6b^beu^L&Bldf{<88IQ zJR{;IsijR(5>kHj9b!pTzDIyZ2R&?t04!(|Y;UO#FdXc{{$hmjz3 zHd0D!1PZ`E5f&J&Svp2}BJA$5t&4GTYS3gV#_{M&x-m%aaT(9L6BC!u-ne$u5a0D+ zotOrO$B8bb>S@I*!PDmHMLwpcuxD|2n2jbR$zh+^^e5{&e<#`c-8=bzS>gr&_b1fg z1}D$0$QCla+Ra`Sb|6VqufIoXUi^#Hgo>lVzq3Bb1rEc55Z^Fiwp}6;Gt@N=l!5)a zH$`KcfbE7s1Bj3nJ=d=c$E zsc)b_NvzE=UaDYN-=P}t^l{?vN{QU|iv_%?3)kqpsY44U^+k`U`ph#Ug$$LwfC8Ft zLJFMKHk`>TE%(02U*xI=@T;=kl0nj~$Qz0$)~-2ZRHX`x(YB++$_HIU&aS?DCuZS; z-1aW1gz;QD>%)tH+ip7SX5LFHLn_}PO+Vlfzh{9chm_w^kPq1V&=CtKf{^@SKfU71 zBxRbAB|=aV_Hg1&ANz57)??$!)p8x*haj)FF4Nc?1}q-jz_HShFuaCzkv7dB9~pJt zvpE{@Oa$UfHeCV9W8*ZMNT_&F*r-|0&Pq zy6SCFEr@*m^6YnHL1VYy(JJRs4^iSWW;K2yDzc;MvHRd&uR~1*SwOa5(Rif}lPa<0 zw>1?zA>s+gIeS1J$*2gQP?9E+Q&zs>y`{SN1D7>LfzY~oI5K9T*!tIKmCYPG2S@)o zetwG1Il(4f+x!0T5pR!j7yfouyZ}s*caZsbbT*SVfX~d-5vS7@&5Nj6e$wifdCfm3 z17&)#enaLJMhTGAkxlB1jJ_>82JwnMdwPKPYzfx4-pN&+aK|D76L~RkV-A-y9(&J;Fe;pdoUH;tK%QB?0uIhsBqJx zbQXiaz!?n_`LNpjiaf2XtPs6_fiDl#my|cw;@%=Euf`0`nBp6lD3@Co_D^ z3S?|1!XF4R&y*K!&2{t574Aif*iN~v;?3wWD4A3SGboK>r(DJK(R@nEytS7u5bBJM zp4IZXdS3USVco2sYa+g3#k|Y zS#&z`7z@4yFm48r+ZEBu0pX08B{2@fDWZwDPhPT zLu*yxHQC=H{k-^G*@ukBy}Ny5tgu8vsg#X@M$erz@l}pNYyg{EF+*xpccS3dMaTojnB94ln-RoYS{4M_LH~!ikBw|sI+FrNDHB^pJhWy-?@q1 zxKdyD$c)R&swnZ3KpI3E&p;w*WDgt1uZXDU?rjjDanC)*lu}oSLRvckxF~SY7 zhVG~l)d0HY#y+yM>%$@P3vhn8Gj9D)F6u+8wNA?#V(YL+$2JD>Z@Nk?@o;OnTpiVP zq_%8IujD9yF9UuUkiodhX_Xux_|^QF-)6j^Lz5*Ccph_Vs=wD8yjwT_<`Ap?^|`2Y zCN=ZTWW>*w7>j(Lr_ru!X@cgR6xdZW?%}$GKT+f7mS+6w(4jvTCo!gKdonjiN(ROZ zrvbmj-*h}hea|_=*&Kdtpdm0d4b|#4aFb#FNckY(cx#c z*I1$xobe*vN*6pMcmu=N2fIy^ejhNP#+qU1DMvYYV%s+k^3s~BC^Mo6%Lg+L#`(81oi{=uZiT`~2kZ)om>XmpS(R!*4hc#@N4 zhumHCc;(vWxw0m&*SDr~VChnSp#P1=9w0Z7CqI9$JB7v7=WXF7{kYY_1|6+Na9ba{ zdxLe;{j639QNM7)B7pqqn}(>QnaI;x0?zz<=!4v4qhgn3kaHQ(+3k*{{+(ghCeIS+ zTtSYz88)Hqg%oGCs}K-GiK6f(x&PtCb`5?7C2ALn-eVzzDZccn-let^ipvm1od|fu zB)hj|M}+UvT29j*ZYlZ$2yK2mk{>D5o93jF9e4Fc zGB_c%Mo(zh>l7E_PVoDTvf{aDgK6&%!vf&CDPXa1#b^J%o@(8{Vxc0LYI4}`Jx~@h z#BHrq>&Lm2O6Mn>Hy=6u1$|%Rg%xt0(lvvIW^XVud;4duF8;=&TjM4Fg#tv+S#SU| z*93W;p4HcYtd8oKEWhRUsru&>pGzdZ(2;ZIV^6{K7Y26N+!?3G2qEn(Kgp1#l!FGH z8_mpihP3ZIuQt#-7qm%pTKpl(PH`*pL03^u)=ZvYVgJ=P7joAD*fk2&c;5bZwuxVu zO@}?RMb_Wg{wX^}y`DG6(Ed<&n$KlU2oSpcA$C1FJ?4ONW#Ml0n_x<7EEiAeD)yA6h;>Bs_b%=N3K+6x~07bEg zW$g3sAP{+*{VuV(78@Z9CyF5D%;oS=GI>HYlN&c}Gf_4SOdi2t`){26w(FhN9wDR7 zw!qs`Bi&ksvd7k^pCv!C02ene@ttuGZ2>Zv=d;;k++?-rjQVa)!ZV<3P8PunluGDp z0@xKLj1F=?>UJ(*?iTDt^!ivQXhQw;?fIPQ|p03-5D%`(C*D|8KLZK zoB<2xh%SCeHrR?$FAJ%TYK{i~{X01~*Ih|o-h!1F0Z;(|9(U$(-TGsVa>U;xWRTzx z{ZS|I@P$>wEFfntmJI0PO=LTa2Eddi#7!#S4q_&z5k%?5yHVnWKKnH~nG^uq`EPwm z3*h^gWiYiMV!qbkExJP{AF4F2IMNaT4r$-^UvlF?f3t z6wm;|3KJ3r#5W2Lwm%bzxDj33wDXcGosbvHh<&)|R(z_0%8d>WsRBUM#53KFf1*MR zXgGa2ggM#l4Kry!a9LFH^cMh({U0?YEJZM%?a!NheD>uV(#JdeGn9Rls3YpuV6QRZ zo2)vVX|jZQl{1AfKg&~cqwhqhZk|tWq}lkY_G;Z*bQzEFgiE-v)d7y;-99Keb8Cfl z{1AY#-*4MXNB(95@Yj5T$_^`0h{-!9AAKTCKxI zvY7x7sp2$EWPUNqX(*M;_{Y11iZm8hy{N!DX_fkaxfkfXwG*vUn&uzwiD?kp^O_y4 zrv88)r2cP~Di{t8_7keRqUGgsosU+%Z$!A?J-(#4pUxM+ANItnGFUv+*gEHK#uUG- zFo_|EEtd&zb1BvbZU#xZfJNN=nsQGiw8&uhJl4Lr`btJwGZ^o)Pd5pd!$C(=G)@P5 zE`C|)?`!IP_6MH?j&sW2<|1IsfXd51+M`uyPt@o#p;4>lH%jf}p71_C6e;JA0gcbb>l!2j!vqu}ZlG~*P$shKqEbe)U9d*n%Qen&Q-z`(;SzZ|? z+`cVyK|TGJ*iU}2PIdb0vWRihPOfm4$$IYF9lyyvzxWA^q{Lp7jZd%8XbHh574iG)DAZ=;ZZ1?S_U&HsKk}Jw1c#M+)(;WZqr$)dslEf z6<3(lh=SkRV^I}(`Sd03O}Cx{UBATvm=a)?xFP;8NS4IzHidNkj!KTc_l69!nAe8f& z6D*g>yu?*aL{IJ@E*fnGaN}3Vn!UKxS4i`VXNAQmyq5bfUXh?5P*=Llzk89P#5@B_ zjVnlLK^V&UUv5=*7|=%mG$pU)j`DWwOQvQk=j_u#e@ss5ay+5&zMU)-mHoi>Rn-)z8nqXFw&UoKT5Y$_?L=Qno%dC_B~wu z?zB-z_Bru@%0d1)&8oPA@T|dtcK*lWtp_u87X3tGK&ioB>hj!lEtzsK)}~+UBh!AC zky{0idtjtXX+Dh#)J1RZ&0emACf?(sGCVy#}e<>YPH@SR(XP|m3eZAlz08r!dmzlJimtoI*ke7-;p&dTJ3!xh9P5OY+ zkBc}lTJ2wAa;hp{@>uvCjW}_KCRx37q^rO~IC>=lwVXDH#iM{X;ktt~?w;y; zgK#SXQoPQ(|7VI9;O*I=k0{!;M$SMGkVCZk*|A)D^jEnMZ`iJRmDd`fVr5jWlBqUToLXnW}j+Jf@P#RPkK^Ey= zTBJc>rMsJ@>wloX>%On+zW>jQ=gsqZ_6@plp1bF9%*-+0neWW#rDfDt#(AXry)dOR zyi-|L(d-qyS*rr$u>)*`K$4Nf6z9?L;7yS_7oO17P4}#DU4<{%$iDe5W7-qGxjRMB zw_n9`eJWF|Ln=_Hl2=CUVPh$^D5(Uy#SN60Z8 zb_Fs0lW7<$W!;R;aWR@M(nb638?w zlex}yQ0DK(-(KiY6J+6t*_4B>Xs>dCWc{?bi|9-&O+!okydoD=Hz%vkqDpGaReV#K zPcOJ%K%#%Hb*iJ&3+uZ>b*(ePm1&ROhClySCgjq~?>X{P{a@#=a26+WnnX2&3QAR? z1fT?giIV%9{l0Y+>^CJw^+ODXB6jD?pwGRZj8FQwy!qHmJro;FFgzA6E$?W+hg6j@ zA^CBfa1-9z^878jjpnxa5nQDM`UzFIbU&tPxlNHnz4T@F^~IdMlw&Jtl~0^*9Wu2} zzMXH?@j?~&D_$gXlD4g7PO}U3(alfc%x&YJfOaki^8R1aj#MJbCz91Ygi6U>_5aX7 z-F&`F_d}-*?>w+*@=F7rWO+a#KMuV4?bkc>GOtFqC#bcZn4jJJ0Gz^G3IID~+8ttw zr+8-HSEq)tPL(*#M#0IY!z~T!Mbn>2LZ-K^muFCC?*4K}Q#RiTTFM3ptfB&;o?-|b zpo6BRY!(v)cP{XD8K>j*JdZu~5XR}pn_D;FI$UU9nQKsVJ2>pWGvsax^_KN;3|=+WwNyJ%}` z>nb37{}Me?c%VxDwEnngUJwArk-$G1Lkd$@SwDD;duWPd7+OeX-ng=OQaAG3dG)OA zFI!j=g0He&3^I~{Z#w&IZ_Uwl^@T?LeRRE66yXxmJR4JnM}m2b;%<-E zrvka}`h;V{P5x#b0RgR!MC%v+>tu_C?RqOYgC>VPz!+d46EeZQUE77iD3mIXKcpFC z8_mZ~=1Fv7K3*^s%K>WPv3jS_6%p&V^RY+IL9OtMGUO_yTiXJbR_#}1690~btH0}M z_2jsX-P7CC$6y~x_$gSPP2vW-13Xv%qffy$T)+|fpQXp;NcD26C{>`W7u1jO5CCd2 zIUveJ&P3dS27{u5cOYu<|Es#hA)ziEQbLba|eoFN2Btmy7@oL>27z0#UvCk zkInyZI6FYa_C3JG`Cqk1;3khqplzTUN8mPU3r-4b`0av%_&W(S`2VBA@4xH}OX@Zi z*fSO0|D>qF&z5Z8K|u;G9c(}9ozk^}qC9N51X0{!Q=ML~5N z*qS*rWvvXyf|il}OOBD9$hnN((m1vMb2r-sa!1fZKs5y96TpuAkF`O=unCk>|Ca(y ze(L%B_d3v7KoC@kUK4x}8ZDyyX$&Hvudnk_qw`KvWAp zLvah01~jp!jVii3a@C9WTEB&V_>2z|x2_ASSN4h022YTA0iv1elyEMvm_9Kx(xgFEIq z^K|)89!&Gf7k&|yvsL$Isy@nZmsee=DE0G!)YmItdxfZ@BB6K9%w~^Pi?OfdXq#dL z2TnBap+a+W{=85=LZ#H-wx+hw<-3Tzy-t0UB&$4|uu__`?0xGr{dwiS{H$yB!q#m_ zIOGHC_q$t;RsTlTdOIwc3@*BtZ(gil@8~e|;21SW`OpM_lUq;b_NBA_{Ewd!EciCF z&m*?nEyK$ucR0sWc#$WxNV{6vpdS2!`+snoRF!XEAN+s{t|aB==DPpfqN1BgJh?{? zls47aoM}l3{H7H2p8b2e8>rmAiV)y*67(;5#VlJtczbE7yj*fQW!%t-#V8kYca{`t$d@;2a2vLtYi_&=`$*}tKh_pe-Y&&(8%{=GW} zSb{Wm2(5mu!XY{Lavt{ZCI7#cPRmaTw8P*=5bZlq$q)Q zvK{Q)GP(YFTBmNheDLl66-;Q~+gXat=}|r$NBT!Sb9TXho`4VmuvLH8mOW|9QRQ$P z?^rbV_7CyEd32sB=-7UCQ=849UF?SH;OF47=I}|* zne{F3Oh++*c@e!YiSca}ek9UIE-5@*TZTUM=8PnVQ$nkzHyQjU<4CT@1s*Jrzq z`|@;o&}!CC;(Vpgpf|e4_kt(qdC|)cGC6X%O{9KZA<|IKzZGvrJD8nFq!>_(sp`E7Q=eC49m-)-P4!aEUYH}r%y*@ zZW?|V`~RwSUVZ;K^5N`&v65YT_#L*hKY#GNScgnHwfVY$O#^h`%sa%yP==hJW}i0b zQa3>yZ$*TI>d(&IvasvY!RiBx_-Ctn52SR;kcDAOo8$H#K_(TJLt58x25cEpq}Tx= zc@z}4j5_@5^G#v@<-5qQb-x-V$VgJ^H@{*&8}vTeIjqf7dIFo-8)3cvDc}Y0;waSs zJvE-0xog)zbOjpaYG?he8 zFHgfy-IVR0V+9xI^+~tv2t9og^`VrJvQ>ji8`9`JPAB=U`Nl6XK>*rWU&%;&O&c$= z)t!)^EaAR$ayj3k2^gK%Vu5>!GYwB+*fLhbc*C4J#qn{;KG&D%y^U_$UT4*uheFA~ zztz&pRrqT>YWa!CMz{G#v0b0W%!9XC@{Zs`>v-_^!z8TsegE8d! z6~=CY>{P$x2`%(%^P!QB3k`h~{^odVU~Me{;K$|u9Bpy_q^_z{9Lw1CyBH z7IXpn+eb)aQS2akwf@>(Bw@F$8tgl)Bzj!r!Up>LDf@I5e=uUM@}W(qA%X5K6m)w9 zy39a6CjVj-_^MhW&h;C;_%)Kv+LpAx(ZiRkV2Vhz%w;k!s%DVv6d|3YOJ9++`4*Z| zj^W<<(dN}TKGH^>>H>;AjBL$l#1w*#&b!i^qS)Dsthioe2?lasE@m0l9|e7z|2FO2 zoz>`l!c33m!soP9?Y=XW9oy)6I5x*P`@s6g6^acc7nlmUanH@MjO#1RVPgTlbQVPF2|^s&|n*gnU)}kllc;5q49%T^t+cshj(rrdGK=Vq1eG>GDTps9I$|zMU;bmL+oS zkhaD9uupAjN>M}Z3Hc$XsBp+9gp(Nx{Il*1vfWbbJ(S~YMNMDKEotBLw$hkV&7s%L zulT5-pC```mN_rWHDP}BkMAFl(I}aR92PxmWSzlk&nFtd%d^~-SbM~Qwzar-rI9t? zbF<%-wbXe=0N?bRg4ANc1%(CbTsH}%2Dc?lP?5d#v#(dPDAx7xepG9o0WpRq^FkWE z`oy_*v1R7`=A#RAC&j32%Gn0fpWv#q3w)LMn1k%y5uxkj>43`LySct{0Ld85#k{Hu z@=%g{BiM)$MDF1Vnk4Tf`e53e(%Q~ma~dY2DA0MCYO!B<=g)+&>&a|Qyoy_%kWz8pYV&WDFEu`DBJ6{7D z&V7hld0#T$;wg$zh3n>k#}=4)ezA&&;w9#|z`_bBLA1CdvM~c$6i6%4cO~Xw?*c0f zWJ?=?Ksit`Ji$D_$Bs`GG6M14o$l#65?PCn-v5O`qu67&;eXmAAv#fwECanM+PFz?2%|kwR+(VT!PC`rFf>vuS*Lz58z94XnF2<3g&b^mnZ_ zq0t?1DFUQd#Us2wi^P!A_9OLM?KGTCd%w|06JFeHrhhM2^FtJ-idyx>Fb+(ae)Q@b zAH~xbH54WSrXKO-X(Wr@)e4IohV=R9A=yCuYo0A>oVx7YWd1hRIJd+37$kvmJ5bvl z*6DhW*SIMlAxK;?iW1%U9ZRb`tnd^I-dhVGs={Bi4jheKBxtE|v*X1v?cm1f*WV4p zW}s3wL&7~C*8>;~VO}iIEg{m(;$))9_o6S&zhzt0d1Y&fH>%aqjAx>s!>JxQgP`(2*J9OB|$3+>^U1eXeSJin@3)`x?F(6}ID)%LTX zKl;lWhxdsM9{a-|xedHe%uPAlJ3GOsH!=>Ee9VCU%hq7r=`r@a4<4{gDQ_O}XKtl4 zKFAv1Gr=wZ0iOVkl1ZH0nBzupxp--E}1_IZ*%X2wjuD=R;%+OW@Ecb{Z)&Jr2fADr!EYGsmYCrQB?< zMiMj`ND&~!1qUP12%CCpz6Qkf(}2*qfgPQf``ou(6F=R~s1g+nZzb*{K)WgoPvLF22i@X0Wt*$8xl8dy?$&d|K;C zhNLHza%dKY6clg#ZrRO`_oggEpf9k$rQi)Lx>Ggu(J2u$9LzveANxEQ!=c;$7x1ed zj;kP>EPnM_dkpo=?Fm4Gi>`o%fogx{B0()nI%C%NEqFt882YMBBZp_+1Q$d|E33G9GC*2`AGCrpwtmi23eDy5GGCWODDY}iEkw=ScKB1T- z8hgZ0uR9<9xK2VDb9l z;O&W0v)P+ct~`&9O94*N<9WrM@tDWX$ltI!KK*`2UaYmeVTSxqB|4MI3&U!Nl+%(D zXj~vsPjUIX(t3OuO!Q_pnXJkJW1`pHl+a>m1 z<`DM{6HQ0w-i;RB<(=M}2OlwP{8uOaXNvIYE-rQz zZ-tN{2s6GU$8!F`MYiHi94V;PzAyNA{pSZ6lh>ai__iv*yItq z6;ykS4xKH0ira(aHY|b?bRAMn(%iE?Vv%y^z78b|Ub|xcNe%{n+kU}(+fj?BPQH3d zvMMAC!{#AH-QI-jrn2};v?mC3=mlb3V_ds(qCQ#vHO=6c#tgK_C&W;oz_IMT(GY_` zp*Xz-L6ZxiStAaQ0}AN;^CzWg4{61mqGBVl)lUaxV$WI!HMw3^1ZDQ1%G~@eUmcz% zB|>no3GwEVL4&6$L3zfki(t6*Sg~G>1EYZ5;pu*JZ=8~smpJWN09LZktaRf#BqTMF zM#c|?+;X<*>K$r75yu`IDf9)`phS*wGRY&63dLADL?{?>pR|+z1+r$|pB~)tsr3VA zM&t*}N4Ot9e2~{=Prr+76UehFVbbP{O!A|bNjJ;#O&H}vuDD}O&I6yy-A3wgi zz6vFv#mP#}n8t0QFlZHlg$OXN_FgKWJkUm({IrWc=@Z3tYpNxeVr3BTz9jJ)gC?vI zECKmLm%XUM#DdA2vpe^*F}lxF_fRmN@(mx$Y- zisWMO4eJAp;+f_fktWGb^6T~dJ{EN3G&)-RAr!Sm>{E2O^J-uICh{u}f$As0jy>+% zGpbrX$Xl=46kbPA02?jwpXf)rro0t}w-+s~zCQ3%tzPaHrMv`c7yu-C9KVDH|%t&g2 zO3%-xS>U!a6-?%)^eid+u;{wq+k^Q>6sp%$CbD7NC{=7NWQ_3}qz@0H^*QVMHJH>> zMP5f&lbn3i2PJlS7Pcut%YV|M2r~~D^(F})41uWmQxqrmo3p6{X4cFn#9yHxzGL}Z`? z(B`u%GBIN0Ep7wEvS9<#p}70blMQ74mhhy(Q?O?%?coUs_q$?FEbL;g8#+%Kyie#z zCH!Yno*dAJw$1v=_W3p%l2BAwM=1Rp@x;Q2z5Wv$R zBKgtl()8Lq2sLo-F))IrUtEFngZzS6h9|x?3V2H}#z+cYRuQUnf%w)B32Yi5rb#2d zGJMg zn>QvZpS9baot@XUnNT!l8of2FtT@;MlTwLaA{S%A)?3k&l0MHZ&HA3ulJE8WD;$S+ zZUpT!hV8(I?wVSH^V~((fu662+XPj95kLBu(X7b;{kYAY>`8^aT&17YWJ2)0-nBJL zEs{%5i20ik;w#rr>^l>coa`8x8WHbmGsc+{Q)=XCp7J5NwS~~nA)&ZfCwI@tfv|AP za_V3=t1J-!mFij!UwFCkavENDaKyhBHyI)R74~2c4p2=p7ZH!nOvPJH<$ZMM`iE`+ zJMYbpd302(;y9w)@V}knrIq#}B@Fcg@`kn+X%^qC5}eo~+tfmOuoFlgk{=@RSnCPq z7I4A&kKUYYMCbpCpWLCOpnxpCKkIEmasvjn3=ipnKW>;4t#b)6)N#0GmkQj`Z!9EB zcpv@o%j_Be0Qlu5V`;T5BN$L-J70b+@l|p_qGrhYmJcFHeAZhv;V$I&L-bz`mYFJq z4M3usuc$?C7VMEDY&sP%#Z1*77S$|Cn8+^1N|{^AdYSuQsYmO(ZU|EXg^?-CRy-2A zWYmE?6va8w2VPm#O^wcHy+e&MQ^%7X-%~N2LjA=nDB)^vO6Y1H$WJ;Q62O=GQHt~O z^J8fxVs`dVwtgp&=E+9yOjgs^g+O>bJ!L;<$FAEUr@6>OMv*y=cV&=1Nt;K}xyue= zz}_W&+7*4HMAzws#L9T|BvlYw6-1!oSRUhJ4FHhN8VZgg{!xyfn@j z5FDp+seO#>J&@Vhs~#suEo>8pK!yU>v+1xlqVwxwXLOfF4szN|O(L?*TFPKscmaq| zY`Ymm8~ZuleTsRKClc@(-AIkl3>8+BQ7#+!%^ilZYsPvoSm%AhbJvuY6pDN;H7dIk z@FyIL;mZqGxH#qWm8qij&kd+R=g+8^erYoPe$9SY$+cvnFm*KBY2drG^l532ti5JR(`yRlz<^;4 zz3NOpo0NNq`@&?glbeOued=B2oknAwF!EvS9#e*|Oh{Yc5RK=uj7jOs+8nbE+a~D$ zaD)yuHMLD9p|G%!e*gXvY-ijaiH=~cl~B?DSI%AOTXdrE#bJcvfmEY_GZv3W=kBTO z9c{C)Qv#CGI1B8 z7ONysta@Xk?9ig};p@)t`mC_t(nnVyjF7|96qg}nO+aT?UYU(+I@#)PS@<60NOmFk z+l&NMfqiKwQsfF~t*%Uvp9mEhuK?gsXY!lje8g-^lEAwJ?i)%h)4VeUx06D`=T~?? zJPXYS@$a#VM$1oMOZQXtRs`vB{Naqe-yluhp}wv1G=6{coj zYQgZS%9QpE$%$(b^cjRuZ^6q@Uw|eOwUh;g0ALfeGn%w1j(jDfgt3Y{En%e-HhpXP1=24!GRunf)`@q1jQ6|%NilxEz)IWTH7Pa{ix7VF%7 zKKnKo_h=Tk%JaZhL!r5Ub2Jj4GNdHe0LE%MWI5}!4TIqO z$YTzIj(QFRH41Zx^>P=6oq{z{7h(QV>2?tq2DkCI3$jmCjT)jpGzw^xVh0BCmT1sN zussizflR5M?z>n`ir+Uz?Smezli5mQt{&dh82Rr7R*x`d%#`S1@?xQc5X17=zIh{W z5shC}{7AR`!l7$D$D~{n$gE0#u$i6ST?!sl3}74D{c`1 zya7@Vn~93Iko&zvaS)LDc{{i)`3S&eL~DN_W`=Y5`sk3|^H3Bmros5&!uGl2d6i!v zosuAjX2bN5;9xj(%9;u~USbfcJ5+$Z6|ufq0PU@bL7L0TfiMs8h7;M(Sv;2J;kCa{ zM_>_Vgr@lFUc_@4o%GaM9<>I;uxqb>H_2#sc&%X|{+pw5<8v0Zb3qsZ?Qp1|-E32v zhTVxB$nBU7o&?xt`b;JamEc#%Kj9%j2i@$zJm;a{x3DJQZ2Z=U90$V`_u_aA>$nW6 zXc{839y}g+j+sQs_qx5xR_5?fbgsJ7e)C@HKQc%(u4y4RUTQ4kyh0Q6gP3t6$Wn^U zhaD@n4mjs1-d)wIUo5r;ZMJw#OgZs#(0mbKYM0>ko++>i6OD@Y4G+P5G>o6(ootFA^*{KkO8D}oR8ww)*JPyr{dA2Zs$Ki9!VL|Wgh{A~ zU4V?#-aVN4X>or>{ij1t(l!td+nek-5iW+WBy5sZ)BUNu-hF2pP5Axr zI>^FUKQ;0Y$?MfCUdVQLXN+seI3sFu`xJ_sx;g>5IZE14{yguqe>aRDGq&;ClxI_w zY#WixK^@Y{2l^`kWT(7x93jgrOgu`cS~C9x!u_uc2bi^|t{mh9 zZaD=u5PYeXwgC?2uJ^vd!zC8a)jGtykvZE z+s;Xjg4ZZ-)$jrf4l+n#*)NEQ_9j6C+jbS02ZCu#QK%PtWA^7JE4cMoQ#?-{LFVsP9 z>3|mM$d1-HNEIx>ZZmx@p!|8<{LXZvH~oYLS2!qr2!CFx*QKKxDi8-TY+nJBplQS& zQ>-AT?Rdqz23EApvjFc};10!laEwvV`%o_Oo`R>@a~kKIpT@o!Mhda9vho-;P|EHO zdmV3y$*gJ<3BVTx*PJpL(CRr6P=_4O@#wpYmztoy42~VkVZIgPNBwy0Yy{G`yA}z- z*Bx4)%kt2vwwr!Hn|x;k+hk-h0mLOu`Z3FYRJDcG#|68Rl=~W%IK)5P za=4db84!#j+-L;we?0S)~;GNmq4DcUxkYMl4Z%H}CJukgbyjvr>sa!O&hHH|a zm$v{#lX7R)x=56dB!BP9xui=hilK)u?YJOU$71LY{L4>_9j=QmOFjiev(^HoD(HfL zB|;6&LmBh2+@m`Jh_rbY3?XJn900YSx)7wcmAwtS6c6ejUf{w(qKI}d>!_;=5bqphwN{LZpNGOxiyVB0BaCyYD zGZlvrpPXorrt=460T*R|b&$qcRjZQ__wQ(&@ZD8nv&D~$~ZHfl|^WW<;b|JK1 zY$;|d34&7IdNd⪙ozhfwSI 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

VvAQO2l&eBm>6(?qFzlFpDnb2K2jxVF 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 diff --git a/website/public/img/boundary-network_light.png b/website/public/img/boundary-network_light.png deleted file mode 100644 index 683e5eab45f1c079398679bdfad76bc99d11206d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84612 zcmeFZS6EYPyERNeK|#TWEJVPD1q2iXq^pPsh)9>3SODq0h7ud72q;y$(n%npNCJc; zC?e8A4TO?J=_CQ9gc3@=$#T8>efR$M$$#{pd}p~rX7bGExyu;i9+TJi?&|I5KgQ3+ z#kF7m_DxeRuH7fNxVT66a0Bn$`aK`S#RcQizj@s}*nvse8)iO%pURaawhv$I=4 zIQu!AeSP2DfQ^?&wUt+ifb=O(i;?1usL{AnbGbjCJ+!}g<45Ol^CS*dgr!qx}A!oDaGp92B?uYC7IZzJTdEpKEe{byU!~ffl|KGzQ;kLfZ;Mb�ck!WTt$$Xoo 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≶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 z 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�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

N{5yLyNLDlFH#JF}EMQsc8HO+L7T9o=SV6 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 LNkvXXu0mjf;tLgz diff --git a/website/public/img/desktop/macos/boundary-desktop-connect.png b/website/public/img/desktop/macos/boundary-desktop-connect.png deleted file mode 100644 index 252e18f61ceb908f9833f021e02059bee55d23e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371910 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

  • *I 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�xO+SrD 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

    Lar%dmhnTb7ncyQoKc<*$KHYmU>$29dn{14W zX9>k)r>1**W9G+H9)ZP#27|ZbM~&g@p$+1WLKautAgze>sF6a12l6=7u0nYsF;M|q zUjW5~A2dLjD>0K?G&@d2~YLX^r>EQ%igpd z{v91yPxZ1lCU4$*y-tB%seQkPqd7}UKT!|#0u?TwBb)m??c7?UvOkEp0Qpp1|3U5Z zR#AqpH`=j3oyx}qPoF}~$;=$Onk(U2FTN67B>2CTW4d}KOGX4_o^RC2S+jeZbxM*! z_d;2o8{ma_y_DHdhB;k~3dC3BP+ScgoxCznuamtf6iqyFk+GEAn?v$x0Li@F!J8~P zEQVflgrDSm&Me?hBi^|{|E0Ha5oVyD!B`oBz9=?m`$*3&9D^bHQH8Kr)R7}AlQEFT zHX^WVw0cXSgQtjd(Ktz^rG$F^lvkojZl zyFMY}Ke}Gsdw;TDb0KR*1{c-*Xs$JquVg7oiHa(TOk>NfF9~rMpy`lgNG_C1aYhkn zAWp>OtN5sZQsx%q6U82mE-o#gZlJSZpXV&hV8~CRxfySGKQ51A+*?L%wp)Ccsq!I* zxm--*%^2rf+G=9>-zK%pLB~u_LV4QI4xEvwFKL4CE4xRvDb^^gm?TsH__m( zTfRywAPjRg^>BSzVJ;Lxp>UW$+yf$@2ufyPv=ux=?546A$4klFsvy7VG#svUb@Lj! z2WJaDg8Ox5Otv`9`$hB&h_zf>QTIs|6ETWcWO~~Z=}h$y9Q9q3VO$Y5wg9=&O?(P$ z1OfA5aeF2A_QO!cKv1#$EC=IenVsOYn5l*>K_S7^)Ch&MX!d9e!&PB>M^^f0_nR+w z8OsI(U`EH3X_bnO)YGO2$jnXrrv`rloA!)PS7K^xPz(}yDZ!9UX)F0VSQa4gQo@_> z^}enCb?g`J918ai;j(AKh0VVcuCz6Dp5tQWQo<5ZZ0jy=OTv4?j#!ZeDPtuJNVbqo zZ$H5B1!Tq#w>*@T3Ss>r2bjliNm3@nZ&DtsU@f_gmY-yI+MvkTL~aViSL|{sq_uLg z=zzh|ATxOYUsZR{ppL!%`@BheP;G=Gwmb!X@ArKKD+xs};SFZla63ta^nxK|lG&?0-~*9PU^A5mK) z&1`s^*rtSS3X@rn>B-}b=p09Nd)u>GbA9;oN7a?Fu&4S7;+emWe*d?N!0XM^`1*S` zjfB!@t*hWbrEj>4G?1KerRc&vGUz!B#4y-lIjgNtT2&EK#KOMCZaRz=%oSAwJJ?kw zcsIHqT_SFUOwJH4rjYXcf}WXrMT4LRlUZKq7Z^2)tJtC3-I~)xBV-go20#gm(?Bpp zwiFO=mqS+IGwUIY_J|y(@Ry|4ct5h5BGgSi>J-ZUzG=;~%{q?}PjN1%(IHsNRT z@$lJ$u{~lNvElm_BG_ElJY`WaYr!J~k;?I6gTrTn>W$WA-m;G8Mp%}iZ|y`}YPL=9 zakWmPN}+4NdpjHck(;M!DV-+kV0Uz(c^XbM_!OTg1n?)Wl28LX=-rPD@X@*?s>DQK27n zNd}yxz?dp|cir6W*-cQ_KOgnqdT|7l()lk`9}SI;6b`XSVypZ?$!dGwx_e6us#pgA zLV1S7be~Z%7+CNzwR~YvYp%#d{bSFv>W#Jv{kJb=X%INrxaVzZH<<(RHN0LD39AT{ z87S%LgAWs}D>30;m~kE~6toskrhi8@4yqwGktfiKM9NaWMqA>SYszpgoMmi z6pfQwzV)>SrH{?rXTU>>ktVs(>-bvgWKq>}b1RU1^@La;`Rb4}Ft)OYYjyi`pN=%y z1-`h>aa9qg;Kv3+#E!yW?K1OW`+|0Ei}DFJ2z%3Ej!vh@!9r324(H*GpnP*U2jBd} z!J7u0xX%8KfRdF24jaRpu6EzGZ3g$RJI^?xtBaLy!*a+~E!h07G?e!7D+)aWo&l)? z8t_f_Z~;qD5W(F8ELGc2$^vIeHfpz#Kxfcg|d(eL%XkJ21Uc_aXSyrgRQ zz{^zRtl6lp$kb*G6G%htfMBEj5XMS}*NADwJX%6ts^k|EHBXUU?Gfb%{(K$ep&9>H zLap9#u&(z9{wzDf^9gauo5qE%S0KKSKR%In4&z*(=!3`PcP0`Z6`5HCdm^)RQN)Cb z!jCt-Q&Z_uR5b%xj`pX%_^U+bvDx%%ou1Dc*BbUOZJG|ZYFjf_hLfb4A< zPS25Qyo2{zUX7yEy6ENyB>@7+_(3|HFO#SYNndErp#G}<|t z3M(g2i^H{mDMzl0i8gRZYb;)z)OWkvFj__Y?s(!33!k{d3sAh-KinZ7oICvJw_Ja< zCrpdRxmaMWW%x5obPEzD1(o{*V`C?A7}5P*sUOZ##kR(u>A1yl7Hb{#qnm+)LR8p6 zK&{ev=y|UPF=Wz9!r41iJ#&NMnJysh02_cv7Y>=z^{L818;annvsE!w)O)7aCWkCZ zT&&{uaoR^NG&}=y_Srlc!w_9E7zIrkGd+T3Alm3a3gZTTwIQrZwX#Gk&UgS0Qgpgb z%7-=xsUcv}Xm+dY4wXtrmb&>{Aa)xPoiAf~nG${%%#UPsYhF`W3dE4v*isKb^3 zQexj13)7@sFl8sHVW~>J@-LgkTzEm1?hGA3}oEwwal+tq0%GJlfk9w_&hzQtkiDH0WP;L z&Zs9pZ-^pU3w!*YB(&W!=WQ#0SBw~gjqHiI*ly84Vs#z6gUGTfCS?~s5GjRUY<<<2w$V1s%&R>P$#Dl3YgIejD|U&w{vrW24DbhR_2h! zF(9)8Sj9D53u`>0emz&OVU8zK#2|>^I=SDb{o{H6ONrJj6*mt1Lo0xPcvvYg0pl%g zO5)K^YX3o?;RF5W?i5jxwtNgLW<2{q%ZZ(#hIBb4;%!v*WxZQ%G4uC%JDDFOha zwP18LSLJFCKfHXzj?cFX6_zd>cMvfp^NIt+_fHl}3Ou6JK&Lf=OFG2%^x;JUIwZ*) zN^tG;UUcKgm%>?ww1mhOwZ>c?MHk%IjA@%xwBSCufS(hC+5vs{7(9;Z_DXPbls%cF z^vN7oHu2g2n1c?*a3U@(wbjK3Z#c!XOC5b)b;&dk6D$WQPL$+BCVdeYil`aS@klPC zV{q)R4K@u&&j|G6CnRTVf$vH_-mcqam+nR-ySYFz6 z&(G2=A`7jHSuj6%6B}FhgWOUQMZZEng@{e0@12J$-z9jVjzivVmD^ka72ESIY{_T{ z)8O@pMUwgz&BFUvU#5i_h9hTK_pOu|>z!Yop`f8_BS8z@W{{b}*1_r?NyHzH3qxGV zBN(#6suP80=#GjEeR9Q166ds{FoR^%J661t(_ zX&Tuqr0Bwm{H(n41{93Xk8?ua%*NJD1J_aih@jcWK;g-T`v=boE8)UFI%Af`bJ9?TZQ^{*|wz# zapSqb;nMH8x#6b|CD3o9dqd1&*6eLU z#IID4AlG`krR(OQE{fNXgiy`|vZ44?E2?vZ%aEX#ZQn1K82xW=4B>`&2#Ngy3R(ce zL9Y*=St)J_{ucXD!0CaXcXjsQ*u1wU;)S7*JX{=RfiZQ}%mxVAi1tF**GC!+oe0)f zKFyX+&ZmpLy$G|$9T$ONom^h6ttYUFc#Jo4yJesvMgg^w=HL6A;Dvp4Pg1FTbx6Po z*F?;<+V=qmu{u1NpFIIrAAXn4zan`BP?NgrQzS_(J2LHD!;Qn=KwV(&533SV&FU&T z*7XcGCvkHfS8CDuvb=POft#uq-wdB%vokrx_=RkYTG8V-UfE%dCM1qh!u4!?He~kU zW1>PKMqVix7dFh)(2!gqKQGvO+ukttAB{bxTXLaN8o_Uom3QvQbEWIO&rgs~5*Gg( zSbmGAS<~Vh`$KXRi-Q?5punf)gBLC-nBgRVVD035j!*yGI@(X7o5*J4ERKht?EPl* zIi!1Y+ujw@gKE6qk4DT(5zpGj6E4%eON^dW7Q%?Onn7eXT~FGRya$;L7ZVyw4bJ7C zw)5YQ78YgaC|xh^CnhbGTRv?e8DoyG9TzXhCT@4i`Z|sM{rL;z`J`kW&fqq%llS`y8Ffb(hUv_5>-F%QjrQSvOAiU@0H} zU@?qFfm%m1+B(4%=xuIxD{=9YkwYmbhrRCm*c9Z7(e82KM1YZS>41k34iE3e3MEU2 zg)|#E)HT{7Ou-BVxAv^@BC*ei7XWK$q}$aNid_FRE1Qe-0M&MyumITl0u=py~$=@<}8^Thj#B5eb6IR@PP z0B6zKXRU7U<;j%L0t9Yr<8nFgWhfx`&ZlQ9{5FmxzK0$XfQ%gJ-}9EnUeo1NC05L< zG>ECBPt=z<-=N2c{JGJOcY5^u9~iOmUc*m>(qltD zrNunsx;xkiTkCM`ubOWF0)cw@{PiKjTGWP8_Tx?n>4VsM13bmHW~XuU9ClPVkvTmm zNj=Fj!%jkuh9l|RDwMWjeDrdfO-L%z?IhGV&fXTVjx2&OG5Cdi}Chh zGh@_F>e(&a@960rwdo|w1y&HmYgY+9*;&}W-i+zZ#%DK;QG(vR1Lmq`qBRL=A z2<}<9^D~x)|7_9n)7gc)hc@WOX1(>T6$;04-k!C3j%#Ahu2PSpYV_g6varNsz<6yP z{&SH2`Q4}o%E>+jjeIOKE*xK5i~KeE#va}S=05d+Yf6M<#DA6Z3(BV+aP%>v#do*Nq&9dv zSf>%LDJ&S7snjXK+P*G9`Dyi5YkW|WHO)`c%|_@l|4N3*q_4b@VvCU?yY5pFXS3;= zs`~5ckwu2-lxm~f)02~dce3J=AxJ&wd^+ThdEb{7MF6aVUiH>#j9j&0nH{AI6O+i_#KNexsG^skjDtK73iJVjf2TRox59f$jDT}iadv-F}wpS62MjfVP z@g!?WU$=kDvX9~I7Zk+h6e|e9bz#Wdii7|D0EJTLv&HNq9rcMgF||ghsw;{^lYjQB zsXxl0D|c4aMKy>N&%(7JVNY6+yeBQl!)i02S)h_I8_5+yy>7^ z$gUkm{<-^h-JA4sN$bxduFRiGPzJGGNpvlnMN+>7!&Jd5w$$jeqbXlZF&QC@7CDb_ zq?`z#5vHgUdv=u99*ZY|3N<+;Fj@TtSA9=r?W+ zYRVROS9u)npp7nDiF#}cMQ&xIjU;@z``Le9&OJN%`JiTnEKOQ7s0TnDl#1Tvh>NZ4 z{;?TPj-lqwdi>ifq84|R)O6qeU~h5J$qyWcFJC=><@vD98qbY2H!_{7^GfJo##kV{ z1(l6Lz(pj&3@JRY8kCmkbw567R4rQL>E&o6n%U9!R!5zKAZ1}1^fNsBM?04kTqq;I2dPuoVCX&1Ss2`O=3$Wk3Mo(w47F&t z;^j>>3$@{ClKr!DMot~k2qGM2BsMmBB0i5Wmlr4uN@6Y+WTiwqEpgN8~p66Pnq zo0NdUfFac8ets`9nG!@4OlS8@%Q&7UjvqH3@iGB*3Mn1Qf@+xS0>^mfJK+=uKF9?V zY^d6ktXe8(Ioz{MT;QmBd}=1T2B0sPcFA>}U|LCq+Ui5yVa@=LL=a>D@fN02sO0_v>^*-J#{YW&~Ok25v=1u|L={iN)WGzp$-f-a_F- z#*5bg7M4YQHZ)%f3;4-^Fj^IA%DF%&|5a$9%t+lhGLLPT&L-Ps8ii<8l5VD0o6I_- zfC=m6b229`Si$pK@ej-+tJqq!%VtKeHc#3j;nbhff297rz211`YsO{`tL`LdSK4Pi zo8Z4pbo%J9>$pZ3hRR$f3ia6G#!@85yZ5>};n&l;@>)L2j+XuI=2SPe(6%7nO`Tk6 z&7T2`OmjN5Xx&VxZyeWNT6HijUu$5d18-O_9)EYY21|&})B!Zdj7`UhpusH6<*GqU zfi%(8*Ajt*s|*+{4NY2c&WkcF*!!wH5U+~^&MiUq^CO3RL`i56n}q;#kZz^^X-%p1 zOzG|b?ME~1j?C4dys5S^l#wumUFa13tFd4&{Y)ujfw_XLo1s~l-7oR72+&u;O?;As zgYt@S$i%@8rBd}lG&POeoAEN6xa7Lumq`A%FW~*~tM8w5SC!c=9N`(qN4VSi_-{B< zd&A%<hRcCSAE@MU`{&35db0PVpS3FSO=+34XsN9nn;yxPP|D?^tj&|Gcg)hz;&1`5`ezr7ll`Ey9yN1Z0KD~wk` z@cO`0^1=MhHj|#YO1xkU{_&ON$ItC-RJ*oYBp86OJ8>a*qo%<%>R@{FlA*DxTmxjq z7NXdc=@OFe65sag1RwvGgc6Ly!znQap@Xj{y+bc53a{S=KJ|G=pjZmA+31noc<-TJS@BQe31uQqy@88jfbSObLK?5Hv29H>LCUWj0quF z)tS?ucT;7(OH%1Y4F_#;D>}4IVBFKv0NrbFi=ExO(&`0JDvZ3cZvH&<{|USJvf80& zrQbbWvJO8))R_K*lJmv%`HzYIII4MXL%HDUnN^EK(l7l6>=A4UldZeb?P4r)_`6Vn zvlDW6J_+%kAER5XRC<>Rf5)Try}X9SS21tF74z+~DGP_R(oL;MUgmS_zB#PKZ60t} zY4e~}G1vaPnR`_Nuhhez?ow;1d(lc;)HLmo~e(}j<3PdHJ^OfVsnaVs*xUPMaaTTD1*EyQeu+{9`w!D0xJ zIl%nIiJLMlL!Im07^Qe8e|t1?g?4re+FiG4zwX+6$p{k#K9<;(P^ZY)K)PUB8!NTo zv#I=t#&@>e$-^aJKGPmj587-%yh{W+)&|p;X1sT^2TR>E&b+`>^s#X+0Hxb2bbYo@ z0)2T6$mUFRa%bN*gr_MzT`P7JQ_%Ym_;flW&~Z?S#w7H~ljIZ!ZFbHwrZE&qqT#cfoHbB?&O`l=m+ZOb@CY}sw{9Af;GKR5;p zVby~Kx;!L1{&n!n)XSTP6tx7I4A3+H|B*pzQ7~a3yG>aK?1g#=0vmQ@`TxV%S8&DI zEm=1Wjk{Z;!QI{6-3e|1g1ZIxG#cF9J-EADf+aY?0wEAQ*w?wU?yQ?xYu@?(L06yi zRPEZk&aM{2^47jKIqnEntlr+|D}o!fm--i#1MEZGs%iBxxhy*cG=$hmCGfX^w&vob z&1PmZ=re8y=Olca{`Miu37GCV*tW>@L{7-EkYF$&w#?f)Y_%@NR;o#=rIy-gR13R~!4T^PkcQ3E?Elc%gIFJ3EcuzRU`~r>AGw)N4)E{(80IZDZ7e zg4&#ZPv3jTjGLtO%dY%YIfO`I`DOW8ar4)#@?jFC-e6pW3iJ=|ap!aaUI_?`7QfT_DS2YWy)<{3LD89z~ z@Vx`VaVFdbC9?iM2OaZagqny1_;Ae){PN4v4pD;Th_{n=L^>$Hec!fTzT#wTpxJWj zy)Nvz4(l@)A*CFP51uJ$K3lYNSVFZo1C8!915Q>>ORY7JLw@Uc-s}(_@kW8 z89lo_q?*!LAGme#qllFr!Ni-PX0c7eF`6PX{gt;NiF% zlYxq;zaMDFT1HAq>EKI^PTA12K6UloKJcp9$0{wvseU{oU_QoCIre=wmg@eBfdQ20 z@+b`TQulIv%jXJFcQd4)?fe ziARi8ZA4hfd!}!r?;UU>AwTx=9}7i#UXWBVikQ25J+HGoGoF)!6-Y%y0FxE#R~zI4 zDR&3WHSg_A_rIOZ_m^@+tlHr!XHj9#Y|NM&DDVSzWcp>3*As+<`TN5kA!2$1NZu?1 zi$zqJIU`DLEy(pXRP0SN%3ZOI(zauKzsKg(%{KlFFF57bEE>R`aD&Rw0G%gK6 zxE?lB6k_&+sOW%<7lFt(1@k_<(^Vwfs5tEZ>tW-L>zGsTMX$HP=a>NIV05D8D`2W6m&0_8me$6$~77b-C?JnND4gt$#Z`cdV|Kx?v9t82W+= zsOA=5xa3v5Lx{Lo-UaI&tqE?3KwiN8keW70<0o-^RzhMGOGy=FDIJrnLPfs`o)jhO zk1mj_)clCgk-lRljdeUP_=ERnX*Zj6Qufdx0w5Q{ihkB8WjwkgNm zD-}M~|6J_~R5CO5Cqjjy~Wm>IQA_>r3pWy)F4oJD4#1_F#w$Y)%YK+Q_~ci+wP#~ABEWA5f> zkR8~M=iB;xU=bT3xuERS;u@JPZ<=wBly{l_|)^Qe}vcCEU zM+oC+A?uFO6d|!NvgWc+$RtYBMsr)2y9HtXJU^Ny^hzA?q|}Q-R*&N6=e#Gq_z?dg zj;0zQ%=_KifE}csj+eZo}x6I>jZc+I$ zK#;GY?}s{l?4B^zx3;#Bqw{E1#J!8f#5ka~#&xIZdaR@xGDSV4gk)mrf#!vQmCZoV z2xo_A|0*|le7JBI=VsSN4~dYr={#?H{QO(tMi*X#l;)rA@_$FdHD+V|lSX_Zu1N~X z!xW7RKW_uECl3zrS!0tuF)&WgFY0~SEG-4O6oVtR8Bg{L;$<60pGnfHxob>nzn*<~ z+YhIuXBE9IYgo$)kNCb;$2tN=iE~)VMm#C@BY+|6j>?RK44X|u4L$+eDbbPjEsczg zeDLQg>+FWP%OQf+wbhab%d_KT{DoAaekrG9;q6jHJB3B0s!Dc|UFHp^E%=Qz&%A(; zV+$LM-bYezq!stxW+_Xfc3)Q9fDnI6PfArmpE?cBP_WxOJ1Qk$Tciccov@4Zc?wo@ z(|hF)NiZ(-?~1)vY6Qg|qfe*3v}}G&f;pYQtNv|mgKLFqLjO2B2)#2C6XSI~_k{$I z8^5&WPK*GHDV?BF)~pJ78Ys|rKtdsQhhWW$)zI>NZug?A!{u$EeeV@ zvAsOzuc6AxOERSX9E6M(odIC0Bhyo+Gj*6asqcywlQPSy%!o2IMH%B_gF#lqF%V|f z&{uCNqL3AM0wXro7aFaMI%Kf@5`I`+U=n72%m)Y+HSY~RFYZYf_S5`%O-=J4zU%fs z%v+eC(;+4;wyoZWfy+N?rd$=eeQt19#X+D6sHf2{Kliu^S^;I`Vf}!>IRLgFTiKOY z4jBAtX{`}h2MMaO|6o6)f`uo@iOnxG$h1`DXVa(2_Mj@$T+}Ip8v;xd> z!bKvgPZ7pcu^$7j7t~HC=-!=aSwmZ?Vcr5suhds{@ie@ciZa1CNWTQp+2Gg#WU+;I zy!FNu&)dpwu1B6K4hAk^iI~CT-#f~>#*wJh5Wn2djAL{12U*<~HCvXN2Vng3Qy+{x zZ{g7*#+Z(>3LwX?61LwScAs4wQDv!_7V z+R4lxObAreV9NB1CzT=UG!&_sAMY&0kQW2BHH2kYqp3}*SD3DXwOLS@HB6)RL$GN! zVJ2Pq=~v>KrHn%@tK~iyvtPq&kP3(`0`Rk>%y0#7$zS$fK0(L=XP2S=KGM5iLtaIzpK@|bZa$&`Xt9_)>C zTl02KSJ7>wnEp>ghIF;Bx)ncrYVz2pU^%(by~6jXQbtyTg(PPo(tMwMZavd#rj zsS2`j*g6@VZFx{FSF1DmI#d)08%Tf7V6-W8(>Q~-gF%Gx z81JQ`-%XT)zNMrENf(HHI>9=G~fYdhmzW4MY z)*HbcgWoeTI6>jZb#Z^?BZ9&$Kj}GOX!=R#TM^+61F7{>JaAoiiL1u-{zq@^?Mt0T!VwSZ*Y1%d_`r0T z>TG9SOTLHZ?{Qf$dlxtF@jSdRIMLzW)k3Ak3nL{wlD{8=LC1({{s>1H2{n!GV<|*c zC72C~BvPu#EVFnVNt6;gxWo^P^vRTYMHz9*$ci50XoH-aboo#M=!sG;;u7%w!w6;3 zG3!}N|Er`(obiw(3!&Uk#mw!j+_7GskEe{YgGYwBdRSTLIA+}R*2vzN{_`FC@ESE` zx(vVJh>+OfA=3b+EV$yg{!e*e4ec*)+RV{&2+pCy`q~FPzu4AE377~A&)$O&uY{CIzYbfm>Exd%e8CNb2@Ak+#=^xS(y$%t;_%b8ABLt& zr9bTC{umkG|6u$j{xJT(u2G`EO3TNLluN_7M8wFUWa5#p>fZ#4T9DT4GBBUMg;SS@ zA^zN#M4gum3i@2dQ^a8H?P8a#gxx^F7gg3qEARR3+pbv`)htAKHc@~zK~$!~0`vy* zq0~}}y_EhCz8-CiT1Y?yHkclH==qdy6o$$@fcLp`BDq0IJjO^6Wfuhqr!A_0NCr#ILP&!pF$d958$vno z@IeAXxH0BzFoA1VRH-!K)}LtD{a34Gjfv4e$hnYX+}KUBzkYa>ob zUiE9^4fDf&ASu|G6AW%D7`NXIBn8BF93eMIiAxbov2E5cDh^E(_Y5kzv!Wj&xcka* zeFJKw(e9zu=v%-Etg7zQ_&Iz09^dR(i=Rd3j`_#G0lMVD#4)$Azq#Pm7HnRIu0Wd7#8PqPh)H|drdfx@JnMslxIH-?mLEtdOuO!9%9@m z-Osg@^DuOGFKhnwEP8cJUwOBI;+=2byi%;vq8X|xl3&h#et|uEdr0Ox8K+ycAp}+i z@b}D(e;!ipIoc_zWPs=8!a;1dsD(K;zvey2F!q-5#upfXzl{X!U9$CA0VI`NKXi9@ zS|Q_%BIIm$>hE0nNUI+s)g_|UVZNqL7(dhpn%%fW&v?lMA-;YcLc$_G+JXiXlUdZp zFK-B#5jaax6MH%;Y~EYDyLNM1RU9ReZRcQCN!qpZ&HNIIkH|^3HiSPG^|SWJj!5~5 zHG51URoZ}jWB`(SnepKk>}!4F5){7Xy}lQbhGOZ-dU|$o5KsvIuGDryg92GPgdP)A zB#s*ml+zMly%@;vb5zX>h~mUvC-qlG5=ZAdm&CZeeqJgm;Ie>KUPUI}hSBv}HCr~D z2hB^-7ElfrXrS|{<%`%RysKEmF`CW;DAw%SxrS=Tpg5X!@K@iu0aroRbnP6v@Ufcc zuz+KBRiAnqPGTyXcG<_rs|o5Hl9PjzbT$|Y+i#xp8z4-JwW(ugQ3`04VwY3 zxw+X822*wrHP7aKjPZeUy;4K?xh%XF|q~~iG&D9X=;paej`ii~owxYd-5t(MzRS9O0FKPA?+Iey1 zI^;6WebVr#WKf^(o44`2iEi6i+!O(RVd|cgote%UA6p*>b#dkpwqXtx^jCBmQ)N-x z0MbDFT&>NyZ{qtq3Z=fq&TF4Y9JGtn9gk9NpXbQN9`=90Is1CPCSYvR%N!LAQ@Ry+ z(giYfLS=jMhj#7HZwAnjqCfBm1xMn?|3>(n_}sF;Y(}KKI>)Mvtj#u?dBI^}u2Z)g zet$TOt1(PToWtoj4`|h36!&oL`r|(PAg8sSr$B6oI_h%Prhdo zU{0sk)i6JUhcXszdy!$IFowIOPupy;^-HRN9uiBGN$KUDxjpHU!(iz&endEg#_aD( zs$|J+wEA0D)|@rUCRUChVd}k`o8ko8{19&kAHQr)x;uOLbx8Bx#EwEznrLb&Xm7Nk zmYHiG=A^20?Ja;1fp#d2#Z&_j5=Ak@=l_o0|H6dsZE{sy%A%dp4jTEy%l2FEYld3e zKD^b!0O;Yv{5kx7HW8)24?hby2r+#*jypI#_MWUMU>H!P8&!4*&J{Eu^;bdnGQQTw zkbookICuC3L_-Jv!D;Ofg}(dn=Ae^L5HqB(a6sgRK^3E`9#QklK7&g*v)XLt#KrCj z+ldc?*-n}TJl$nVD5dGUOC6nLLV0`jN@a6&mo-P-b_Kh4Q}iqS@mZK=*0Q`~BYU

    P5cvA|E~~N zcg%LfLK@b(Ced&T<(3>U*=2acP&R*W$77A};e#{07lo3EhFLT+oEPea(Og#XpU?i^ zXAdb2ZrI}^4_aV88XdgJP2XqoQlh*{>FL-WeESd}>fnTk!xQeI9HZ!IQ2Prz9#xQc zb-Lc`zbKjv}2$COp0#FO8S`)<)`P%*6tPI4>aauXWuT#%ewkgvU=Y(dO*7jN9nOIiRmWXWf)#C{$&xR_nF_uq0h(ACNelL6m z&Q)V0E+Lzou32j7S1d40o1(!o(bOLw{9n25zk+so1quiEJr3E|2rqBWbbky?D!WPdaB$KCfy{n2U}st5$Ui zd)PMQdv7`8)3q%njQ7tn;f2AV!l0YkZ)>s=!fO34qdA9Ki!dxEBQ3slVtSCe9i2P` zC{$?<(*eYD;%rb%nE;V^be(Fv{F1ZjwyE2RIEFAKB92&HEvZcb7Xlrx+C^Idi9~zC z!Qex_%c57iWD2S*CAz>{aa1I7&iaA;$#+K4seijmjJIapZa=MozccJZ9o)Vr` z5^w|K$hKqtV#+oMli%<_@Rj0bV-$Ti%!2<>*)+E0kyD%ZZux~w9{6s~+nIgpWZ_}L zAG}O0m1KN=*a@7-ny$|8CeD{~fMi`H+zWhTmZPrybjCb=S7W^-(#8m*;Ln4xrf>Nv z9bgF}Z!enMW5unc3}VxbO?wLB%P?3rG(;8`>%0)`I98<2U8nBI>YW;lo%O4>2ZBG* zu%fFFfZZ3Cc8t5waR;|P;S4GbptgO*TWMd^%K;y*w4_@vdKn6sp|~z0gcsmB#}vUy zCQxxRuRnkED5`Y$SmP2bapB@p7mTR()sjyF?OBSLnR$K2sy*$cGd-X8C6_bpH@QU6 zKNPh6)4L(l?8}v2y~II!5};%oxA2>EO86|Qk`}G-VGe#%^;eY;tY!&WVI{t3 zOq&j4-nKTrel&_mYo2&dFE5i)Hm?r`8|$B&-wHTPeFfW~Tndp5LWbNYK-lLP*%N{1 zb}V0znh+(T_nGm8cZV~@L9y(GELO6VXOvMWsk8Fo;Uv_e4#)HvLl0-)*=7=8g&=og z*TRg*kM0bZs~2)7oaj?_%&^CRZv zIvd~*I}*o;@nLCoxp)?$e#i>C8dHXJEL9%|cL^E&MrM;_-XK4SDaY~pfQ27O zy=%z5YkgvPR;pSqscJBcUM|NlY{k?ZW~u7-KxNJRV)&vrX#X+;R}z*8hdTCIq|Qin2=HRLi!;)LAM6J|54P7 z`d?n4*C6P=3wp5Gz=JaxemQQ3_qjg7G%YLDw|!^W#dNn3@d&@;)9YvI2TNF#E1+ z1pcZ8`pDWgV?V{-rV-RPkChw4c}su2kthW3(;isl?2a~U)I40x;ByT@oETFha<+Hd zdA-9#dIX60PU-~2`uZa-@YaL%k$#zt&N!w$s znI>U>UM$3~F?}V*TtSJ4yMu|rHOl#VG~N-dTF_Al1%F$n8+2aC7LoL7``tEI1m_2k z#Rqx0>u4JkOK#a=n^V_d0EUZy%gp^q@uvQO8LzPGG|0R(fA_9E=pwm;xr!;?{WxFN z|4X$)o?IrXdjLQvZ}-#%lZ&r)KCx;(#Du*ZnUEuWNIZ!{7oVU={APKdI?VSY4a?P_ zjIdRsVJS0h?9x{iX7?S@cNyB=_irxu$l<*1_Mrgbf4vmYz^}*pcoXv8wej8zA~2I( z-$C3GFQR*dXc2B7t(_XAVmpXVSIU22d&}kjbOl7WC$xFK-M4c=quvNX>})+hJ~)UK zM(c+QE-7Lm?4tvHa|CFia`4m-btl5YBT2-a4mi}g#!R=*EjMTL^aJU}_QuqXZ<

    w;u3o8&_t418 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 z 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 Hu0mjfp=Zul diff --git a/website/public/img/desktop/macos/boundary-desktop-landing.png b/website/public/img/desktop/macos/boundary-desktop-landing.png deleted file mode 100644 index bd8fb5d11eb503564e3999de314cf6d045cc6f40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375875 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:AHAT-Pq#~RD{qHBb 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 )4CFRu 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 diff --git a/website/public/img/desktop/macos/boundary-desktop-login.png b/website/public/img/desktop/macos/boundary-desktop-login.png deleted file mode 100644 index 69c71f3adfaf29bd8f9a2e62c725c8d0da8b7e75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395254 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

    AU;8{Y#7|@6CXKO3RcWR_Md;EzH0_S{(h># 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

    QTYQH&yo~E^m%h}{uC36Yf-QDfR z@KJJC9(e4zp6V5;>#TDa@C`?PgRTP<$?>r72N%;0V(JTL*N26{3;CS1cz#TE_L>!CvA?y6qPzM(>m#*g|B{A0~e?zHsC z$UrNjE+6x^CrBIwBwCF$$X-$dRID(lMpZ2FW~^>bHX-@Vu->W#`I@(M*s_$N^`>wp zq%3ODxa_K85hrimg5lojNJOhP2t`*fE%ix9fFAyA|9>rkk=#FCnmRa{OH`j z3|v^}Z^c*U-7Mu5psu~4`05Kbx8|^{B{w=ECTKjp<{dl`n)2Vb=ldRrF|^PKQke8))OKQ10f}q#QC%u+qSL0ax*fT zn#`CDUb>!g117Ypa}eRdr0jn1L`kea7oSEDdkeqZ_YG~LVB7Z~?Vv4{&FZMn#r*(T zK*yfsLb&f*rE6^?FPi4E8vzEh_DuBc zNjG zErHSB!wQgGO;N~FM^r=U4=IV+`Re7rvO^#*-x0BlXJ|y6XM80h#1x;63jbnVQ zGQzY0cecmPUMDHJ0bO(2#%R%U_?Qu3Ich%hFmq#5b<8LD_PgJmzj)t1*NNP%2gHGg zx23d2e|~^Jpt6Ci6i~Fr&1?y@UtNef z$G zvp@!i$881+r*1Z-H69fjC<}+EcnRN}|Llx#c^w7GNZe&v0=3U_p<(ofpg`liW@ z^KJwyBt1*aGFvAO`Awl%%QGS{k!YuKZ&=ouGS zThMuct>ojm*@FwsSm6GIGjZK?$4Q1g3Pdr%O_?DKP`KJC!HMT5#4c;n#Z)j=@GYun zXpM5&+FM4n7}FKGlErh5Ioi4eJ1;+LLesL= zN7);U6C14igITS+$0S#S%<7dbcQJ>bvC*b55x*4Cb_@gJb;fWokn2(biDV#h=m~GY za8HSU_uz*Bety11aHa6Axz}~GD2~zF4fe+aV~lL_TB%>lDbk}KYX4StnlR-2ebXkC z)2RJYUEPS-wO!9INPoK89FV~l7eBp!QM0?h?lkdo=V!Wd>o*h7K$`pHum7|v_F3{P z!}A0EMTYd}O$G{ISTEmaWAZ%_r?CAWq7Q3Q#{SgZUt&?a@Xn&Q0KS)xq~zwGB&A;l z{}cB=yvF_8xU%0n?Uthj&(Mp@yTKpTo zG@Ce+s>OgXN%`JbhO_KawT+*MuDwpPNw3jLH&3cgMS{$Lq>+=o(2A7rtzNTIVc6&0 zgGru%s8Csqh`~gfp-N=@k*-(*4NBcMD@(tf2dDxgmlYuq|kL}B~ zPdaJL&rXOKw{i`G@>QXE=h<_93#`zy#k<2?-v$1#!uS_-y>Hde#fEob)ySA2-^X<% z)dZm$$(I%+mxEL$P~(j8OSE{@$Ho1Z0V;b~Y6QLkWLzno&e-Sp+@`txfa$8I<&P^n zuPJXTfp`E^Qv!$-k92bG_YfY$xjO&wPcdyZ8s$!)|GT$_ zU#^TUw41%aX4o^5*i@DdYmmHM2tb&%!;hxt(vqWdh^dMu8IPUYr4#bV`qeV?0j^ml zWlI&EKAnhpX_;Wcn%kjSvt9;~xBHU~h!R_7K<3~NExEdqdn2Y0xEOVlyHRpCY;fpC zfKYQmHk6!id!LOBQ#t%_bq|rmBWYy%w6FlG602Mr~ zY}XlnQ=RaU8NZTd&!!@KD=O^TQ2Pd@*GCa;N?EIee_!WD`xhL@y`eD zpnLtm`qb@RWz6Sv_((O|*Y<&N0{VIe4LGvyu$q8?yCl==g+&5EjQ4@kX^q;chcqTMj@98J4sG zm2&mq-n^BLaa!4%U|iL4eRvK?q=6jRCaOF!+XdMh~SR|8>mo*yhAy*QVlq z@j6LUwZYTM^o0h`b6plGVG|N9iklp3r(pq(3!)dzaz7e+F+{JjCtz5K zWN+L*aHZ_tjwtM%xB?X6>^IzB9%=K6$Z`nH#~%)>AK^)9ZXf|jZ9hHRZ!*{IkN003 zy`NsQ>*ZWAV)H53*7S(eAAEl~ySH_|(z}N}$8AqMwP+qRCnoVU(ppM^`Fa$~a@GP4GnGM8iahcdNx+5hc;+6+_+0eT~o7O{N zkz7g#3Kkq;=!g_oiZs4V)#BnNdj$6b2xH1CwIgRM^ex?Ed2Wb59B1uj=bW>xx22g(?>ny?;6p?#lwTk<9J+Ike<$;l_|ZU|Q0+5L02=1BAwXVl1x$ zLVPjL1pd=3d=n5sKb<^pN-~<(W(!1xBi7#>&naQ-g*e4~dA{jB68UhazDgAc@s4dO zA}@Z)$gGIH_&>bf&_Uq6t#3caDX7}iF!Rhz zgXEdFrI|MtRVdq{xy-C1eqop~xfW+zxCBTYj`F)*;W^|vlaktN7&bU0jj(Rxn$PF8 z7pU3m7N~|`CIC4GyKtCQk-yQmow$uJ^kyeQ79`h5{q7|EK8J0oWr(RUQN#NJn8k?z zXlm5_l2P}-i4O=1G8Ot(hU^hGtEt+lESg_;#BzStjyKJ@=GlN13T3m3=YnJ{fPLW0 zoE{r0_wX2E=bS;#?5~I>-TFkV%n^g#J^8jw7Up?O)Et7krxLCj!lMDts6+as=!Nu? z8A0wegXU2cNP#Cn3A2XV+bhl8A_oI=8|Lz~(<|R!*`R_u{cZcsl2@6lv(xw65qutYc2Pu>Bn|;?IAW}tyc+AUZzkeSOXRD$#y zc`X^Of8&=~ZUklKWcBxC)iWKNPF7sI(Ax{h=M#LDjJ;@yT7~xMh6X8+*d?$E)~tl7 zTqFvtY>9~j(UIi8NFxUy@DdsJ?GSiL)Z$sXwPEEVnR!S%dXH~B2W8Vmo=WLvv1=0^ zD>Qf5Fko1Kyx@5LCNr}OqufP~o|B;(NB)x}Lk)^u;T5NhAXejJe-)@P9W`cZSy(tk zS4AH#eG-2+=SB2}l&&pHp~TV6F3Kr}U`9Jht5TCC)4YNuo2(JUTAM^ROb)*Lo8e0N_@c|H?t+4J>@eo%1yt^r?TWZV)C0MQL ze07a$5_9vYHD7G&q4cF8i4hyLcJSyKyN9@jSBRxFsyeN7722+<*~L5K2yxj=KKV-o zobt7*2r(`a)fHJKBkVKnFGb2ib~uzc)^3XBOGNxa7;W`5NPD^edkZTVv_H{BASe*E z-LKU$PuMXjMSu>%=3g{@stAuI6LcNK`0-ClL6Zem6f%2|yI-Jzizl zWmVp)4#RnZ85?Tqtj2#>Ukn##O zdA+oltO5&6h%|~0q=#VytvZZ&(hmixhiV$=z42TMW6~DWs?31ELLGZ7>6A=AV~Eqr zK`hK-OwwG7^FEnxNasxKYTTuJcMuFC)W%|?jjQe5hr~!H-viE~Ydj+OM10D>M%oiB z0hRo~p5~LmeOF<5`Y<2olo^a=RLH29W|oXJMIa#2aCdom?6s#d1#NkIzP7yMUt8Y7 zL%rJn)ACMwZFwumjxDrN;9;G3Ki?Aufs*ljfG`sH@CkwTm)!58c-f-4U8vAqRE}jr zdMCaN_PL#k3JAPUrFF_2V{Yn@n-~fb2$Y^caj>@coVvv2x@juu8sug2!~r>uSuP=n zLk#S7=w)va$Kx<=3I7PR@e&Csre!^FGqv#W^6|04xZ7x?1|f)KX5};*38N~g{FYtO zn{!-=#eGl3He);Ql5I1Lyaw4q24E};cBA{*bN=F$H!i)_KT*sc+MzdPIn6X3s*Q}u zXW=j)1ma0)N-Q9(Mo1SXFR8p|I-fFgs+5_!%5WS#QtK(gMvt}&&%wAutbxnRm#&d7 zqWA#-fac|;-f6fypi%d+7=q)-Kq2rlm9_qB<97#3f6s;X9{J5)F$e~+8&~~{LE2Xg zCXgW+hcmnALxUxuv9Pmr@wXjtp-qxPTwL7ToTjF=PL%zP5}Q4C)va@f=Vg(8>NrQ?U?{;PLQ1jtx4V!WpIW2onV zKq+cT4yK9S5e5Grg2CNkPjfwahhh07`iMHB|)tn-xKkTMP+$G1f}>@e)F zhY<@0m5}a~U`J=xKULozz_`)2y5H+e2UZCWPxu9&O`wU0mJ>Bz(sV`Cm?UZZJ2mde zqJj|?9bG(md2v0Q9ee5>cRc5%0puh&|Nh!s?#QNtPosxdHhPZDdCcOttWq55Y(mS6 zEoMX3oM$KExLvKlzQVxVQnZ<=^Tz*DRI~sK3IcN_W5#PQQ_e7Lzf(zHR z8+Bl}fJTMvunn1NTU_-kn{GG)M&WFMzb)6U9^8S%0#ULw{Z?%*@XDT!fOjR6 zJk3pOB@h@mu$ft0#~Twl^@SiP{_>Jeh~v1%Jm4wg-Y5==H3;V`){g$uGK2QYpoqla z_zxoGpjKqhN8qs6EsPPZ_tmF&mtRs=Pm6LHXSdDY+J2=CFKqnB_|!mc1tmgcOq-1hz9a%L&HIrmS?0;8)7r?UAt5=$EF>AQx{xswmGj{^gh@% zpRhRXiZzX*eru6dIM2zxe5~IHMQf=Hqw3gI9V$J#l2HIr@Jrx*n&M@a($f%+stg(; zhK;V5AQNB9E;Hz{f^rAH39C3!lgM5r0G)DiTWJD!$cm(29;eDI44b~bP)9(RgqqRY zA;g?$TIoWORVq-cm|UcVy6cMV#sj5tk|{tTrm@srgNLl0pIxtC_l936E;bi6I%>xI zn=2 zXSl);geEW3?A0PuJ%8Lng^+^pre8RHG-#toUsL*heK(_zLn}60lvo05 z5q;5^jEj4-(dUf2SM&3lr``WLYVMeaAGnr#9>MPvcQ5&;P*{)Ga|5iL>%GX-!kfCV zP}XVk#4^#tU|Q=DWHYJ*t|;AC4^e~os_bKbl?Xk<3`#{Xci-Q$I=C6uZS61(m1k5w zT^yXJ4-8#K-{J!qbwQ;)8K1s@ilbrWreN~>VL&AB>X}g$0!fJfw+9 zY!IUhqhV#i09ia!$c~OrOe*%g0=-GUSdDR#tlxXalR7wM5(mqHX2uv*KD$po&!5i)l>o9D0LwBhK{lLJky5Om$ z8|CS&I`%vjAd83q#uFjWl#-d<7x;Kkqx=K3)jF#MAQt53^=i_pG#bqB z*-34cM2yU#g%zKYTf*JXsi{qugpkIhY7T^<;kVECqviiD->o}6&o{!9HsJo&B;Qtu zES^YQ0LHaQBtdy_cSb1Q|RH@1wXewA2wRg_2=$0+Ds!o_lRGCYVX6#3Hhmm{H3>8$G z2#p%m5#7nnr*b)P$KRwlRUi3d0gZ?BLGud-lbcXusr=c?@WTd)doSeKPU|pE# z^j6)KrC&|l2=K%>+?+R;MT(nk#>wguv?0vCFbK*jOC}l>8bEdMO66JU{eA5Z>1o-tXMdqvAa79;*#n4l=kmL=9r zkcnq*@JcZD>r}Xg^D@j=ab?2z_Vu6&w_j%4+pnk*D8T6Dk9PZ@dV1u_ilfykl*O8ugt87Eb4Xmdn@-dYPiVng6j! zq(uCN2=+Hp{8tiYc09Vl(p6VQY0d1Z9#^$m&ScY@-nevG0PdFnEP44$Y60GcKggHD zZf>O!G%-oLKWBTWnq{-X8fQC3F`8D;1LeL9&{K(b;}}r+#CAst3Tilf<7fcV`xt)O z^%VNloee^I?Na_PnkncI`*o&bPkybUfrYPI#xvRmjC?d}w?w^G%Fmu+D=Tn$3|Fuh zzPCyP0T!e~9a#nmon;D1&ov0c5;9^K6y zj*d5Jf}1>aK62_)0wvcFs-tfXZZ^=%mBLh8zbO&j123}P5||5!UfY1nz;QMjF)Sn* zgVXsDlDg?g7q|oJkkHSZ%P=P4f+BDnvoAf5alayd6IgAR`YD@;)B z&qht=*jPze>OwAdj*YTKcmgD+4vsQ-6D*%M-WsZj)PO=nLU4alH%1D0tFYU$XTY!J z?Cn(1R4ES&!lL&>x-&P5aBqJabyWNaILDc8Mc%edcIc#+Rf(}Ap{((~Kav%-2 zV}`df_Qzoo=`zPv8dTI~76s+-A2^rU*)pVrDll2maB- zy!Oo{Unw@)&;0YS7T`N5iPUB@XdpX_!1E&%nI_?Q5TXtY<_?rdD2R@H#|Bnt8B(Swa0fll??oWdf(58AIB)Uyr;emruPP>1cl;kpri@PCjZI7JD;RP3RZ0fR=m=KuNfvF8o|XMhPKATpX)V-I9HL1-Xp=fRN|yz~ z5PG_u#3$l~(xcrmio}o4YcFXWXJcL6xfd_(z}!dK-eZ6F{}TMuzY?aeapBbi_(c6W zP>DgLz1a`mW?op~gnH`85E^;Quu-Y6ndaxUX4a9CKi zV23-b-rU_hMV^J2ns+;dR=&&BUf)t?$Ez|}U+PVghhUf_+#N83=q-LA51L56nWR%9 zIS0WoVkBM*EORVfQqLhw*&?dYUcI%1KpA6H1$4uI4GNMHuZ~nh0SO%`83~KpM55f^ z$w>uc*%+XjuI!yIan2fhqGg%`*0!xnK9;Pdkdzp8spLwr0g6Lrj>WGu8h4||#j z3sDJ~LuP944Jqr^^dg$^%9Vu%(=LE+KBPns|i$+(xqG28HY(5jk--Atpk>&OmURlBVlwJ0-(bZ5hx{} z*uRa`uy6xAC?UYasZe|l(2`83C9M+hGg#)Q8Y)hw-Hrp{SE{2BY+7hB+b3=VQAKJT z>)I=nH2!%1;lWbKZxUME$9paAzgA2xcjLqQ;@(zIt@#i3jIDoaUhi%G{hGmblf#SN zM2pq$i*{|JzSaW>8_s`2HKVUZx!pg64sJei&#`3cieED%j?5fw!|eU4rgRJQWOJXD z4GYTIxfM#J8x=f4^-=N?iki2}bN(h|3%KW2vbl*KkL@3D^?DTSeRG?bX4k&Vpspr1$CI~a&``?G^r@G2tZ6s9}xjw(O zbq1omcJ7dyMDXbw**GGLbTSIFG>Y;w4isYHT?v$3m-kYPS5^7Pml~iZf`Jq2*3I z5DUaY>B^{(mL2(PEML7$kRSRAvc|(w28fEkT_e~~KT7f)kMcBYOKSA=w!G-{b zNn{1n=6#2ekgD-_rI@0F8gpZ4Rp9;qp(=n%XjG3=UF7(g&rWvgTV?&~Cfo98J{LEK6>HHy z&>pt;U0HQaWM7FxFfywnQIHa5R4ofjRX5%SN{84_5-O1-YB$Imc7^zZPh1&Cy*mr# z+ErW<1od!a5NUrp3AaK_vB`~O4h5|RMh@kvmrqv*9B9N}5_?&j-n?_Pg`lxeBWomX znnBG;=mo9{omXzm22O|SQ8o=ULzKo?g@zwAoSpABO<+QUT~Z$sYfDg_Cu0yDTw#+D zeL@E$9lZ<9bmQ7_YPFR4*%ow6J4b(AM0gaEw%Zwch406{0tzXJU)uQDN3LA}oT zzj;uy$z0u`z%bO35=bg!8t?2@IjA7zwTJuhyi+FvMWsF`q!;)IbrScct%R`-s#hvWx0d1j%(5)8UVV@ z89Ly@;O6nEqM|BPG_LVl`A%Z!eU@mS-~(Q%m81pTfX(uUr{$rFIe>jxR9sfFafdZNxI92ZDx$;87NV+FIG`y`Ua7HEc)HxbwJd*Pk! zUxNTqS>!@^U&wRi+w0B6o>K2cdDfJ}#$eIq-FP61Q4 zOamp4I<61GF91t1Tu$5fUgYY1W=6Vsu)^~E8<7;(Ew~x|IuEZx7=my0rP%N8?kj2@V2=^C%{o~`s{>T=75DgP!!yc(d z#>6^z+wSmN#Q3jgD&;c7mih9%Lj_wRg8bs_NzCpiL*UTBP{74LYo_8-!H15qIFJ~@ zgSeWKP1*LDO=DY={77jy+q zzO3d?doYPGW^oT`!VpykHDN?2id*TXrX|B9<}aJ`45wUM*44SqMiSzg-})mDgpr3CfAGY<^InJ*l`Js` zBK<)&xr{xSMIoZ!1UXXbhu(F#BNyamo>SfYYey2COTVtHU~(hvj2?HRC1G(*M+@3h zo(fMdEm7>Ga=DPk;*Roo+|re+y{CREng}VZP5$02cPM>tw2<(;B}YOOKycQFi4v!% zT@r{M7$Gw?{n*nhiH2}Q^ARi;V*;iG3yKZb>v&#AWs3-&jbprMdccP(y{3nCuv=rU z|6RF~k$O!J6JdA9R{8#Eg}QPDqDyOjyYfULE4Aj5L6qhS48>bG;4mQbEY~1f8@+CO z;N2Nl`E3Qa9TI~kgck$^28V2?V+LfOHZTfTI_Ww24#wrSu5-2m2a$`*Hl_}^nUs{v zmYsx$zRZ{I9_}1;BlKem9xV*-!AdPbHX5k;kWHj<4N#SI%siJ zCR+;MwQ5^ibt#c2BHr4F_!wB0Y@xHF=xEm0B6^X@fr5%_W=O7svuT4BC9ffFUaPK7 zw8K|6(qAo(o{M6%BiD>E!7GvS}7vXSbv&%2}NDO(1$RE7~mQ?GEorp zR=I%Mo}Z6Ml=R_#>0IXKvrK_eT4<|;8uKXWKhNn;hft@{41Oj}E&VdMikW~%;1VzHGU)V1wIT8IW|5DU5W3SrEAo%+`D%vgAeFJrv=uxKi_8jK7bBx zGBEu!xcOgFgMY?5_p$yn-q~$(byB3L4K5~Y@Z|*!_EuFmE>?zxspu^C{=}~O)2cK9 zgN$>C2aq(k84HA0wv64pVT2`V^SW6Lk<#>OlFyY%I)0|6D?YXAQ~Q$Zb!3?d7yjc1 zMg7%|YB{d*2rL~*3yVS^m~2vtoethc9!8y{-x7|YtwrF{nrYEx;WQ*bAlS6t4QQKR zYqi{eKkgkf5P)hJMD@?~)=A)<+rQIW*s8D7TRYfe!HXE3HjHD@41}sXaU3|0nE4I z^Qrk38d!zVeFe}vwOh1wW~{n`0$%r>;as%weKaY(n!UGC+l4UX`d6`xv2`_dG3wGB zWQkxtPp=>QajHnYusb$86spBC@KnKs4>`^f))6wJ;f$!ao=f*&E#@xdqfU1{Sp(w=>oPJbF!K`A`0jv*2M1095(0-9Ld*cz+3`WQiDr zg198lqNt^d&;eoJ80*R^ia0;%uj{~w?o`ICn3HAC)667I2kL|AfXmQ_+S-IyM(@MtMB%KbKpyEfV)$>aqbvT)R;<<|X0m|yb zS8M#4{Z09O%u)ah0Pynij9Cf$-`n0#vJnFfwLew9tQ=o``$ebkRzjrI*n`0f=MASs zNqcn`N`gcrCxL=Yh5QpsV)S#URm88%*w{~jJsKY^^uH@RH#gr_iX@SHqj6!eSjj;3 z&+cOak0>v@_7B^mn4qPX1!FfY~_@V9#eXq zTaiVh-N2Twmi;_SFXI$g_xn_hU1R^B(g6rZv{b=-#X@D#iyr!*Bd34Ap2HBm7Ws_@OWUpIr2He!T^#s07m$p<_n)qon-= zzh(XJnRWB3kC6R+YEiPhBJB)sjadF+zI_6wMK`}5$Ko{O*VBuy?%G} z%{%Bg?;E;A&e^e+N{mGnNths?-t(5vmTNI-vk)li2=`=daWri=N-xd>#lZb$=V8SI z1+I$ydRp5=_XfXY7zQgf%6dovC{LqJjquOxBI-yg)Pw#4d*rPQCpyXN-Q9`j#$Q0@ zSr)i35OH)l_?JI#%;%5sjsA2N<3{Tg89?)4Xzw>x27M|c)nuCEhFNp88|wx({NRrb z8UT1=!*i@fvSwdWaqPBOd-4LlM`q)Jf0D5*Gvvsv{%=NC!;g3V89d+$@+GM1=72Up zoH}=T$E=nsRK8*aitmM3aP};J@3F%E3Nr~vz*^7)(ZC`Bz=^f_o7jp)f#iUA1A51D z?dnF6&t8Z$lAYhjmWA3*-eGlAMpPOd#kuAx9@v+)7>H6u?cCA?#@kv zfNV+{X;8YmLqMckx)JFH=?0~d4nex!2haJQ&;NJzUhd1ip0#F-G3J;GQ+#$pePw;M z75W`3zMgk)gzjLl8s(YIM2vol$9RIkL(<<9OY!3iOffJS^b$ARf`W=QP(EcL8rE|d zbW&x2;>O0jp;(&JNvT8T_8Gq!i{EzZr7I_nzfQ$NUT^!*M%e!ePDsc6RVR~;9T^5D z*5&%-MvgqF+)5lOEu>LOSDsJUt00XN;j@2l!Wp;=Bi~)e(uHy|t-WH7+OxSf{4abK=KHTov3|DQ<`xma2MEVc@1|kB-P*nmWsGVhe13uRFZ8tuh$}YLu6Vx>a>i*_W`&*xD?Fs5)O>*^_(> zQzi_NT>L7y96-ps@=ni7)KbBa0>>BSYXJvj=BB*6=GHLb9qylYXsWtP!_hSL%A~o9BG0ehnj7YAG5u-AqaUWEu;E-vWkWA~b^M?bp_HpAF z773|n!UGPZ+!Gm)aMUNg@?Hf}xrs;kM;MZq2CqadeBWhT{`$4YWMJs`&i8R=l;@LD z+BLn=`U{;s&#}oAJfBov)Vd}xEe-StMV}mM>>6V(`2C?DG6+NugZkb_H+-c5)p&NFC5O&6o;g#*g&h742 znyQenu!C?iX;pqu2zcF38$b!gJS6vZN(>WHW0s znCbbfqY0h8kQ31_uk;FoznHzvs7))gNF?Ud)k4gKZ9)!f7}_Hqw&>+NPFS2ICHGGS zo55MZY~vJ!M_odXuzRgIiMKuEGx?Fw5qO2)*--X|!*WU+WI)rJbL4F2`qY_{HoH)$ z88_B%#ii|a$$lPZJ{jW@!f^?oxr}n#@>1PQ8F+YjO6`&#N-A}U-Gw&Bu%M9Kffkf zcu-#7>$aFq^>oty08B1!>F|m)81F5x`rhs#yl9$=va&(OVf4nI;EL661TVtZC(=w0 z(^Am58=dablPl^EV-4P6=u--fc?HWj1|_p#kdau(4$#5KTjOSAjQ*Ig%9kFqsyZD0tfA~f^i5wRd1ZKeee08xllD#bTVcVm?s{?_RU&((Y^8$SMxOQYZMc zHtcS};>vJvQc0HFXYDdQ9pIXEG0=qL%p*1nm$<;BV&lRhCj{m97D(+72#A|ANeIub z?FO4?mnt7N9UXX)xx>#sM6px@Q^deqbb0B`@ZVe1(0G1}Q?q9+S?Iu9ygv;S%Y&6_ zNss(xPOi2m7s%WCwK5e2ZFF0(ysniSK3sJ(KD-BZ>+6E+a4Cm>^3ifDi@8UMY(Bax z_~RG%OMS})kB;+~2c%S2c-K_e8eN}Z@T*-YFTo=hRdwr=PD*@AjUGGpjZYv4w1qBx zthPa&&(0n3H@S&PaDdp?QcmbR_jRz@C5$HEss|(B=+KGIW$q3Z=lzub3H?2p46J+~ zMUhjY`5<+vX(P4=RQF6oLp&b$7h0e7kNjv06$frQ=~Ud=UT|v=6h~Y(ho!4RVp+di zZtE-@>J|aZA?<17{VqO!_!qLgJJJSIuNF!@)Uoh*9-a*T+en9rC~Wf#dnsamI;1*04AR67VAm(MW4o z!($yhU@rBms%jL$UJt_HBp2)F+!w$^V^2(kIvdq{{CQ1*t5wCw^TheCnm z`{)gBjUlb@zBD><-q<9m>{)+u%_MP*r4?oaX?m7n813_<+}wnC#ytNRjnZDuTTc;+ zA7GnsE+lumLqXmx7kT)U;$8K8Eg5p{{RIUY91tRG@MVqNH2N6kdTuqGI1)$qrBkAw z)F%>gKoU3GSBPk2GEg0t#WGRP=`+#jNvt%n*wG9dr2x~Rp8jMbe8co{DZ33=)!DOM zRrkE{`TXS6*6#OjHSeV{uR$sM{trXCrep!a;FB4O4@h_IRT%&x0o!Bo2%m<3nA^v~k9F3nQ$tq`8sZT*g0o`d9TPY zDTgE`|MbFIXb%b-+_yr*jN_u`8%D=bLXL(3X%wW`XO$=LFH&*ol(;Bowv?GE(FUi@ z2|R{tk6cZCXk@QpNG^?+9Uj{J0eanA)5x=HznpVnN9Kvc*prWdtbS{=+bDUUkB~4& znnIOU&LByN5%P&ER9rqvkfb4d(l3t#g@HVnWJTsxDw_wO62Jf7o4%>)tIIw&ybEi3 zsB7B|8Lx|bxYGW6_LKcs=at87%dM8QN`dSBTTFZ6$^*f-?m1ikc>hWjBT&|Qkt9DiJd+F- zfq4}B)aqovE8716RyKjYN@^_9$YWKZK18toOq4k5r6IxoT;vrsC{gZd?Bq4=@;f{; zDfh8h`_z7F=dCr-<)$6g){CM~{HmD~lX>Po9CtJpD$bE{POIV znkQEtFa2mr1#Q_q*Q1V*Ryz_V3Q@ccH+^5}p^M$FW2NIZoE$l!yYJSCdG}8rMj2mw zFC4Bw2LLyKqX;$cL^qGC1tX8+dNtoOyzg#wc2Dpt#+>|Cx<+n=A_TgFRO3Jjj9UP9 zi8!czm`Y-55EyXiIO4klVm#5~*^KJ#e4tX==6ftr_WS#%{aNFhgQ`}x=pEyKKYnV} zb3XO1s>oiPdLCUV`m`4*NxHy$uuVuYATnu>mt@Ar%c+o#T#5dJqEuNl*r%vvhZTm{ zrdb%C8eaBK+&d$Yhjj{w042-3L*v`B5pm4mh}uTWQT9*{m7@OP$47|s6k=LD@fP1P z&`Xt(GjvGxM*uY_F291!DQrkgKdv>G#LyPRikU4|FrAFqc5){WQQ-%rjibg~rau|e zwKPrPTc(SNyhcPbh+gTh^Z|mrLrm?=?*Zg2)3zw|Do7t_OK`enT8hd>)Q3>N1-V!` zL0M@tl^bBK*IRG*LmgPr%N$si)GovV={^`kgI}0P4xd6E)JplK4i?+^g@kiltsiTC z>$6)vw~dcqgeVW2*8=4hkwmW(PJ7%>Rzw<|HW_ZiDQlG2+Bx`n1qB5UM~qwg`Q9x` zj;>=9wzIVYJL#75*}n}w?h>mtv3sw(TpAzx{ics=SUGn0SIGY9K49ej@T#(IT2+iT z{)YDtw{F`u+=<_q6UXm5?iYs>J2Yn^B5jwaVWMdQWQ|_kv0-8x3GUk|ly%ltPmd3G z_5-og*X`pJZjZE*85eRlhd+=+7976rF*XwW)5_;xnr7epDfVZJL-P|TjXm=@@v1U< z{5l`X^zAOvuV&S6Y5FMj(>v6hw-2E)my93VdPUC?upSQaA6ov&Z=GD4&-K9~!o{@y z8Swf`?i8@bBE83RFv=H+1V0|GG>kMl7+OpxZ6^ERS2THm2Bg!EkdZ~W%zn!DvCd*52@> z4oJQ8F4+^x`-3>}#kC9-lgx^y zk=pk`hX&Noy3$(a>egjyY|FC##Oh?!`#)%KX_@mgoU&eLveQW5h==bxybV36)tvi4 zJd*f?x5Zd}_*_Wcu|adR4mX!ZL;zbC!fw?Fjk z^(;=Wf1Fb+ajmlOgfQX7;JHko~}(dmq6G z`pdSgi^CltZT>#G{9!3JE&8yh1}u%H`d*iP5!U5)7ODGfiOp~G)8XwwhXlnS9&)Bl z9p&ToFA#K$|47U0^gUJ$ux2~zveKiy=kbhvg$Vo*ChA=%a(0hqH&Ckg0;TdS?B82) zruBR)cHA!NUVjB{#Six@iDl1W{nQ+<2=OlE+(E$bkG^~ofoN&zY;JZDp#%i2&YC|n zCZJ$_)Zf(Hms~5!BrID>OUvv>NX&no57R7rvsOUJZbHO$QEFNKBzkt1@l1h`76V|vJKB$kz zbt}oJC9hAKi*0*>Q?xk>5Yp9s!)yXFAX$i1(u{1yVT7>GA^5T$i`Jwc+M+G?9v6S7 zvupkh3ut#E(1EXR2ZwiJ-y$^Pk8Y!UPj#4o2h@bFu*HIt3wClk^8g;H0bM;%Xm}@HcoP^#0iKa3Tj5e= z>XJ|4t-Ob&oIgj>W|G}%b-~xp4Rn}Skfp?WlNL2(T6L4(RLva}(Yz)fFbFOV%4&oU3&-YNtO}Tx`V;d0 zoa7D#&dNYQTuUl{zHd^b(Ly_{CwBYy&fvHy@iX9aZv5RCQAqV?`_Ia!Uml06Pe%`z zOY`6Muc7mXUTyX(-{?WH?7la)xrXLHGYIbOw!&!Rc0}UVCYsuhfNzfVIFEF=&ECpt zS2dM5?zcXI7D!$eaKA7hh7j-RIJn~3&;7XTDZa;@ePMUE-1IF)yd?0a_qkg4`1QG? zDE!&c<;A>1}%t?^YRyla>5;7;7;`Z1XDKV^=m}_*%^U~x~`PJ-J zgYuq2i&m~{NM@WCnIkMMD9`*xuHBVEiXrSwU~sb&l(2D)aqMF|`yqUALhN==7uG*_ zAA6J$L#q_@_K#6!Zmf$GAD)|0!tcC~8X2f}QMzROp8T#Z5sB2yFXSmZizEt%$QEh} zpX@~Aw+pZVwD#C)!h)V@0VW3`9|2a1NlI@Mco!1HQkUO_GDFP^C0IiWpqZHucNnCU zBw}`xaCI_?L={7^x6GB>PB3a*G#FvNB956Hoz;=&rzNd@axTU@q#?INDnB>sD zNCNkt7pq0ziiF5c^j@V3xgXa~Cg6DON{wNd8?P5X?Z8pqHkb^YJB57PK6&cOdaPGE zVljTy;7>gaLrr5oe^K;!(MkEg=coDn{Icd}$8GiiH=G)e0`r@83@vMjV0W1?H6xrm z>IHV`lz_Ix^>BZQOI(qI|Lf)#$hay9JE1w<<#jYb&lrHo(zoHdyOdY^;z&+C%z}Up zbrAe<0qccaXs2dK0;+tyKf!1bNm@1e0IoO;8$?1<3cpi{%s;Oz0g)6;LyIVG1*^NC z#vs`0)h(>uoyV1u-c6@W)8lfZV4B<*kJc?bUGSL@#1@7{i87E0CxnO$*0zuBmbazL zuyMTTPx&Op7|u?sr?%hB{l_qlKS{lbVASvu&xzVGj6aN?n8nq3y~W0dL{OqHKaWBX z$ui8tEFtpI5rOa{tZzQo(*@92i$2|qFWNV)IC~=@c(fy31#+?fO?Vw`Pd>qszCDkp z>EpF>Vz-j5hlT8oalTtp?u5tT7MT3DAC#Dx?d^MtWp0noO^y6hte?j}%)Q=Q)N7GmuGSo1L8Ui<9=8=s)u7Un*9hWIau1gr zjlK`fi$p^Rdh23tvX%^KQ3$^9v4X&QTh%mHX(w;u)M1eFE&Ob~gx6Eg%)%_BceXFs zJIiCB&y}&)+kaJ2m;c$xnwaGru39Qvm&scFCR(trtkpK?H*NGMdO2yfSmn@fz-AH; z1*hj_=+bF?{G9-3(md2sZ3a1ofS~PNX*yc(`9L}5n+C@MVf#Xo- zqqy)o&;VYMc0v8Ku=p#&cOtD@Pw+P=tU`aYqS6O+_a81wZrlO~(MRj-aelr7Le{gl ze@+eQY2H1wcF@EBF&gk_Iqi-*OsVp%aMMWg9G%sjhVx;J-^xDbwj8K|dpciUweY)^ z8y9{9I9i5@bgx`hoiqgmNIVl$ZJ%wQv$Xke7F(bE|W>m_DGm%a}7#lx|cd@C4oK?o~yvbXZd&f&G^TUA9{j+l7k z9_lxNIx4>gL#(I=&wX}-xwNbb!^;JuSYm5iv6O=z@&hwXJXa6o+sovW)elwgx1*j% zgemX&13VP2G@^_y?c(?F(Hf&T|UuXo;f!^5)fLYi=&>y<;T>rCx;<0<7<85Gjf- z3D!x+t(vi|-{selqu+6@z3mqj?K1t2VGUgYLXbH8>tzooYJJuy zr>as46@M7oG+wg^QTADiaBg8p`d%j%JoC&0FD&CAwrb?dK%Hh+GnlXD#9zYeq-Uu` z+S+s&h`0Drk~^S{K@y3^Kk%C;VP94O<=udH{EDBVQ->qH*#d^KIUzwINy|`vV&+u*lwH z?+pt32jC5Cw|7WiwLU!@MH$~_{B&QgxNI5s7W9uB5P3vdzc6EO2M3F+Ue%q_{x^!% zp^tD+vGM9laojJ|d$s4Wz6ZRy$&RiiAwhqH(&}>dNdcK{+Sgkn_3d@>AwzaK69D4~_M$a7d2?zrz4{W%4VTHXeGM;v5v0xoD2ak$x z*ct!UHMV9vEv@2gI64k2gElnuOk{z|+`Ysl*BdX8Mt$476X&eHPrF4WAhm^9(Sggx zM@iNy=H?4tIRz?&pl8Be@R4kRGi?Es)>+uqj~cIeqsYod$Kx^IB^g?9UEt+iKLYv2+71E}#_ULJcq zAuXI6pGq!&v#yK5#=dPk@p)D6EHW2)+55da?!U3D`(MxH%W7t-Xd=t$CxC1-`kNQ{Gy%B`7X;zQAeL(NZ(t*+gJ^Kx0gNe+x=Jvm56qFIN# z?Wl1hL1Z0Lj($(w%#o<&IFW)Nhu90B*2NAA_(5Eg_O)~(B&3M(!^?gMY+k|8R(vUq zg0Ea6)sywG7QP>hRZbU*1^9auIWmO`LMry=0;lK~lss(5C5?t~Q@*qSF4?pC;g@TI zChQbkR)_q$o0NX#)~o$p*F+POAbD_p5Usde4&6QDi?Ch56>8ta;Khu8j#e(4wQ4GP z58v=+$?tZsT9T{oqB66h!L|qvg}&w1A29l={qkIM-R3pIDPv_Pje6%hEyAIYQ|tdO z)c;WhU>{!Zt*DQ<;z3aPA1W6|(B{hH&1056JC)hjITdpa^$rxOq6$7dFBZcHiHdj>>1AuO_lz3>3g8|%57c*7?WTAc z#tXl)s?C(11kgiMg7LK$ae=#=CJoo5@?tR|v|3;?D&W&f{ zk#NB6RKFQ^02t$25YuU>Oj$1fjGIgc$xCuh?FqvQYpmnmGMWi8Fq?Ct?vcbjolMM^ z3IgHI1n?qeLYShu#VlMQb_m~sj!3Avr5vzn#9{GE*U2WAfT|7_|0Y&7lWHGWvIqS6 z37Po3@_3Du29R-HH1`3Oi88EeAN3Zqx~yEfdsD7dbS&dsXLBI!J}Cc;s4oaL6zoDb zzk)*}xx+7{v-8S~GXY21-qg}-z4pMam6%Ef*DDfN5AMfAI6A{p9v8v(=Y6P+?w8l; zslz(;7$;F=)*7|7Go)p!>acb{hRyDdw8F>-d?{}|bfJ^rXFC6v#iR1TcZEaLRc)-0Mc|<7A66uLuF;JmERm03NHPDKf5{-pv19 z5Zu3P*hJr1X%_x7t|4)-=>D|^`7PL#M$7zEBxP)hr17P>Jw93?hy>qQy>CyQF*L94 zOLpuBO$dt4X>|Z583_|8G!y;k@MB)I#q}TrL@v`UHO;g(I9V2te~jHwm@<-&A_S3< zA6y41&Vb0uC`;$~8BU5($SSb?U?ic@Wb_;j5Nj@@G!r``hUgc`RfF^z#Q~9u23mYc z)JO%8oG)nEUpAw@zZgcX_)_;>WJFIe-v@-s$_#mdL#8hq%~@sEyE>qM|g9nlob6ILUVY;gb1VZtvk)zy}} zj|GF*!mr_vA%T)kJ5xwMa=j1xNg2mCa#Pyg3E`EEDQY}siv$mrTSUqW+DI?jQ32$^ zjYFB`~+ZGi26}Psi%vIDbL*p9D2 zJKcl_S!#2(1yV1trjMt-{RMQ;{G58G4%tc`25li6qW-%7ES)4OnVI+CgtD4dHr#qx zlR3o{Y)wo~j47Virx%Ft_O-!$3*Y(#6){XXvQwj09D#nLGX=F%>NuKb0B>S&1Kau} z{!4+4h->IjQ=yf;L4D~^pvndV&Ke}E1QhX|+!OU+wdM!h5q#YcB#EQG*0@%him3iZ z{uNZxElsTW(o6~|H8>iB6DlLPW#M`n_kQ1K2VdJK+`4Ly(UOx$tI8cgIpMk5N{H9w%n1U3s*(@ z9nNFdSlJDAgPUs;QZh}17{DbJ{pFHm+MR#Kxc^4j8SBV>xBkzhMztOO^#<>&1(~?! zr&@vRyAA2*V}i^MxFY!aAiy3jyt4UyFRs@r7f}HjnFm`im;ETg5t!g??wmw^G}OxVIT98Q@zxvJjtrCi9;B6G2nDtcE+x+xRC zf+Bn>gQim^H35}8DKRO%ZO_jdn~T?^=|qe_cx*Q}llVoKOb}jvA`>%hvHLU%65v7= zRZ+*qYwooxRA`Z2K{^k|RxM*-(RLQZ4_z`<#ThmP4omgG5|onu-CYmG-Y|z}{jf_g z5A5u|dk(*`ONYQ_&KNN`BvB%dft=Wjn?HebF`u$2wG}#gjew8S0OQJ`#-c`1uQ})D z^>(1@$!q?~72z1~xyAI=M-ZZLd4$_pooM>Iu%nYej}Ue6@~GPEQEBfA``mU5xOR*h zKqD@MrK~s5*}pi5GPgAekBK?A&CNY+V&uo#BlRnk4ni$EkW9=atidm09xT5(VWq*v zHL*%rE26sCI9tTXV1M=4#wRF~*d%o^BUm{T67NmFM3n&2{Z3p2!|#FEyMP_Ud#%`u zG5RGsy*K!VWo)dRs(Ng(ugNF6+@0Xj+T7Ed`ysX&8`q*hBa+ZD{h(Lb2}=NExtkC{ zM4>+)1I7MF?RCI@&3-s*Saq=+5dOGyLj4P8P|O`cwHk<7LRT^RS7jCDUD}W8SP*KM zL8v|^6_rxZT-ESS35caW)ws^#GX^H+((VG$HYf#iAW&`EPP zAmXdl3At+HU`*;TD+TxjJFs+d1#ZjuIFXuI#v@CryV0H_N07Zlj^`3EKZW3a*>|X} zg0dvUNNw`$jZN8U^=$F1rziYubW;fv5`s)pR(6_d09Ev_4w67}2a7CY#($!Hz;>R0 zPi%;h0?^u~skW!EIOaW8-peYl)AMFMQc{<@=aeR9n`ZocQ?5`2I1PrkL69W6&*m;R z8eSJAp4!z&p&N@ic@nHc3s~_*EYk%A6~K})rM@livRrHw-jQN_0U84$KB}c$vNL`| z+_sXuD8UwXK|Ct6t~Hch!O;{~PJn#)ApSg`z7<6^mavc&mWnw*{X<#3rhhm%?)J7U zn{5g)lE-I@ZCFo`+&$-S5PQ~QefQ%fbN^nI@K5;abk^uJ8R)Jo0*Xv!#?@g0es!Rp zA|rZf5X(iF@}5U;08PtEq7pYATxHfwN0ZzLHj_F=+ct|I8^UkEcu!V-j^{mAmVNxv zUZ-b)N;61QQ(7h%_l1S4ED?98l63lKw>7B@C#!e3?IRc!zZmsF2$V>S;atKqDKfKk z)4^F~E>U_?7`k$iV{B>so_?X@Cb%S&)ihF}R6()10@kEQRV`fB50t}>Ky;d2991T( zhQY7~@y)pN!L(V&_vGSj+3^$4PMs!q*}{@CD@{(22`l?2K`LTu#b{8E)_UEhGNcz` z$9V}Pl4@ZUU;W_+q;&m2%8!!$oBuR`-^R56yE_Gc?~cmO^_muKJx@iVISRvQqSN{ zkQg0Xd?2~h_bFTKY#M2JMATO}NI}t6Y#Bsi3bIGrHVSC1-_#jB1Hhwm76Rh@i9RZuBoiO!_9D;tcqX~1-(#)NB9FsK|Q ziJqj2=23x`#unS-8@|r-mJ!a&bEw(C6s9C2s#YDd$efq~LNZ4KpLjGp9!P=XCE_Nj zXdGlXZvq!4dSW?s=nIbwV{&lw+QAxp{WvQ;4m!>~1SPs#I=PZr2^jbyqk#o$f33-E zd_Q3l=8JUQ^RLMB{so{Qz9+dM{M&l4G9r+dqI-~sz#2Gmf%N3UC6 z`ojv)bBSZV93fC%N=5QqJH}1}!@fejk4)+-<*Q@1RhL0j@?aMA$M`V%`VCZiERx~q z?JSCnY81(VuXY#@%Adh0X7@z0SUPAyv=l8YdPJQX+bSWf8XC7|v_Wy99pJ3@;61wS zT(>!CEd!OQFh?+)xh{C~a&yH>Khi#uByMM^qv;)ooh}W3gQ{6_3JangeOH-}h=_~H zK>zVkrd9|FL3%K*ns%M$x-?j&i)$*lB)q6(MHWQciMAGMNOh5a!KRa4iZmZovnL8l3+xPfNIY6M7^IUXyKrn@V%@6*Q)}aDSYt?2Z zy3;`KUX=818#NRB+=NVh;9IR5(`aThEk8GqJLlgDMMiUgRtEZ)o=qpF`)JDsSWT{fKOZWao&frK-67Xe8MgoCGmbW_tH#%p290Rw?+Yw_o_ z5^v-h3@yYOQY|2{pYuOO_7h%1-Ye!p>S172qxc0RuRg}Ab}Ekw3JKX|IA_vWu$tNU zkXnak0)`j1NoJdKT{|wBZFP1u&DP zk_L3inN+v*QHp^_M2KD}`82WpXzPr~v``J~!&3)V#{H|7=Od~9dn8)_KSvT+XZFA)E|@D_dUnSRva~*`WA7wH}FP6n@Ry8Iq{~{IqkTz5}E^H`G}lO&8Y`NB+(Q6FjFY= z3w5*<*1&3QW)MbW=CSd!PE!{(tQvT2V{md*2BruOu1$wc(;ij}r=tW$T`PZTc6PK` zXw2gJ>4`|WYQ0y>Lh=#OJp~*nlc2i+>W%68EU z<~*8WFF-o2t&B$&P{}4Ec#5!=_6&3Y(Cf(<*6$Z8E9zgiVFb7#zA@fte_PhnBv?!# zLU-N=3R4ro8=cC|2n|5KH1=RN$5+i%eqm5PjzFC}lACRdN<@G!58`7^&MmmEBm?#a zaq+Vbo11Md3$DTLS8HHc(AG#Z2M3KI#*Y26+Ny<5nG2vh1#NrQd$_B=)@VZI$b&(f zXoqEhgA1yUEIbR!XBIPmYr|~rN%vkfu> zk%ec)Inu5>iP~Y2mw)E;z!5;+)wqvQfZX;l$v3OGZ!l{2nzS>03z_u z$v7GJ#EyGkMqQ3S{o%X2ov+IBJUw zh?sj+w<9GMa1VjlllSyL;stBBFU=Av^_r}mVJlmgvasBh^~w-aYA+4RI@+5LZB2+8 ziG1#i+T&2wQN;^{xCrE+mgf#~&cw)E@ZfFIb_q}R?okiOW>rta64Tn`a z(510}C}qBm_71*iDXufKa3!mFEJAiM(QyXqH@Of<3lj;IApU6!OkDv6v*2IN{KO zVc+Gdu93i#xo;QY(<9~6KoQkimFErR|L+O@3@f&u{Z)4@S8e?R7e1nPZvN{Vn8N+= z#A0PSS?h>0?$_pyIxK~2vGR1t*cJu>(R308u;`Ih5dTs`D(YT*so+csl&@vr1MbmA z8=Nm(1eiD!cuAWuTK)v({R^m+vscpIbNXDN`LwR@=}*iWBjM*!Tq4#4BYHu^!${N) zaL%R|IzNZuGxsf>nU_QHLc%fp<#gq;a6bwba#@p6+_Y4i$$YQ}n^-%=^CKauJ611h z;1_=0|NL5tnl?Dxv7FGA{!fd=6fCt$O5@rFWGE7FwO|jV#MKg@cMcCe#1fE8`|*9^ zXVxMPTZf<1f4r?8D$tG9o&J;m0XnzrxfWvDzQRVE9%^z%P)!C_#*t;zct0T$9@WVr z-r#98^Jj2TpT1$OJZ4r=RCP42e)~#K9CiXbrU(|Ex*<@fYRd}JfP-Y`k1WYn{DYE< zSIhCW^5ztz*$S3BxJ=3vgq1RgoM~=N{VCjX@Mj6sm+CvdoJ=W){bzn&*@1x@VOxx^ z9VG&a!U{L2F1y8FB8N2t4T8+j@&1KD=%VhzIP;FYF9W=rZf=7;NOe#In-xz>?Sq%&gkksIKLljADSp~ zZ|s$MX`_{or|!zKY>m}W@G|;`{c>CMw)BJO)n+p+n$B~t@zEx?TB;#D&aWHK{-9CQ z?s^dC?$@iTCIg3-n;pz*(>_H&CY>#bb%uF&jIml%<$J+$SvM9tYS6e4MB$oc%sPmJuTA6>xg#& z_WZKG_$k2W-b{C~Xw={k2g?s$tj_jwaol?e&^BJUod5ox{>O#Dae-4e$;)ftg!)*8 zz;B%3`sg2W&w9kYsDELcQdN5XZPRdzcCe+HbWl9_FTf)P3tbC@l5LbnP7Xe z)y#o*+&U1z7)S%~di&qMIyyTYGE@5}bIt2WYWrMwY}Q-7DEK6dXcAK<$oZ~mPd*v!6my%u=CdF4<) zJb9gyLWqqVau?u^SM1RM*HpO<9t#UJW7=Ka~3QuD*~)c1vpS=V>GnZ8NoX;d;A~PZPnELH zl5xPIE7w3+QpHm!q3{k|d;hiaUI|HaX@PbYOP$%==;YSJqE4MU zpcX-bN?WisL#IO{}A{`Hs2J(9rH2zq{0? zjVaG+Bge;{?gQJZI|i{FJooi{_G%g(kp~&4Z9l(mikrc6;7fn-9Xtdqv`;$jzdYQ0 zT7l|*yZda?(Q!S}Q9JT@ZE@K@Vr+Thb3(A*_OW9_`*K*fZHcekfc%HY6{1k(Q@@-0 zo@SQx5Uron#Mr^7)vsOcPCwl)&j5ee{!{jUxrwVvAaHukZ)cqVO@au)@A=Bkce(-k zmIKKaUv)Qgax~yPWKc@ti|Y%d(=0z<_!U*)g{vdevj(Cv8IsU{tww%pWn>KJ4u6gGlKaNlClV%`~? zz71Jjj4C^-pnVxU;+ndN!DQ%+`r1^dojRVf$%_4bPp+h9aWNx`!e|1m0Q3z?M(5a z(8`U20q2C-!Th^wQomC(uN9YUi)_LDKNF(G*}kDZ;S|n;Df$d-OW+-ZFi6o9Tz%fmAqMq@hPA4}hkDnpx1(f3}NF+e0 zX{-_v9hA93Wn*8*)~4E|qhsfU)9~SE0qgQ!AXhl9;{X=gXKBg6l>BH2xzBH4gGPAQ z(7y45Y3>~=G`~oLaO}6$T1gg~XLu&qO}mh#R-2I?-c{xVYSY;*vWXn8HN`3be0EQy|aG%Fz-PpBmB@Qg!VjNT?br3CGD@nu! zw6l4E9XB*PBf>JT#9KEnmwWDRX%yQ|I&q#ATY|@jo>v4X7oD?+R13M@47!8MNg~N1R-IqupD|G(s!7>^4?h<2(9Vx8Cm_LXwCNcS&q_gJo{g! z;kz~fKpCnWACY&2ZKw$g|IZ7c`IYv)i0)cbu{hXlQOw~ct0C90pesW-IC5iuFwuva zF|>?L>w`0EejWVGgrHajI;OZBcOvo~Gje^bi==8KSF|{=2)zV3!#t7MEC6kgLjp1U zOpFVJA!Agak^FTHA4eQ;bo@;;t%;|To}L*(a76B^Pu&v~kimhN(s2sEWir?Q;F7G$ zSw@l0q*IX;Eu{SstjnWDF*vgzzdM$AWHnITX67dd&)PGzuJb;!^yHPAnBcz@1b-En)+1n=ndbSKu?{wL+j zQDPK3YFEKP?9%kKt;gZFyPZt(E8@fJ)~2OJ%k0hS&9v)(MzjKqbAae%O!Zx4<;5`2%6gakV+yE5?%)TBDdi0`3UvgJJOz+}+;QMFV@>vPLR^EWm{J;$aC-qp38 z<(SJ1F`w<g4+k9&fWp`;@Y>^V z8%7xLw}ZvG|34kUll7v6!g@vRd0!d=9Um3F$(3oje z&doRxT*>kc+`ge_j)2-gEK?2n;(7v)!Sz|%9PMP(yn@Z)AI<&g1!4U`;kkqj@L6SJ zaGO%NdQ*9?rH$U0HH*UwY02Vkdu}Tx;F1h$?Ov9B!{$UxXI*mi?{$1%B314g5{qYI zEFg(rQpTJ@v>7e~%-oQ+HX>o?zRpMmA;dwZgNVvPN;Q|JppwHI$S!ZY2X>X@Wwza5 zC#cn>Eu}-XR&WcFF%b3>rHK-D&m-7e-_1rL!G?*N6`?`Ofnxp7oTXRJs2fr$Hx z6oo1K-R8%opB}3g9p`CLM{ZSqaNDd#141XjPi4Lr-niSp{9-GV8(70&`^LaBaYnN&VrrbZ#v5Z<; z+Q-e!nJhgT(|#=8d%9El164Q~X*2JFWn&?$0QpktID&Mn!}kc=z-x&#@#<_2bNjPu z`_+kq>dk9{XRQ#Rgn4E;Fwp|Y0p9BJ(eG(|f2$D#%M`vjl0Aj+bsk!*p(v?q=0e=y8U>}L#9`R)IMa`UGyPPRFt z#RsyL@sO+QrXZ(~{)tB*OO^_2=P}9oeDwanYCL2L4<-TC_6nH(H8C$)=FiQZ=I&do zgtTYAUWmjr2dgD4(+Y#IYZl7SX>yPyP&*YAjSP`l>`i=2AajZRD0$hXFtybu?{`EN zd|jtU=Ts5p0FfDzaqTH zVB0hPkAY42VLh>+%n`RCeNqZuW=j?coaC$c8#Nwo01-ml?L{L_L&|xH)OE92J(J~F}SuuGoPT2kifP?1%V27XbrT6;g6(^_fVTHh|OZ~6m z9T)el!32Tq8`6KPx(=Vez%R-Fy^Qv)p{(;#2l{8MTWP!dc6F1#iN9mKK7Zx-uHGQh zIhl?+pS#{&JG_)6wH{9F!-o%^A_v#IaBRwiWqiVXFjPb8MYzQ*YiZ=fg1Gz=a&j+P zDEz}ZQMRsgoKWNo4Ey@JZjE2scfFij{E7CiGXmzFmBw%NE`Dm;U_*-kkFvK4h^tG& zMH_c_cXxM!dkAj9o!}Y>1b2rt4J5b)f;$9vXbA4E!5xCbX)-haocnU;-uL~qcCA`f z^-1-0qi$JCD=O6%BBI3s2(iAYH!H;qqLI=>&#Mg^k|~oJSX&o`;Ls+G!U4Dk7ABM> z>`+p}C-o0&@{2RVxN*ax4ov8@<-eF}przCf{>ts41|>!|#MEZeQwu~GjO=l}$AAqB zdOS-R!u0Rn#iG}ys_lWC9sTRs{d-<@UfLOdCx7|R#GvJGDh&I-QlaVW0+-ocyC+pd ze!s9WedwQt*0%s=Eocq))DReH(_D0gK}^&|RdKn!;vd&y#nkN5uqqPGgjlgyPoLYo z?)OFJi>&OF6yydNj$iyA&*>=24IB z?E{g+qTK)~ac6JzNj>}~NUf#S>^`ETCPGQ;Q{eqcsg{}`aZ8oS_v>%vo5R(oxz{g0 z_##x5&ob%kItqt?s0QPb>oSQ*8#YHxFRT!Ib3JZ~ijx!hY2$}goCoG3<{j4Kczhl^ zGCdx=`du`COj7p`RkpARBQLN424hOrD-RyxNe|({&p`U{4!QP!^>V|CP!VJ(Engv= zX3k7M7Tt9jNKamE(`5PC{#_TJdX?7&kK91N%exUTO(cn+hAM;M(g_6sNhb;sB?LeM z`_Zq-lHYRjbJ>04cSfEdSWp4$R2tcr>Qo?_6)+1myYCufN(@KKn5n!a(7SAOF#Ejk&y)+< z*jR9j)(N;47j;;bIDZ7IT1^)-+Foa+lda6+NXdC{W9chG;{|z`;-!n7>l;v+s?#a* z$(E~T9v@`rQHOqAzXn7zUP_Z0Y@exNtkU-umN~{JQOd-^h=6fmffd(*lQ`ETD+yc3 ztXi-AoC#9|*}tHF$R(@Fz;&6gt}2Dl0sa{{1(Q9Oa zb$gJrN=h^bFEHe5dhwG3J&XV)yTt(0Qn}0m7$Es5u;vl7vj``^++a7Q({kOgIP2`8Xc7qRYHc2osbo`hWRi8?6Iw-t~(D2quK?W z1F)>RmUSL}9WwdM5c5arTna1=#hHUJeYGv=Kk#g3+sl9)y%@>scH9Zt`fTAwTT!^| zJTx3?wNTS!#u;HAnvV;h6i0HkPkH{|A6yNC;Fw=uSd^Xr_pv$Trb)8Q#Y>h}XA_KRh@07gsTM9wuhxpwjgROHW}G*u8{+%>}P$c?jqvA zw@xc=QC?gndw2x+kZ;nM78zU+(j<%i43JTz4n|ig9Xpl&QPRi=)_ieMSn9;qFt?yd z?7%O}-1sj6jMLH~Qk9WXhN*~Jm^jqEZ(Y(T7Odf7S6oJiu0HWGES3CQsH)7BTw*BE zAPP=@bk*BID5Q`eJHbovt?^QI^_bZ})P3g30Az+){MyrS0RJa~xgyO2(mq_sPr~^z zt^jddh>jJ_)c61qKym{;b3FqX->Qc**n1b6TwSBh2f-lh^>d?P*utmwnFeIXeYsN) z!(d#lli80P!FDZwxx=G5tgR44$``Lg?_a6 zwyZNMm%K$-)*H6N+K~$BgJp96nG5EpqsI)n>4l5&q)`jh<(>25x$>uL`6=4!1fgemjY;dq){Yom(83k=ql|g)K5V zGcZ5_V+U*6?dCqXfEDpWD~D6bawZ&^vD}p!yrYH}>%alw51twd@lEH3VZaPV9*8`I zCKHlLs$#@Z+sNOtn$PU_cpZcrN03bpKxie@|Du%;{tpn(I+G0UP`@^g8?*pVjSQnL zCm-BTwGKP1@geU=oS+M}(t?tSNkU;{86$HO5bo)0Ptc0F&GJ*?xq9Dxj#o8o6o{q1 z6CG%8P>Kt4mc|TZTm50sW{3(^keMl_#{}8LNgSUTT~4`c(HHGcLPYePm)-^egA_f3 z3MwShb;PX%8L;2*`QeWN$pV>978Qrbq5+-+`~pQDvS*r99p6&A><;VOPMAn43E%{c zJb*hBf&qiCgo|U>`&o-I%Mp#V14#y!3Ek`v^<;9S&hry#B%^;wL?G+HO62LO$aq^O zBw?ar|4Dt4$utlo>5bJlb4YMBIj!1~d6N4(5PzMl{?>(TSp6T^_==!NP1_;kFNH}x znH41$Q;&wQ+bCor0y-&K_hv6{K|2l?;rP*?0`@4Ad8o{D7uo?eE*2hpdAf5@UB9OB?9rH*cwF#Le$t*X@7<2mEr$0 zMTz`DU5G~eUIR>hpRY2I?63!#jIX86><@LYRD_sQgY zFCVk8f`AS;C7s+kZl|QW8O0kP^TW!Wh?E-1kUWjln|7~%Q4U=JYIksYy3TRFF1>=S z)WN}Hde(W_{LS;wTT4Gn$Eomos{DMZ+x?)n7O9g6Xmt``O>x}u^d1$<(G$`g2@n0p zNQsDGZ8#n|h+M6BI{alg40~4^ACVo8h#9wI;_di;1~&*VN;_y1(Xf|N=xwnKfDB5D zaaej3wG+-d72>&oj1*-`VK?zr$Fu+$N`u4z3NuhGtzfaexHpUpin`W{m1+-GLL*by z^t&Um$9(P@-fK0L^tYPo`=8a+`PAop(4jub2vW5S5E~N}aR@b$25Ydu?W`ur2 z>MNsiV^vLwV9Dao>Lp6J!g&of-Ua|kE>@MDEpxzVK0B}TCPP{vvH&I*huLR% zwylTbpSr0qe#vhsji_MZp-PZ8&HLh22|jGPn|<%16^p5z)V-~Sap)tfWgAyHiH)g* zh#l99B&m%6a$CqNL0vC+YegL^G~~+26U4^r8sm{%n(M?FJy^`A%{EC{nLpC5t}K7x zbtxb&9Rd^{#p+g?`S542dXtd7?(H5tio3$5QdBe>rtMGj8DuG?;kubNg8Ax-&+dY0 z)}8*j;qq$vVLj3k(hPYR(-*RsGC1Z=8}%PFi5EeNw$R|CadBdKRrF)V_lk%jaN%dU zzfezW%Iz0d7S2mwvaZDpgC71>nXbxb1mw0|Sydvn4ehQi{=-^5Kvs!OSi(E?D>eG~ zOE>ktWcmB$jc??GmNCUL-fapV=24U9F8QHR^(yO3_*Sq^ZP~(3jzV%t5*><#g9r3k z*L@auYNF7@q&u?!c;?J#HG)z3)|*@MPNDn9QRQSxe7x%LM4K#|MJ=$X%(xBQKOo<8 zsP1pgJee01)jfFQFwHWHCRoyg*gw!;R^CFwBO9DE&E1tRv|71&rf@-itn)#( z&2bWShiM>CB}3@@&}pD5=dT5?I&RBeLIzh}Lp}@{CfuT2jGMjwNh=sLc_9&vA^o&m zH@w2SA6v-I6dbZxXSQ{SbUT;C43vpfffKZ~Fb7zBF-QK3ik;H$NSeff*STKxkgdF5 z=MU4#Y_}jjl+}NID37CW{r(ZI6z0APSK52d!he^97G=O|4>;}R5(XH(?xQwznE4taU+ zgrZJ`*?R41GXifAOUVjX{KpWjW-y!U&!%l8?((o`ocf74DAP#~Aks3lu41!Z8pH(8 zMj*7b!oT5`Tk4leARa2A1OfwAoNGS-O-PWC!2{TL3FT=ul z!c6qgHp7`&1P(y>mCV~FMnQdlUCAmAH){WJ3aSis@0}2c>onP= zcHj=ZnmO~LV$0v`cqpj_;&#RKnMT$Ki46Tp3^Maj5h8X~ z-YO{8I_$a~pO_fE4Mt;vsBJ0riFrU{6NPY^GRZX{WYUczp0Q2Aw~)oHMPH)5p)2CN zC*>jr%Cy+AY>~BcW33+cza!wgKE%x}1&KJJV$#bImMH0J86|fcQIF>cZM!Y3AB?+l z3yM!8@k{Tc!i^YY=3%SMVeMfN|~6Lkp;=c@Yj(ACSxC4Yc}zjA~p$I5~XL5 zVhkMa9o0mga~&QYT4$4<UH+GX&CbiMX647OumV3zL~?e}%3iJUXmL2iu?A4}CoT zO;VXJ6nzVuP8pkBMCXV~5Dm7YM4#RE29vAXq#24+EVD$9ra>GKao%_NV5u-;X;tP& zoS`w0+}E6GRV2{!2?XOo6JQy;FH@pZ@I)cj^Fz}?(;k6CrM*j*sbd$WpC1`M%DeVv zk|oc-vYa&`g%VI~)B)dX5;tGgNj*bHiP!vQ;28<;ex1P5$(IW|p1`7?Y=n$0O z)Qt=xu74Zml9*q}!mO{pE{_`l&qb*smxVcwz{lztgraW-8RYvYXX0opl&Fx7a5&JY zC5P5kq447yj92-F+)z(11N;BXH_VWo90~e7m))haW4%uEq6`_ci~i&GS2g%5IF&o8AvfykNLR>b)Egv{6^qB~{n ziaKw8SPd;hJQoES9qqW@bs~L26w=01fZfY=OG#&vKype#B-5vtmoMWLGDnKXa|9iC zuC_2`M}?Ke4{@0yuw!bcP8Unq+1odsBf))XV5NI@84H|T-2+^O_G;5p62Jp#0@3v~ zzZT?!x2Y0yVQ0J*MBnNqpW?X*TC!oGs{^9iV?Gq`#G+St)iE0-^+?Ajd@Ao2#A1m( zsv&!|mdv;cfHeyID`a79VA;IVu)s?@gu4kJjM%tcC9b$`@o`4z>|K0?pNL{xtZr43<0Yv27M zjj2*cr#HreQiDKhVjpGS2Y-|13{`~aA|~}^B`ihMm5DqJCf*;UDx)hZaKuU3Y~L1h z>8DhMPN9fMdE=`6Y#25}(71#2$SSXTI`f~z;spQb>Gm04O)t>EEC+++>TD@{0~)?;QkY8sf769J9_VPTv}{E$A{xz{h(ZoEy2*348J___>6_ zT(IoF`&q`SX{LNfG%s6g8iEhPfdeai*tS)fvI>))sNhE%P#OxSu{Cl4?s4S%8(T^z>+p$f*(wchsS#sCq9QP&Vx+Sy!Y_LSc{$=Uj z19Cd0$gie`#a%x^e6~sd|Qw3NoZE~8A@|h}_ zd1_MD10}}&*#5P55IpRE`Ef()pr=3C$?i$kZ{zK9%VI}~N8>H^8tsoqnX_0?J%ysS z){ECWi*aZdtrMO?2=sG>TiUbPak=zpT}-v4k)kMN$~77q;^P5taFrJ2TNa&^)IYg~ z)NS-a;0FdlpjW-1)J1cwA4bEc>klNvBm;cZny{nTlyWvLQtFaOoj_zGBe3VsE&y&c z@Vkmi?81)}7N)mU%AqDL&JWd}ufI?Ln`vE;Wvv;vXjJVK5zukNQsEQb$425SZk3dw z`H3^C{@~l?BB;1{*AY@~`>f9*QWezYqY;rwpho5K>PCGx(r%yzQ_s|uN1_^|#}V4b zAS$99Xl9C=e|I$AuwwmL^Pi@!CXzk;UEe>EB=s6e*gy5eXTC@Usr6svXIEM4>M@QY zFtcj)sUt8#WGCh3czOn<8evrU67b=($3Nx=z0l_2-rasiMGdCpW0}mfvbCkP^rqg+)rkE`p2$s{fQ&4|xKnBASoto*?9<5P0Hju=1kBm{R@u~v(lg|n zaA<+DjNdori71E02L-80?1s6ERIugI$q-4+cEEUD3g_7`XY|8~!(7r#$_!*?HO(1s z<1rBMb8p~ue_MKa@Rv+<5l;ei82xCY!(>Ne1v#au=sxh3y5VQGN<^Z^8bgIE;Myus zvZB>j;*Fas2cggWW-Qb`U@q1g)m=51Bp`Hx-@{J z)Am-7#-mct)eY4pxj~B`hccd7&3X^;<=3{9;t1*dgyw0Ele}3$t*7V*EE2Gu_h(Y; zy#gj#b)jelc}9J86Mb^#k4Y`kbR5W>GrP5dut!jPn4A-!4WUAgnUWB6kzlu1&9mWO z&GS!kagu*>bjjZwy`yv|`VRk<9e2_iBQb8c7rzMn0-YZ`dudQJ;G!!NS&axEac1xv zmYRW4Gf9?8)obAQ6uIsDF&{Mmy{0BG$}~}JaIY%_!A{bCc6H{h+J0#L?q#m~;n`X7 z^&gM-zP=IHnv==Hg&P30967KOAxjbR&N@JSv>)I@QrI1vQu@JmvKuQI;U{KN7aaEd ze63BuAg2D?{((hLd&k|k0+UHQBp~XAIw_)GxaA*2Y-5&ISCBAE7B@b(bT>mld9oCK zRe2v$L0(D`H&4VbjKI)U7OGU~=wcbV_!K&cIQ(aHK4(eJl$ya`R5#%{;iHCCp%~?K zh~4ej0$NRH{+ZmMsm2Nqn}MMVhF@duL$AQR@^6hhng80||8)}hF}(4`6)w1TYkZs$ zkGLeUt0eZVC)dQ+H**tKQ?QZzk!iN;7lUfTc@C=DuG6lzkVTO)z6-Ejg{h*)aI=v= zVwCw|Ge4|w=xOBeTG4NRoEDS=CTakXw!XU>GB)N{b|CB`QhiTHg}h*Zsho1Q6xuT= z&mcv$9~#t;buuN&U&htDV$4f0l{D^uwhUn_F2bTGD;iQA&X!Yg)|m^exx|qz`>?2D zDCv85IA0Tg%X?6UrRVZH1E|Su6p4(Yscg=l2E}vlmy(JK^19efQ}Ta+!(oV&`TS8+ zPlp;R@QmJ+Mrq}pi#Ml4%6;aUArwPKJ#0)&w1mr7`JoAibFc$atOHNIT}rjL^#Iq? zQwvL#-s^4abEESk|L3+%{`D7_y}npr4}jY~nr}Ph49Z`botPk>JthK6!IBpB%LPHl z0SJIQx#)}rQw-3+v@o*#eCad->W1@JgvBDBv0CK7JUwP^9h<=u1r4RVh6b3=Vom&r zC~$f}u)#YqK6vSg;3F9~e|P>rl?!?hi?yF9Zc zCA;un$pgu|0@(<0urLuMh+yelXNxBUI}@ZIXNqNjxmbKX6nt{1ik(y+BB^Ddx&T~^ z$YSrV)U;Q$jaIZhi^Q^?)^1vU99$es33*a_RKJ^PDLpu9o4YNy@zkw6J=y(i9ADk~ zQwd=AEjh)ff1d5;WQju5Ebf93MgfiDItSw`5%j#Ch=+;3@18i=;!`1dfgO~r4hS^7 z5rP3whbJ)`$T}Z&v6&v+!&Fgo#zsdg84V1Y%atVNrRB>nG255+*(SQ)8pY_5rIoGs zjMgn;jzIi2AU@G0+Y-Ye#&o3H74JT^fR(qMpk?ZYJBW}n)J!0htVM~Z0H+b8Wh%my zIEJ~j@3f;g1`iiXhCm^#ljU*8mt<9~Ff<@Mo;#HB90YTd8iKJpHtp9|R-uPpgHSbY zb24V=ui%f+X^xDTH?_5llCAZdqy490U`)48otLCgO{)?-LT+B?7k)?Em5P>GnBcO+ zl^~JcAL#SlqJ>Q1z|qlP$tX%*3=5Pns927qG&;beTv)mq>4on|gjk#0|8 z1wCyy2b7|MBCP7wR%ME1pfW_BB1(E1iO9|#6nnSHujv#=MEVq{a)*(8Z^APxu2qB`UB2Al0(&dWrvuD&1Do0 zrbC{V;S+au0ISDd8f1BsYt(#h-}$YBtz)IfX?5h~)_eo>yC$kRJ3_bs#sEYzu+blA*^#TN z$DMI$46`in0$y;=^5+3ISdcjEi2epK#U}@wfs+kCQWYhdgyLe@(?yo_R2vxnsSR%=bja}a|p(_zISnV%SH2QBlEaKvI? zW&(qMwI6Bzeqo_Gtj1$|gS+LSwPtr{4mf&c2+Tj~4Ki!8O=ya-TPD)+5{-2)ctd-L zvm1Vn|2bH`#nM-<5OEZpMWN{Xk`+N$K3fhL)2YhlMwMHTIfn~GRkbEOZkgoO;O@?| z)768K`WXQogeRr;-8J%Po{M4>ha{Un`aLlp}@^%Qg;ir+%{6D$M9Cy$rGO8I*C{c?N7t>4B z+e44N>5BOG@yM{NqNum&o2np0WM+Z;kzs<5r-ikOBwwJdSh+gBLm@R2z_^K!3teIA zXAXdQE8M=Y;bbFJpg_Zc(U?HSwIvi8imrbl`q)<6I#GfX~7C|$+oF>qCmlS_Hg6+ zULHV45!g)jZMe16m$?TeVg@Q)FPyLoOJ0TM7#YTb5@#Y#*mSL}E52s(*M#1X1bv5E9p|KjeqE*}G4FZK^6nd&A>LGzXxc<7`*^P6j694W_dA~7O#*_fB+$@KbZYk(5H>>?Q5&M4Ba@la9OK}T>O8gWz8oy$N z0Sw2HDMy~g7z}+zmBlg^q=brCr&iL>;Z4Skn8polYKu=8@5>%ALmcjbqrS=^XUL!+ ztqkx8XuhAktcjIH`u}#*W*^W~QL_9zL*s=%o(XWkm*twXI!@=CS&2qxC_V(jxk1@OD`lA%n|NEru;Mh* z`Z9r=dylpNJq7e2b?+05r-@UL^vx=GR@aClN$}3#Xbho@(?KR&y$elQ+g6qYADdZC zut}}Q(^CbBs&gGD3gxKKh|+M)6xC130k57X<2rq;rGE^K6q>8X=y;`F24-3Ji76Y|eW zEfBJBmPZj5?7ZZHV$AwD@!{^!@4YF{LZ^t?;_c4C&KAthlF#4HCS;e1rXUumX0be$ zc=767!Oi-CNCT6cT$V;}Z=t3k)ASxPYE*rgRz%ZK(qUkso^@>%Cyo`Xa$Qy?La3+| z{vcr!cU)=ykofP|`2(-74vEsh1<_z%%lL+d-RzIXci&!~s@)C;R$H*Vj`Y|1ZVMQ- zKjLvnOwxGjBdFnB*`o{zu2Z5x2}6%$uN;ggddx> z2(o`=i$!aq@$gdNI|z*#g~31b8kd^IucHLG3H|O?pE$lAIxPdg^KclcS`{7RN5{N5 ztrOYdT+bc-DGZ4ViRq!|Bag3EQ4Lj&86+rmWkwsdv7P8FET#5Ija&j_Zp$=n;&_y8 zGxGuAH3U3j4pt(+8oHD8rL=93H0%BPKYX$4&so|!qrn)^i*N|=SUV;$L&$UwA_1Tr zv1}}w!cL@zL4CmD;?lM@Yhu)esRM)pgzG91Wue^^dpuwB=W|wA+&>5P@H)jaff@th`HTogu8%A7V$2=GI@N!_jP5@KqR$Du z&)jQZW~f?}ZtU-Fb+mw@vUI$%rLdnb$?5J?7b!-3yS(NG%&&_vqL`}2lhF8n1?LdB zR6yWE^*c-nXR$Mu7>`y8U8IvgkkdLkbSRk2i=7=fQH9JwwvLHaFyhw!`2l0R+)7?Z z=_U=$iq&_CK!SUghO@VJ@xBk{TaHpRQbz=o7hTZJf=>y z#R6}k-kG+JU8Xfi_2hRY0faPT3djGj4vuPua9ZZB3z$2+hGu*e5O zEld7cZ}tq))2X%arxzad-u={>L}l8i%IVb7T4RWgrS<7(PdyE07tYTiknA#_Y`Vk6 z6;+4O>`%Wi0+!$H4}mj>GyS;;m_MJ5Oi+d&oftq>{#6cp>%g8hP=u99(5n+6rj)D-8Y4{-!ZiUp# zIWzA^etAsDv9*hrhf8>@i%%J5C^L&KL~ct&(hVfaBw>Aj=sCO*K>-!0hurggG}i-_ z*DN)f<7>$vSrCjdtcyxLL&trQQD&l_J2gyEpg4L!;|!& zx7zImMJhhIS$h?mw?k5>#%l`QciPtbZ??#P%@*0dDKugtuh{}(LGbDPF_5qu^?k?J z05krGV?9q-1rbni$)Kvt!!ZeNF0&rjr}&@(NFFs(3hS z+p&AMmo^Ee zax>r|&Y$mxSk2v~LXq&2txxZb2lWwL`jcUk8R86gA}UKSZhP)!aaz_PsBrq`Gu!0q zBe{F~^W;W&c0#cRq+6S~i~lf03zpvfHH+!di8Sw&e!}V&EPjFp)em8;2?25oo0Q_& zIJiQE2M{vWf9`Ew%}c87qgEt}S6~{^hz#zg!FQJRP~C^H-%)vZ!a3CexQiSS6-IE4 zdL$>I$49org-%2~_&;uk z|6Dq0-p#sbFlo*8yX~P6ZhlmGa5>AR*$HSpZQGeyI|K6^PhNcbcYKK>yr$hx*whJMB;tOquL@|%If50Co0Cunn*k`L zV{uOGqhiA&=_{~0P8XYDcI7HX-Hr$Wmhr9VKU)A&tiI`)a8;f74sQ=Xihw-?cOREU zId`bSO$++9=Z39R+r6%KEygzvOiS#F4K#|1Lh<_J4AP)m0l|z?b%i^$@F2?fff(eP)zg}!61x7h!_)nLzC<1i`+La>m?X9XpIW<)o9KJ=t6&6_Nih>{AI{h zUuu4RY0L*%Mc?`2s9_G@Imkwg)wczb^=c#zOq^Cg zzfs!u8sQkxoRwn0i|3Q}AAml#^7JJ&68?atBq$yVuj5H7IyYg}S{o;mTC1K-{{Sul z{th#GnhClJmMm#9Rl;|pqKB%{c*xv>`TD}vYqFh>{trggJ(}6~ z(-#{rcO7}XTZJZLQPztzcwo=@Ina ziMiux^dr`ROgU}kuK&X2u;-kS?&|Zm4)yl%OEz|PP~+;^@7tCKD-K`T=9B#~#*b^B zHa-I){-w)}r(GUip&#yO{xzgouYPS32Q=tX3!$^$z~#m6oFFK>I|;aZixk&IQ{m2< z>IrwlPy_%dCE^WYPM9R%Tj~W(D*G}zfIf@uf6^~eWJfNmLi^Ozji}C%VL~$vkGrJ= zbXiF?Gh(KIcEUxsUEJyZ&T(&Gqc@9flZng)QiUr}6Q%7L70D`pV|; znI)eyRhp+SKCI6re`G|%4d$xq?Fn-{*1!%Ss@cl=(Y(+qQ9&Ux-A=Hp#k>wE$t~D; zdNTGN5X%*^(F>|%4D6In+=%deG2QhtL2yj|LBLQr0qRC*Pk!kd*tmc)7|Y78lD@n6 z_gum4;M=)gRZrVVyN!vE$DZ0%pOkk^hd#)3=ND5Cm|K-ci<{I+kIEH+PLY zaAOY|ooB_5w+SyYce!)z6_0%;evHrN?a%id%rDP#0rih(hsGp;t+rF&fX9g6m2aNU zFK)7~N2*}OPlul+eO51x)%>3cR<+viOO5r!;g@e2)~>~Nc300(b`oCpI#Qh<2i7{P ziFYdAt(mOew7+3mdoEuyG=55WcJ(>rcy@b?*z62K0Mn%!YB)h8`WGo2e*QvAF%<&s z`{5UkYtLj&>f&lymwhH0kZn%=7s~;+H^T|)MVE_nPYQK6+=>s*&%beYlsm4PcRrs! zePOi_x_(35Ec>@+wJC&j!mc{2e_HpDbRc>2Pz)ob*@z%aUs5wTQ#Cf-6pF{QMsSu- z$W$4?d5ay4$ZwuC)^{$|kq}K;L_RZdy!BOGYMw zLpR^0Sr>QACgNN=V?)c&h?0c1f+B{$k(F6;b8->m{8{;KG~mK$2kp&E(FGsJ-N6L`#j{%T_Ru?a6AV$G zQ{Oes_+*KviI?m1i>a4Q1~A9VD6@g%8!;_m4-2#V(cufcmO{+?p=Cptjk>lKCy;ix3>sCrdLFis zPJSyaO-MW%{pCv1U4|gLgV1nSzaZgbwu1#3bs&6?%C8O1-`yd^78~uOFYg7#ie`o2 z>7yf?)-$}qg*MQmis)H+BxY(-s0Pds0PuKpq^daZ&EGRB!#27rSXsTA;n7eD?SYHD zuKsCHW<;a#^VO+=8cfk*oQIL;CF}8enfk8yJ_>LbotX^dG#;dj=jDefwkxOi=LM;dvM3gO$Yw)=$n_|iy;zc z#d)j`5Gdnc@Wp@zq!%GqPB8=_`#ryw-+nhRR!(C$X~i(4X&Dy!0OD!HCkOdMy=*i# zjQs_NUT$nkS?ydX1kA`zL{??4?5XDVa{C=P=;$PhP;~MT&kNW#^6+o`U#kF!VP<*O zK~(}}W^A$8(8xhC611drM*=)6MR;s@be;GnY!^a0paj`Fr2vI_CeC~v=f3k1tm`zM zsmt@#(+XE{LvmrM*`FEv>QIF-V#yjXs@|^gdKKy^`O{eaL5S?M#GZ~EhG_)GNYJR~ zc~mT{(D7PidLKel;>#AyD16VdY(+{Pi+mkSnh%DE)QFRRL*Sd>*OFUvEf%M$hcrF} zfg-kJ?WFzT*Z9oI|XYYAM%JBUaJ@y%zS=5x(#=8jwC z4h`e8U;>ct7UkWSn5y{JlS_)J1E)Lu@~J0{#HH%0sc03 z1aGc!c69yk99_`^mR;w>cA(rOo}b+--XMuowB46jy>Ybq{Q0uc&)#Pk%^9Z1&;73F z&244%2*2gc>6P(wN0LpmT+OSG?Ku>;N z;CdnsF;oGb16E5Nqm|DdW;1P*I6NScegM*F{?=WRRO}T?&S*+(!frw^SFr8G8^=vY zodZmt)lP@c)FcH`B!BzheUZT22&0NkA|nsVp*k##soh!}=Bb6TdVR=&5P-n#V96EQ z>v1J;vZG~Aw7lh{^`YIxq4fffBSw4eQf%$L{~wd~4cenbe|Zp=JxBX3(vEJxlRzNu z7_+X451bGMM!$H)%^Ts$`*2-N^h=hV#?@yEFvipRO=@cU(GKL}V*zmG(?JKzoUyMX z@ayBq*z@op+{7=lRKnUfSyHwKCYWFETRI+=c3Rpmm$uRf-fTqeRK7Wfz~85LTNeq& zPd^4i$xIad2PvT5JzBn6f+8o~3)MGKBO9*zocM95(1^Ro?H@qVXT%e3vr+9;xna^$sd6xcUGP>am)PYP zZN>ti!;30B#|YL0Vsx~1D0$8`i|{fuL&B4R;ZY{&BylSyru&yKMZaEW~;1a40Q;B4~SkMlKNw*~cd!iRMp( zhL8Wpn$uzUbfX$(2h3^_6@Yjl|KF~q#55vs^N+}B6kvR=?GHk}BPeIfP`FI5|6;eU zsO`My{jkx;6>VdfR?H8Nla-H$7rhMPC5Cs?!{8hLwVPCmyNLkf=evX_1&FoU*5@4- zmw?wlW$4p0*4Ey-^UImF#p@XIYJ1r{4s?z(IX{L80ACl`?vTCgXP#38IY0O7roPG3 z>Yr=z-@O65XFs&g{|3ExW?#E$dm|Bn2d!mt=cZ({`jS><@fH6k#eGZyD2DxKQ|o@* z8xwRgQN8xvY=0AWoEh}FXdM=9nShuk z9DuM3aRNI4V5wb|91w0GMmeBazj(RsLs1%#Q{+@Toyk?fs9@>%@8NEokw#UIyYcty zLhtL~|w35@{u*L75Baxr;1XCZGZ+KCsbk%`mBl* z)|*gm-kBuY-bh=U5_}xVSPNNl_yuYW-^w++u@}e@IV+%)>QeWfO(}-oqcWejz$y;N zzs&n*kP%o)*m-hX{$Gt1 zGq92VM-~)u8U(|dj|nqY@BGcL$UnB|8~E=NS0BmFKb}DlIf{oQivDBu`Vp~-xSdl_ zb<b3lQ%op1;}s7g8vl2ZO&!!z60^f?i|eFM3Kr4X2r-e9cZ z_ox}=$Uu6;82b_O85M7pj1{cRcwcUQh=7vfU>~OOJW-e@6ir&sw^Ig9AetV9!5 z6L9?V^s{5vTf>yFq|R++Sl-M4&PnJWPzqg4QbSSnNSQ>SqG_QqQ8vpK`zHX6b%=^9 z`wFEL;R`~>#+|iiEL-V@p1b>{`n|bsI{VmQ))J_;p_R<6fwRMc=7{h#$&eDNqbfZE zkvuNOE6^~MveylSNbb50#XWdxDgiSXD+O74Yn}z$-%gu-4NW%%cn`BON^~(v4aZ z_1kBNKnh!+b)qT$8fXk7QZIw+fHc`~ghColbc3G;cR~3fitQ3IyAi6<$gGI0@YM;d zIYBf%s_bn}39RVES!WBgRYqWqMJb3D5RFhyc$Lgr!0)o3utq zjLiT%;cb!{?RJIM5uD%qMdAWG+tpy(J3L!|q@1Z5n&E~;lR=(~84@>w4iXydnt-%U zwa?n%QX$RP3WH}y^|$9gaQ=5)2%In2_Gx!PBS@2p@~G*2^vTM9*GD~%TNW;SBR?2v zn9oC6W$L<@sKrzoV9pdXLlTVD0PTc%8wJy2mAQ|u8pGEJj~eS@S!V8}$1=rp>G3Xo z<8uRRqS2hiH}MAwpW9rQXuVZ#vU0lzmr!e=({6X=79Jz7<7K=RK*If-r$G9*60ud( zU~`X;whaK;tNqPQ!cH_nMP9Xa=3Mt-Kw92XK3^kdY;N>a74L8LbTSe9U7ZsY)$SD6 zV+kaGw2}a>sF_Lp@i0r6P4jLhn`DgYC*cqZ%@LYjHK3=4(bJo+8=IyavQrCYn9(O# zhraOo{lWfsN^tb=ULn?2-((u4e<0S7SBRDDL?iy(K?BlQUS{5;++UsiKtaAd$4|_i z%Azs^>Qo5Q+>3R~r?*sMLNCJWHLV_@3>RBLKRLZo!MGIh0`h_E0;{^E$H(!3rhc~L z{S6ihwxl-AtgPeMIs%AREHKL?$}Gbh*t1-$+7Ru&-dB(NLjdmq@E57LUookOTb-fz zhHNL$Y2l^Qzgx{tlf^Bqh6Xi9`j*-^=Y!?oF8(m8t|O+x;uf(-;55@mB5_cyh0OxY z0KmWnz#%+{j?j2Z%gQb+W;oVj#p*zKCM6xgD=UCFM~{unNe!q5hM@^5zzMNNMJ;1A z?2G#a_$<=-a@WGVCKQ$AR}zEbN1B2Ek{BrdUXkTe(*1>82}`eK&m0wwj2_Z#H>_o> zaveNe;ezE}!&v=g!iI02S*sML)`Syp!)g+V3`tpjJ8^y&V6dnch#h~*A7FHbw?qxX z`Ya6c2*iiTNlNdmaW!nvJcor55usjtMmh+6-CW;d;4n zJws}@T7UaUzOSpXHJSjKqZquUoE;`)qu$mN0MfQ^Y;#7+kRVz1VQNgklOSAG!NL!A z^VjF_FN(@gOXngvI^N5lu;`k6GVYGA-CC<{1v|b@d>!(?rAWX1PrSUM^xq*Ov}FJAGllbOUBf_96+~eKH9_bu!Xl zw&>_a&&pSAlgrJtBOGnIpj#sw0pePPoXN0{7=GW?=xZd(u!%Ip@)o)YSr!%(Dk7FWs`TY1Si1tV^u-==hLao|t)!omY{EwM{Y{ox>vhzQK zvUTfKt@q@>psXq6r_F55`j@O364vU#o?Z%m!qOXJ0sUW>a+HS2{I$enBF};gr4ri; z2Y*0u)pGio37BM=+`CgSk&xEL{d<0X*$QNxcxbKyA!MjJ@xUyo7;1OdIyQ*io|HO* zel~KxVu{+d_C=-h`871Y9;Ua~%J;$M^4dmqm8q#|TiT>Ar?atEZQnXnCI?H^lfMD6 z=ba_1UdcHLvdsVGdrtmLDW5PBkZQSu?K?{xdVexMIs3J94r+>RQ@dU6tIi7v+v?{Z z26~9Ietvuyj$_Q8$h2i>sGPjY=0yszF6JsbWPfmI{x>^#ud+jau@bgDn}%W3f%l%_oN(zHs^Q5&r?0(SCa;zVDBNBK<6J5R4B`wTCSI(r2DpqKLBzUfnOa^#hRO@$<5=gGH zjzivF%j5mH%YM(6>W+{Z(Y8j;!Z3L*?4bMCsrwykT1Xd8s;91wMM%r!YXBY4aX! z_u8!cTp0s^K0ST*5m#wv2EasE2t4l)SCyfMGZ;L_wymzD8 zzgBS5srh5LwAjz6x5=$x|8H$Ik6N^8< zmmLc2XL>FF;Tqal2#9`Mu)56<;%Xi^`fR9XTqWqF?nQ2={S*1@_mt1#o|GGgzmLQL z%Mb6cAhJRsJM;O_gmE6YYIE)`b?u z@FVfI=PQ7f)#rX-nBS<9)58&a@U>&}3M1+dn;_)rg3Y{Cw<#-`ynlkf217beBkhkv zobuH4P`t#+(%qEPERQmf5p2PmzVz|#9SzcEX#x)<=;mN8zwksY9bx&e9+Dm#90WKA z!HSr^_Wg^me+bKE{(GZhoM%@f=x3!ygTUU}y+f=>N3Fu~`FsAAJ=|yabKH#nB0h~m z@b3Z*tI%1^!3T=RrH5Y_-kv5j7x%Al0EO>?zEn~+amWd=akYI|_9rh7q!faR$_zQp zIwAQ|y`PSZB%=u-!ivkJ&w}GX=`aam*xtsA{nF@(xzG5Bo6{~OT?z(oRzl-As`aPS zo50Cbw3+Lxc5OqT6)6p3@-!DVcnKS+?`&B#(X{>&0)<L{%Yo^ zByr7w97Qx`Td^idRomrn9Z64O#V!CouliOY%=CzJ1Y9aQCeYl|C>ffOg;$B} zP@H=gSR*Gr6ROo2m+3SU?}suXHI#`Pi{wd*i#REc}2 z{KffR=j(6b$1K9rzg!AodSf*$HvdV=dsXPp6&fX_&PQ)v<@|uhmi?A*9eKTZz!a*e zs$f01=4BNAUJrl>k(z{#-=Z_sZA$v0S%l+Pi_%ZqDwIc~-#20@ijSIkA)>&-`L9qL zUr%8rU+eqX#PcoIrk!j1M1w{FXgTq=X|Kt40sWnezmxl4+zHsN5owzhC%5TnOcnPX(Kf`BT%lbioTUZGbx6nuS zQgQr?2GuXlMCG`y30z>?>@bE>^zV^25L!Tk%A&@DpCRP^+Wgww-{GVh{_A&fE9U6! z{QA_4-qYJ;nyo5#x8<_+mWo_S1vl&xPT3>BeMmTz0{10 zOo}oxU%{4Ixx4Z{M<@nwc~9q_vl(Z|zKb_(e&i{u9jG*Hh}cT^`+fjYk&VYh7~(qrQ>qL|xC^Suv)OPM`3lgeR)+xZaY2#9!E{NS$G_DF7j0R9c#}#V04xonF3lFZH z8Os-z&#o|dXLbn+i>X}v2r#3c>a~~%c(&3)X1u=T*ZwFF97LSKhIBL^bI;bLt;`y~ z)a<9}iVk9uL-;<-DOrQob}VKK+2`R47HX^Z$0V@%f8i+Lh?@O{YVK;|i7#a`fp?PF zYNXYZX8-ONHtHfACUsq&b7?F;sTqgi|IngvvI#B8QP$L=fZA_9`poH!_na+ZGv&7} zFQe!6w9hlNy%^DstsSMFt0O>EP3YWW3#a2`(;Q<=U?WW{?8Bc8igtrMh_AHc5{#fc zKVY)6^Y5q36I*j=RgH**Ad!3VsSHUXL7S`(@+|#kgNWq6H2$MC82P4-#f*G^*YMX! zCY~5LlR2vq=eWwvG>amfS67I-@`a+Y9A4TM1{$3o9!RvdE2M2^IpyjHdCS(M+Koe^ z5h=Aml2(^oI{s~rhrTXyDI!4Uruz}oqKT}=@L6H8V_7|zJt9_dxnS?ZezPbzQqOf6 zhXBAqV}&%FAGe*^l-@PB| zv`#-rTqKdvR`32wFl>fWe=b*er@ve-C0fexju0u z`Q?Q>vJTJq@rXLJ9@!3rEc(|zrTy7s<_n^Jh*Ig6Rq_ewQojMR3*_7H5~mwiZd=53 zKYeGLqn?%q0`;L%Ad1|UzRh~G#Chy__~&Z5vAb?U;kK-I6|wK~AE@b#Il$zUBn^+f zo(4XTsq{8?UZ=nF(2^BPccw}q^DeKAdhxbzalKh1kPiW_+^S?4O=hb5a!^~w<()Zm zSX6^Vh;Iq^d#(@OAE3uAO^sb`9^uS)^YT zhF1eB>9?#z^3v11)5TYf6;B?4!v`o z673Sa&fz}3%yDYd#>HC^q^}O%G&I=Y;zChRfrI zh~PIe4fV{qJ>ntc@5>%Y8)pY8MHfkb1UwAh2Q!a)?~t=~C+Lqxrbn(+3#}&}(j`*& z>zLy)XY@+C$JnuL2J-RbPdf3OM)X@dw~VF&h4GIW4@7!Vufb$eW`&uLMDLFpy(GTt zRF;YI78~I&58I4U1o8wafl~c5mpfu34P+)Yp&D(ExP`VYU!ETnPPS8SyJI)O`L->4NlzQ; zcf}n1Eq%`LvuCNAFo>>uUfA^}JRew0B$yDhPP3I6#isme=3Szls#cJ=@-r*E1;kArq33y~< zI7-7{TUIs}`IsoMi|)0mYaTNlWy;3B=7UEb6rKc;6{xs#+h0pK3s@ro=KkBo-*;9w zcl6Ky7R$JY%KYn}_h?zUtUbr-aE2Cyx2Y6jY0sDmQcl7le%R~NUcnn>P>Kg3^!LW< zd+ufZCgB(!u9nv(S=UIk&&nOIk0j9`fU~I%YWix%vgJ+GWwu}VJqWPTsNS8=Cq6olcetjSD(UQA&hNfDzqBxm^ztU#B%_3=SZ0+g5 zd*yv8uzze&ZGUq&2Sh)$i`H#7l&-R5n!AOt82|bu`x>e~*AZBTYMcGWFA}TeZ%0Y` z9FCpC!SjmnjKCrXmZ=xbgq4(X;dg=B^KT6F?}>1u6VtND;G<1Oy4a6j$amV1iD77!+;d*a9?T!Thx9ZQx#Htdb^7%tNQh|1hDRBX#GS1W;_ zzb;B+%#M?0{*yn5jY(Xi`@8rxolLsU$Lq{p>8s%R|UTpL+*Wc=6bQ0DV5lq*nF zZ09=$5tBb^X!r<$=e~HBltbo&+^WhrDUARjb5?vvdeM}Ae&*wfWFkv=oPB72G)Z8cc6%#cd`_M@3ve#8No7T z^mRtoe3E@`2UyO?$ncny$Y`<*H>m?0E@s>Zr+p%N{Lu$k+2{Le()LdMCV#knlmBr0 z)&e+f``3Pc{i}c+Rl^4oW4CHeqG!r?u+lL6L($c|aN&-e{Am0r?`ThMk_;c5N_WPr z2Sz~^gGppEpfy<|7}1QP?2H6Khd+;eH`|`jpf4HkSEg!VMm+|xco5+x(-_lnzyxo1 zW=!PYtITJhPm)~5Z*2J}X*;k%+rm;gCAmgirh|Rkr6C$cKGc`idh8W(>=hvC6_fyY zhCKV+)uB4KLTm$jyejFRRU@HmT-XT%y6v;88v5`>#?*8_9TOZ&G-CLRO*Ww^?5$=j zJzB&4eP>933)fQ+s#yyZOWXHkFp>+fzMoW}e|z44;=FDCeGs5G+FsEc*JQZ<>Bk^t8Ngo9?7uZfSLs&1pHHgEV)yjeeuHR~34|RA& zFuZRYT0zCR<>cuF;>U4>z1B=gM>=%jKNEM!Wtp1U&+e*=TLn?P#&pHz_w1Sp-#C2O ze9TtqT$g~)|M$$h_G}m6ZMG=>2WUwcgh#?{V9Ms5 z>+Z6h)sC%^B2#UskNVuOLF#rKvuL*|+#Ptk;*R4v*(k=U5Wd{8kHu$Bm&f(*?i&6C z*}^p_^}(MShuRbjb#K>jI18X4C$uh)MSg(8dr;dD6QL&cgpw%nOizD@?O95}{{gE0 z^;x()S!>gNU@PJicqoitfzTBtyFaH<0_}vp5lI?ghY~rV=GMl1lU`ogQC^(0u2?F z?|otYn-zjXa`M81!x-)Ki)_FH4rrg&o>iXe+V;~t-;aX$wjPbjOT$jc%9-aQ>(q=) zrR9`bz&s)0D){LB_LgIenVNXxAXk|VBB)E&u9Re@Np%O{f4Q}joNK+6jAlM~tV3X^ zWhd}~;2VM=RBaFP>O?d&V5~#OfmYyBlGKL1o*47xz-k;4hH8u7HvOz1p z{oprWZg%URA8q7+QA3lkDvmpNr-I4#gY}eGJ&51BfAG+do1YZBCk)IohErWDK%~Md zk9F!3S3}0PddrELyIPx6t58Kzb{__*v>(Hez#sIoI1Dd{UOun z+&MW!V)jo9NJfd`b|U)i7jIsEearXxcjRkX**#~4Ut8Xv-~4!f@tpM!tsluu3tV;$ zZ8`5LEk5u!Y2)i<;$Sh%;qVXgqxPmAc`kVgSxrrzH+z5%+&)qUO|EyISaBr*migEv z7oLy!U@+ddE5@c)zq;@OJ`E;`NMhLgHE31oE7v~zT*S5jC^=@;BJ>Q>AdJIuH{ zFEG?iLJ{24=^GrVjHM*RW#s==NH{39xq~XYDt`ZJuqi3h%pCaKKaD=T*|GiL3;ONv z^S8G;R^~fazji6j`+fd(^KDc6<@ft>D;FR8e+K|8|B%^t_KGaq9Y57Ygx{W>1oX&~ z?|i-!1y{)ce)S4UO7s7LlJfrxO3EzOysZz&d3+w>P2Cy!zIJpc@pZBy1jW=C{IQ+V zCv;nOczdHKxUJyW%lMQVMBp~Elf^+>f4%fE+^nzS8%VX{Xg~8Kdv5kDnwJv>?Po5- zI~Hx9Try~hfEzmysJ52+wh20Vy$`C-EW#z>wA@TI>#&3dq7vD=3Nt>NEli-VRggiS z1i=$#0jgG7^^9Y$_LK6eA53~3^sNLzXzq%l_(Pgb0tVrnF#$t-431F6X1=16D3qPD zC+4yAugP0#N#3=28u?MLsy_?&A1`P9;y8`^_Nxdu(M)HQDTcPV#-w?4BtcpRy{r0(pVV{m(-1$QY zXT7)#69OXp^Sh(f*gxI8QTji{nBMw-i!p#VvetHzx!HS^yNN3gTzx`0EfVjWM#@(? zDqVgI+9`(@6Fir3Ly=2UywYTaj<2=&!-WCcf3;Z>P50WwBJNfc6Dq!A2b9H5vEMRD zN&!+y%d2)nJj)+;fRs@BdQwMRCz4BC`JzDO6sUJ{O=Ufce7%0<@k#vim9MZ?J_6*8 zucQ)nN7XT9Wj&3}RjgwfCxE@%!@FRHsX0CsvbT>a@952_Y^62L;7&(Q$tojdp-~GC z3Oq0INaCermdV2>U2b``%uA`sE?-baZJbpzlZ;}b;4UcuCaL|C?BDuIYFu~9tvHnkyDdq)1)kLq0hcs`+5QWp^Ab}YTU9bi0P0( zI+@ycb8lifC+4L;sbX)u-TAy9!DJ!)UfcDLMDRO^M6VY-_SWX+*pJ|Tw2|-TC6?I# z1NMN=x!>*u6JuVKak1kYa)u7QlNgGV6s^Gk%&7Q$|CbF=OHZ}0w^=}BK35J~vka3s z6+wQH8tBWdr1gNCl{OD=zju`sRvovssKJNDDD&05fOreBU83wPYki)cLx`>}fS z`{S0d#3~V3n~v+aG46XF zaVC7y*IZLSkM~PW6hCwKBs>x0`q~md)3h;@A@1`$~dZ+)e7KMn^!R8d)fw=m{t8}QLIDh!L4 z)xW*wLWD$>Cnk)e#*YI+l6eGOKA9=|n z`cm%2n98eID-%*d_=o7;lLn_gDRUWB28LWtju>zdTjNuB@;ZBhsB=$NBG9hth^^xs zAZJ!qeaR85Q{ND1&?1YoSlaNGOUiY%$Mn_7 zF(8tsj9Ck@?`$2e5kL7US0o~J16a(W(4mm8;rd8EiaBzEUKObUAWjw@0Km****8HWOvZt~Du z_1Y+%+q5Ox2h+1&-yPSTw`V_mzZra$2L*rfK>uI!K!!?RP8C(^*zf5S06nvLIX{Nt4u~DQD)X5Zu4A()1?v3jY`OXTQ1?g@epB)HfOz-1C1bY z=S&$IPh&lW-(B(!ib(F2Zo+wl;;D`)Ar5Dkga|d1Yd_l)So3u0*w0Z(VqgD3mutf~ zy|d#Ubh;di(>Ux8)k%1Eph&-CW>zCi2nEj`yqq(th&|}~v^0@I#L>=?hi4-u9(8=$ zn9|$T#hESzN#XSpjd?m3t=?y_8i2HcvqW;9Q~O6108*+ffN-tscyyjpZSV8Y``%xY zngSdm`9}X+M~rrEa;v7LotuViHnF3aXrJs&60)49^EG&xgg$2)bv_D>DkWeukb)$d z#lBOO2A!9pOc;$J$woVh%t=VfsYRw{&68*&>Cb1gdpq?P*;+O5=$QDUV7R9!mkiGA?klm{^J%|kNBg}YqWWKUc2w^CCMzZe!=Z%%kkI5KhhNakN+aXx$HpLZL zV~IQoa(URO-jmc*71R%GmCT>vQ%;CJ_&Q!~?^N1LkW8sJX`@L#(ntBCq=hQ9Cumi; zsuYquMcq-Vm)JB%3yOLeS+C{M%m!yMF(o98S61gIwYPfk_0s!$(K^o#s_XyWtjs~f z>*U|}GlsVnyyg!-J39z!!4NINPN}d`U9UjYrk;~tI>^`GDl5~Aa}6aWsu#8>*yERr zA}F^}#jl)oo~#_Bq2i#X@(=vn=ywO6<7|W~i7f1;^|5rR#-PH%OUZAM%4zvlx6l;1 zCyU?~GlN}L2}44z zTGkg;#g#Sri`ZjhA%2#b$7vls!D2*ejsWSEy-Sd~A6oNTvOoMm#d2*noKgP~^8Y@y zL4xJyNY$`s-7>l=3YhrM_sBS;hc(*gYNd_c-g9z z`pM#(nRLu~$D6HonAmZs9MV14E&V#0?uX5=^%J(@8(NzLGh$70M)*nI^pV%O1j!UF zGVEp_9rG9>n}u0V47e}(FqGXV;vSOHVQH+MEdFDmUpg}SYPTvJSEGn55Kz2hX76lk5XE=)P#Vh@lFs(ozoVA(H5q?M6~x{w zmhf%^N6bmCKBu7o@41caqghxgr95^J=9_#B7%eZ^R5TVhe9+;nRo?ibGUggp7NZ=w z{rJu;t8XT`AtO}!TU|TtcKfjp1Gp8a8H5CJ?9N zZrq@R7Jj$yRHRDja;}qizgK>aqW}(=0Riu^7n_&^GA@djEonbeDZz3>%8BkO|y(E#Y0*t`#UbFs^O_98U#+G_hZWDjRm(xs08t+dtFZp6M1VE9*t^MB9465Nk-gdFU6b?bUpH`m@!4PRj^5t;&mGLAO=6 z7qW<4-j0I$%dRj!A0Hp*Imgh^Dqesm;cU1T4$!*dfquZvPoei+-+v?PWPdnTVWap8 zrTR((Uj{^srUXZ`=RGXo#V&#eL?v+NagHvS^b$5b183|SZ~jP&>#%tU<3>Y-?uyCI zWcxvups#;)Bl9^6rLM7_OM50I*y4^a(qY*Y{T2M3;*n&!v>ByYXR~)2aw~W!!ebd( z6PGBR(31RJHFZP#f$=2ej7{^5W^tC2XlPZm)d!<20CpiJ=UpxAwjHny-iCQ@qqK?a-Ofs{90 z&O(%Ht^*_v_@OLbx;ln0iI#Vk+PoN?ys{RnM5SHvF1? z6~M3=yE2XVW2gtr2(L(#hbc)RFACgOsP0*8x-F5I0R<2g3 z6hoNx_7)giD9u^ve0H^Q-eW#v+FOnw_dVq+)l~&efoeZ|pjZhF>m*+WnMP+lCLxXB z%aN2#E@gKIsUe@d&JF`JQ#uWR5xfW75U~fG+U6j7GFM#rnW;u^;~pmjhf%j7olT4* zVviHgb_mUzG2Bz-88HA^Zm*37&r?8@5;0=pL??{Qc-Y&5>ULp$Q!gub^-*?xkdXY* z13Wg|TzJjL!W>{H-N`7vnrDI^pKdNZw%eN2?olp0xhi36QI3URBihU3=C|HiQ~yWO zlDwg^IW(0{%RpfamTg>TggroeAZCN<#%^c<@)vj{z|_ak#gifalXIdTGdd_(aYknARp^G{@?e=4yh=mv+%R zg#r{cX%1*r6^0msXb8fw=z5L`ew-8=PBOnu6i+Piqd>&7bh8L?5DG*va7rn=)S4&2 zbwN`@)&kGngi!BR!3yz;tXkd5-S0G%e$-!9o_7c~E1ux~tXjhE6PMAPlS={#&_V(d}j}@{On6%ZTKk2Hn z`;~aT0(bDXU1cFnD%;D(Cw%w2#KpPlIETzGG}!>J9)~NU zdOa7q^6KfC6>B=ju_2toUHg{tVrI0VlsPi!m*=noyf6Q#@RNsuVMI8XuqWQ^aa^U1 z;(h#BZoXeGH!S=##a^g3+qP)8NsZ*Z5TKM$h@cy*rKemzY1N2{pfiOgZ250bKFewo zJ8otYS|W@|o1^nbku1n+-K);1AKZBHEMvOm-c<|do=>@V-k+BB73)gv%G~rn_C-W9%1)X-wiG_U z?uOpsb(qYGFO!Q>&~rN821WHrrn7XH!MN5gJ1OAsR_>VLAG@Q5gvk(Q4hGyA8;!o| zxAY%b{oTez$8jBIa{YpX8xy=NkIyi0PLxI>JetwT9Sy+=c1cK9-VlgKP>j00%9LZ{ zocl~rICdbW`sx-bT}9o;ivARHm*#5w1kauY43j-@Yn)Vkg9vc$ZhCQG;0*9aT9+ix z?#NrY{^g<+Ll(51G(DY+E>inu+Pev!g>yWIiVL3}FHd`(b$Ra^QTu;=8(G@<^3O;2 z*YsBS=TD#LUl}y@KO8i8evMeossG-Obb4^nJ#UHOtr8=}iEi00wQJhiOo{aR$|RBd z;3c#X2UckrCnL!$WdaYCwJzpRho*Jke(=N*3`5hYP%2rhap-IqO++}q99}x5M3W*L z*J(}7cnZ1;30Pekd>?`kr=MI*&DpW^?odgU&5V{ac+JiCwHf5#mniZ|zK1xvjubiK z3tWYtm^_Q_)&oOi#L0T(p4L5IcL*1U4i#SKKEsvrkq z8oERJZj5ZAZ^U-wI!Q8T)0ILv!-7=%!J}N$oxTEkOOE;;ar#O=D!nb6Sq-l#uaGf- zU2dY*GeKwC|AI|n2Qaf^*!7OoTkzEleCPSyre%*GxBwgez5vAynm7rc{Np3ad?hlN zUnqlZm=|14&70p2BXS7SKuFO$(_{v?3TDIw<*NI(8h!Cg6MpNL7p_p_M|yH%1*_%4 z#P0~+KHJARlEfp?-342M6Cc#XH`0|Za2%&U>Gv*tY z3A68gpxSbvkc|@;8eM@LSFm}#t=jqRjvu5be2+!+{@8~g!XjSIweL9i z7T75W(Z?bK=j?knZs>R##^)I|30d>Z1a~#oX~TZP>=y$`v|?LWQ_hGK4v_Wxx*qrVn%z+Z0|=P(C?6iDp>`+zNq=QWWjRae=%&Y|$)A6o<)*1)D|>E=x~Q ziG9b1S@!A?3AFZ=C)84+o!ZoedyODQg?2CAx5r zXb4ix*Y~tm;&J5bT6qNmw;9)Z6(>!Cv>1)6(vs_{v`pR8z;ORnZv)+E#VbdPla^bu z6LqQpaZ)INl~1Bg7-C~HP$Fa(O^XxNiso3`-A+rUlx!s*s7@%ttaLNXwIui;d8S?Y1g!FXOj7j*`|!H7*tW% zPWV;#!AXWb?TQ`o$NY(FF%hQow+CVM!z*W>U7y$9FP&p?mUo(S(Gx9;NQr?Kn~wXC zk{g;81JI}C??T?F@4xa1f>UR-Y>ZY9cBdxajAfZCwV*-5g7J6@i*;%*`h5Z`O4#)Gr#uBK#P)HAOgYSySp(Y;9`-vn?d6LNp6R|D zeFeDO{tjWvaaEK_&Wa`W5}#F(0JR#1ukFdcx70hcK9y(i#Q3{s^Fjrt`h}-%g20TW zKnBfsWWtm?VUP$QM8|5T&;bve@kXL$j^c_yqDO)07 zY4TVXRomCFNw1JB_+1dcbCnt1DA@?Dv~G=KRdUxwG7{W>YzDmH3)IG{ngqN{d|n17 z!2&~Yevw;lL0&ds$J3qsDR#v8gG~0o)PY@3`=-^^#*C_-fDAW(#-*L+lfx)@y2_cv ze~^^-o;rr>pK#Z^3U~ij3)!hUWgy%WJ29K^_2sd=)&k8T^Npxg#EfV`yV`y}1BWg} zMWm9NaEvg;kVynl&(|88$d0Q)6QfRAx*i~bX3duJ=H^&#H;q6+1g8K(eaN0}T7YxdhNG=^o$-D8RD(w;;dCm}`wuX zddyxNlR1HyYNc&lg2Lt#-iw{b*havao5kGeR6)iP z%k5hr)*Y8}D86XE$>X?)tSC9|0iCGCF{lbRdya{+Tw(%jlNWH5%2f+6hO^# zCDDH3&Fc;OZ_RRLE$>#I0mH8iG$rHW=;wH+R>XvyTh zVYe2pcPBiG3n$fYbn$DJob*m}!H}v4+l9*peYhslzu!@IczD>o6KFL3>~E*c6?m#L zyyH2{oCB{b$4f$~G8I=6i{VidW3Ttoej+t+eDq{%aIB?^#|!oO)lA<*G9EH>v$ad& zu^wRw7%U)sKiBPRQC;^`-A!HRSnscbbXjayS9*kp2Kj%lbd9SRmu@weovc# z@1q4A2w7+*mPFXq9Xwz%8W2It&z*1Bt4pXLt-{P8ce4yb143Jp?HS=RH9T_-AAdW@{!Wfc{o>sfJ1>Z` zAP6aN;m6|dh`26M<2rf0uTkV)Par5nJk?~q*YoC2;tYv&jqmQcR@r1@DB*&K3BV++ zpO{t?-F4kvhMBi!r?0zO;v6Y#6TQkGy38i007GmSNuqJx|3=VFwJWEGwpuj3&Z zD`CR7to^O!^2VD}Q8U_rB5n`YbJeX$fQv z)h>I0J*4oFwYwbs`e}=H$P~elf<#Ws;7yM5+N5qoP*diO5#gUwc_fXx@8kX;NdxPO zy)=g9Z7NU4Rjbf1sjP?*pfKbf2~2t^!uo2LY{O8RxZ9jGFEu)1fw9;+m~C9m_8qY- zQ_2r^3sJ-F1pQ?U_Cx_iA5a=@i|mn zE>F^F(n{!IAah#uQfwO~<3q-4CO-R}m zm@6!nM}JZ!d3cs?L9<(WQdZrxo9T4`hVI>nfIz<)t!B0#6@xagitysNLAhv_3YM4O-LaU{SN|A) z>W+;Js*T<~xn?eK^gY zHP2Et`AC(AjfT=K@U)i0WRxKs)du=8b{+&M+&J3@Ga#NWimY$A9Fo^2XGTxz*F4lR z=>k!8AB69TEA=6z>P=i?Y>fD?hfsV_+lL$~A~PMuJe+y6`MouqoQeVO?ieF=NTG$= zCw*lm^k~d5#!=4$#gCiP9+=|cPTv1BEBsJa+XMyc7(kHC*jgpU;EVCyW!PuvV^QP)1;BL|VuHOQ8Xl9( zKL>!fmPb8)Hl8czouxbRlRONi>I)xEK=-wI%bz*4p9G(R4pd zX}OB9XhB-90%cGfhGdZqCnf8*5u@E@A2h>ent?I0lk4e=DA$6)1$1+dcv~wu^j1`v zHr?=72$bWFXd$kP5t=jP#0;A)XHWEFpfDGHG?bG((o16k()y^8F`m{M645m+o4>>% zjzrUg)thPE{E^IW7n$`r=3m)q{H@^)wFRCON(N0+YWlhM3FO z$7L&y6-5_g*BSe=&k>YRGF{U_7?*Dp`G#Xs^7aR9al81kYL-^J%A|8$FcONAs?>aUw31)B7FqzKUXX9pvnQZ@%aRaP+FD(W@v%@Uc<{1cO418+ z?Dc$7wkfasE{&~reJ;Mr2JID%FWBV$?VDfJHMk$IOLIkWnao_znYS{h=1g zT09^rVU*Y#Y0>oLQK!wY+<3$gLJX`_okdK()G2qaY0bMwl1u+kTrwCh7xT0Hig1fr zI$S!{u*@PfB-B23k!Q{|o6*dSvt|A%93j)w6-}dxqdCix*+)BuS3-HdIaM+P9*ed& zSu`zyd4=`OI*>*x79l(#%kdgyBXpskuB_Seq^VgXWKX%xYRGx|xW;UJt4NwO-Mc7d z;~g~RwWCsuz43y?Mn5X^-97&3_#*H?S|cGGTyzt#GSg1G;wAr^t;6chj3#RHxy$(@ zdvLY#3BFBU>2}1s%l&2v6_8C%bXb7_(LSKjN~`O{K}3$fvE@>KW?Hk2L$G!l%=i_j zv0#@>WBD*HTS>{C!mTuZ_Z~j?S`btCG62|2S{Fk_ar^Ci?E5B*LCU;wt~lf3rJT?M>B zCf{}Mn>~g1F|iK(P6p$}#T|JgW|Z&W8!?iltd(VIMiQW@wH@s8m4vcgO)4F13H{@H zg$#t8+at*9RNiDzIg#BN*HV}65-Uf2D6e{rVJO!zH){~?d&+DZ;}8Y*#ygV6V*n#( zW|^S9DH{;OyAHtv5*PUn&nH=*&pa$pC7C}LQ~}ljmD{JYUy-7Ohs85iey#(44E%rj zQTN>J_|*j%TKeeCh8<7Nul;2=3hX_)6HelvcGz%J$t-k@`TgQ0!x7S28IXo!zO3Z~ z((tSL9-t1smRt|G)fv$eJUkpuyXF}6IC4cU_Q%ci^)A?D^Jczq6p~yt52xliZuNne z1Rg8m79*Gm!S1ThvT`u8Lg~G+Q{B^>3Wak^E12_k*57n-#q|Vc#N6T$wArc-v7*9@ ztc|U7?I2b?l}s?V$oOLKLG7K#XyXw&(`>cCvT5$9AYatx#hh*qKmx9ciJalcQ0>o) zrj?Txn2tr^@^MIY-KNepH&Y^|qSPAfUVfGgx7Cb`G+V~EZKGmXuOZN(m`GfWh=P}- z1GLFMCh#NQV#0p>!m?Im%3Ln5&9DBW2iFN_4ZY5%@aTKk6~w!|Ir#MuuoEam zbz&^O360FEudV%7dH__Vx6B)sB_8So=f~1&v!SR_t;Plh$|(Lv(L7eP-*0WI%f+EN zAO&%NEY}!;&NEE^^nm2eOM}#%z2Ti-pVt?1Z`8`$8n6x5uJg3{the21TlWzE{A1_A zD3wgI4$)m=>L+YwOJR~1k^|4TRPZTC9|gotGUE{TbbA`$`hjUenS%?x*KvbQOp0Es zGe#^aFJV8z%0x1$8E*1jI&+LI;}F;2fHZx!Z5&-U_bUYHz*JGx4xZq&uUU~O2nWd$ z30qW!kb@7E?U+pvh5v2+YaVERZ#ZS@2e~(FCR!ph;}=im3pY%QHu7|wZrmX))95)` zVk<&qn~Rc$N@$ttho6pYS>Cu{dn>f*%*X3eYJEY#eW?FAwR0fR@vvtV*WY(m&>D-A zXcul)g7|rTKa5?o6Qe%QR~3bi#jy?lQI3y>fBs~;ZEZT`HQ9iwVBdPmP27$1EgS!? z2jYfmhNnyNpJ7Q*LijgkV}JncMZFna4p2(Q!ZEBAkK&H9efZRJi?pLeA0XmWqloS zRJuDg#6;oDP41!V;%BM%Rk$6+sm+zF>y=0zQalOf6>oNl2oAOXv`eHcP2vjmyIA%+ z#uNE;8qL7}rai6qF+mY^B7x!kR_;V1l2{%7A=R+>QVeD9|*a||E}7T;dU#qj7UEVdmTM0f%Gqdy$3Y6&w2xs zTJHY(01&Zkoq$NuFus0bEeFHB{s3i!sRXWbJGb6N$J_Z_oIWqAmYK%cI<358z(ul%0S^u@*!GFmAMiy`O}?DAhb<)FP@>sY*iV)|LS(*xjjYnRj{dvZ8l< z^{fucsrOtWQWuK*5cP>K6MqZgmhtNaK>LgT%+b;}tD8#hg%IELsymc?GLDYfO%BQQ zet8)r+Ie_s;1z>X9bBSKULdV>b}W?Y0TDW4s$n{kUVOfLS2Nd))k!^ERMpiS#)nz> z%6*uv`bxUQEJ^rhF1J_+)hmeQLh&QM{%+PLEb7DzR5xj~H7R?YGY(PEH#oQ8ZxUIB z-x+3Y=0viRRf~U0ol&qytK(maYB-x%A0(^qPtz^PDYdQQ)^gpABC&fcg*E<8sougr z`$)yUn2LE8`xF>Ry93ao5#}_bOn@by0ZUORMgaSRaesE>VEcnR2bV?^r(7Dp4Bb4b zQb@z1bf)7NL@DiAH)#MAuXrxMJ@rBXKX^4{IXQJZmOrb9;3*9%knY%l65qYp?X;eG zcD_V&BSn&5Wvk95ItlE&Hb|G>d(jNyNJ?P5;=&E`gU)www!ao~>|nFwRX+Ycv+M%4fqE@!F9`dkZR7gkNPUd~@{1ug2m-T5 zl{Eco^Vx;CNqVuef@m9Oj}R%f`Rf&xgMF3Ng)NUmzGXF!1@~9zq~tMprd&`_xxn!I zl*(^gg;|7g@)556OO7704or@TEp6Tq}STw#UTh9OBY$y*L#r4 zRg}gtaB15>joMX(Pa9z}+Nc~}to0ot6F+JKLBtWc5E+qD(0sBM(|GmU-l$SLnO92C zrKiwZO(o7~=LnBd%gSy$C3sj)EoL|Ca(qM1X^`Lnt1ZsAG*-TG1FFP0t?NP3y3#JI z5;4p=)O|3((H6eP5^yOqMdn-t~Der`A9q=xm`)2G=DttA- z0u(n;$a5*6kl3LSYhfA1IX=WrJevvarBLaO#1G6v0QDiQ>rBqh*Ove-lI2;s+2E&eh0pK)EHcpMMnuU`=NEM$-NE6T-U@jbMGjFG9gmt>pJ|B-`KWo96SB zVc5OOGUest>k zkxch6s^2wgI(5^Pmyj_>36Gn@h&>@-7gtl0?f&>p7xIFxwrTu}JgMIh&y*JDf=Tnr zR=8S_!cfookJ04JD6Nh|cw+Ki6;ChzKqbb_sWsjg4(6^63vzR{6 zZ_JBq>PWU_)4jKTBjN`4RW8O_g|zgA+aah~_{D>w^izf6H-D?CYSI`y4UnX!&9HrC z0nAo8Bhxh>85(A6WL+}+ZJwWbAbmGQp4*!5Cnl<_DmE}}X7AVIQ z%pwhuA4*)Sv|a9H^``}jWyn9fqy*v|=HIY=Jrm1SAkE{PMA0fzdv?MKs`a=ggb}~!6z>m1a!ZC5@U09_j(M> zf?G#w0=2LLhJ?IhA#}r_dV|V8QW&Irr=8u^PGuf~TDZSHYMt*MaLxMXvw3hh*sRIc z+$nG2#rg3(8))|=cfdg>Dr zd`A*|Bz2{a*ZcodL<&`VK?B&S_f0>0bx85}@GC-qD2;C5Raj6o4m5slV#=D_rN27&t7Nig4@UE`;p8HoB`K{w0GXcF63c- z`J%9^CnR&+=p^&fNuqjx|BUi=FX-{$?b&>5UBi6&)^Hk%&!>m!($seo%NYXd-VDx^ zvdm?OSwarjetaQ`g_*`TwDJ5@`?T(|;bqn>s+|A(lUvm`(lg&ucM^tNjj_zdPf>cX zJwT!(*aOJOm6?;(oyKi*ZYw_qLdbz!m&B7#C|a}-ug9S&68`` z7k}E|ISyC1ZvO)}Aws43fuSAFH_i10<>pNHAj+QR_z4+wq!0<=45h4q|v^oV= z3m6s8S&x6oX{9Jnb^xg>X%4LwvpV$TF&(HTmOj+hL z>-F&heyh~2n|G%jzVEHG501+DtS{XDgQ#(=sF$AnYP_ruo11=~$6zblIi@N9fk2GFij^*3J>AGE8;`vjZCiNY7Ht%x`~K%n(yPFk zt!A{MM6qSj#$p?}eQBwc76A}1mK1<5P$$6sbXCLI2~sXJLu*Tnelx;POJ3K2lqckYl1Z}*4wOoNb(6qV#ypj5@}KadlG9_(aTn}K z-7)QcOm-?nWE}|>$1cEiP_WM^zWCkoz!qCkJ+nJ;+KW~*`42N!B0Apb!(_aXONO*h zPQoWK4_&>$<>LYEw*$!^!Fyi$1Mlh-*3JKZSk?dfurf9F0iV7Y*;_8V+APVskBtdE zIQNo&FtyIhB=Om&VPQ@{EHtdm68PI*G zX;ZvZ8%yV(jk{CsyY2#y*bJka{D;m|*I#a-g@ra2gXG^0rEU$a;8p2}es&C3 zd^tLDU)xF2tz%s*eeUyA*IKCg>T&~yGk5XdaZl{>pb+l?J(&X4?vdPa{VjqMU^yw;9O0Q2Z%c%Br+vGtn%jizIvRRKheYa0z2bza8j?S+Hqo%o)TpQQ z$)$LNwgyYY2El|1NJzBkH#3TItC#ZpT3$fZDnA8VESM`TFgNy*Qn_&b#i;dvW0VCz zwKu*R>P2tVe7Kj_oc_9?o?&zNcr0O3I10CDVSZ0poikv}m-e%czu>R<1&e6f$S&<# zo_1%Q_r`THjQV@g?xWvKMTlfB5^v7@lla-i2c8*=1bj&Kk^A+W7X39Hhqq#ID#W4}*eX>f0yX=q-%k^E|| z(+TIdrLY>6mpv`Bx%ZU!kHML?Zw>j<9x+K4`CPfVoe>T{({aG2db7V5$*)FJ+ur)j z&RTKX+n6!A*buKU+p}WlUt68~O)`}onM>O{3y5c+rx;%I-8vBC`Jx`sw{<1by+wh2hSApOIBfV)*n*|S0 z9LzQUC6^+F0*#PNj3E+v*P>9e`^iAx!59@qVPCjp0`F$lW-(MTtmSpEW-jH`BIqOQ zJ9CIeDV|Oo;uyrWu#^>#4m%$6R;xI z$e$*8RSD>k*v$*ynAdCfy>Ex}_-Xy)NBREfAFGYrdqF$peG*biwI~qB9R0IK?)A|D zhK%{4Z+)JBJZEb=RrBED1N`!baFG{YOn6}C^Xf7S(z4y zulSsuVo9eu|M}zX8?Xft>8jK^9=E!{VbjO=h0UoP&tIQzR*iaoT%1X8dX(zz^z^-9 zb8Z>iU1!PB;~3h{t0awsWnM|Fd`F%Zw>bYS^?%^}GO=!>j%(u2&6YR~Z^f4c{p$)D z8I&#niVeI`Q@5;F2~vQ~eIiv79xnRI2xG-ML%VPo0(}-M;j!=W3E$^(M88u~#1zi3 zn42`morb=&hzz&vu@4$B^#;M29Q3%`hm|R(1%>(tyK~g$#A$`eGKuT4{Mc#Ftavoz zlsudXE3NyCH>(8U3=p#zl&Aju1dk*Yj~yb}R!xs#T$r5AAo1X->5u-XNRm#IEd!ds z;0b?d=5Uz&^bCJ59KlIoX;ReEXMlZy8p-#3YGy64WG-ZakvXvckvTB>&e=X$`C%G_ zXk~V<`a!J!Kz@=S(O+`Mvocd3^^F67~;j+yd&SVb0gI^URL1wu8){ zokRNfqz(d;3Vu;jF(t``>J2cO{mBngcT4MqkPf^U?PgFZI_tYOq6@tmh)c2xHXF!c zm|J%K`CZh{u;}Ey443_#kNb`}Z&vkK=DpnpZUPc0n4Nb^E)PrtpaJyno-W8U3197< zlU-fKw0)veb_dQf{QkUn9b*(c#P1wez9}L4+0y?<`0`+Vv_x*C+!SRa>oK4_{bgbO zL!%cXj)l^R+VOS{&S&BL;e(`9K^P|$(|`63{HOoKNLODH3Y)U*0+91w>G%pUXkfjJ z3U64E{v*AJ@8~U2Z)pI9gN5VN7!xR|N+nWb|Nc*Zz}$yVT2#4yV}gmrAuVlXyU-;| z6$pT|4nWzq`y>y&)aq*q?Uvyx_%zbp!|75ztmcEoPp4MKl?plw))dbhO)Go*C?}WIxfjJ zmt-E8X6A=5Kv97ws!G#6?7amV7yr(RkPDe3w@d|wvpkou?gbIr|J5xhfEWRbU27#6 zpW^gEoQ&RZ&{B$-b-_yH6LjymqLGZHTfjgLh^lC8ULgNP_*!hAXRwi05^-JuXJFQ^ zI%S|1`fpzo3p~z=;s6XAPu4kV>^~$EP&!SQ9M` z@2w>FPSlE%ABZBd9^Z6KnNl2GT)*=TxTH)ffW6E4Ro7d#H{QuuRPU&^-Ic!Ebl2w& zqkzc=cM#Lq=qD~u^)`|hkDD>Xt;6@0tG?s^Z-NY9-un;hnEAsaE{}c)J(%d|i^loy zMby=eEQHa)n!TTo+Zz8e6=yXHb5S!^De=MPD4k2o#2%TnMpKa7s~b%q)cBA|iBu@) zZlisi7VNuK$-e-fbSKgSTZok)6T#$4_{|2?eqg;1-UVKC_w~k!eRX!2{wW5KHDm6`(K$i>N2i zW8wMQP;gpGr@BMUm`8C1hwLdJMYaYVo^qAgH_{Jv3RM|mn(P231pQ4 zvgj*zhcQ}B%c`mX#NfvIib7Wb ztUhLE{67Gl_Ah|$fCwy(J*sXl z8@d2;+t1v?Cm;&1wf5JTowe+K^lED4AiQEqK#t43I#o2(KW%~d&!lStPll`RLjB@o z()IU@6hcpltId1m!$C)*wh0?0_Y3Kdzo+citIobC>j<)P&m?<+XTT-n@B6A5>w`(xXP@+Bbgv(^cTs8FS04@1 zP0n~Cy{{j*qnld^7f-80%Xngbc@&;6_TRd&rPR#{=NiZDtowS~zD7cz`6wBDZwUZ4 zmvEVBU0CH^6PLQVt(g0cCf%elfHgZo2JdZ))ttos|CO zj)7i6HMxLps!^a6^H2|tq^nE8U6iIG2_y~|r(UUgrXgW^Tp?N@8g{DsK1FcFTDSXs zvTExX{8TU8Z}ropsFV7~ngBDmx;(9EAgPI5d5yjpp=A#;QC)gQ=FK<*hdv$+b_E~r zcGPzv0%U@Sc><33O!fVb=pU7t4fex*!laE@r307_{C^0nmwFEre(1<2{F2=y&mUVo zDBThd@2NVNjK&ch{YrQE>(T6%Fh1ScM0WM!(X*7!qZePQ1lelvtq;$vuPIMyJ4fnL zI=K?Z4RyEBk6kY4&m(cH!pDl7sT~YHZ^m={EQyXcCHw8?eqO9fu}ig4{$eWcp;IH+ z**Y+H<(Ee;ZOLg%G{*_N*6n1_sQsbteeLbB8VM?@@8Ob~x((AADRNgl78@apTHzS# z5R~w@3S<6T6(ZW}xy~LH`^N@+CF604A@UpAexUaL5zJJ*ZFbzbQa&`PwR`K`;H<4~ zw;T9tj4c+enH>LXOAQ0BAhgje{Teox=yU-Z;`#{4RHG_ZxL9Ffc~L`UFmaU(gWx?a z0hNGEWU&*+_}{qy&_1gtbNBF=2rE-CT)_-ZCB1v?7G_FAbkCfln?sCgjED81s-mY* zr>*))HFvq9Q%P`TW=0&9nqQg9+csBSB4`hba&Ebaq1-cjX}FC$(Y2n&3S9r2*W#L) zxKyT1>%(nge>s!Um*0KtaUF5KJ;8{<8h^#$SO18?r&bLLb6bwfUqY=<`V-|Xf9)Ok zAGOxJp%eSQ@a$6VW5+!_Ahc83vIXh+8S-uNr0os)wq2BTGh^tN!Dx?bx>2gU@kr6J zMVebYyYu(9I>xw2|79OMOjt61ft^0<16yv#5;d@`Qx@dquW65gN=s$izOhlH&8*^E zI#gaT^YIb)hQ!lwz-0aA@oo&FUokZqmZDP1f~%)8-Ym!U@|3A z9b>3gt@M>SB=~1~TBRZ=@JQDRL|s%GW<89jZV8_eC~v? zQAwa^57kg_Gk*oErf#ISay#${Pn(3QyUHWmrvQpU9i2B%$}(QfG5HX(p!2|U~wmD zZaD8lyjyw%wN^=51&~IbkIi@%vsQ3wCCUoQi9tm_G2+TMsyMzD+V3Jr`LKz*ZbYlG zC-~u0P?Rj0S%8ZO#*dEYA(;lZMA5Tf8_5lkHcm3{bxYo>@@Rat!vmBta_{>;=+^&r z^^A?{UtP82WQNaA0kI_j;2ukQd(x8m{9)-g6~4?6H?BfcqYcdijAZRjk$mWS7tJqPDs)tF`e5A!`TK&Q)9c42fXib)Z5tY9;H)Za~pjKz< z)2%1Ds&}GjA42Z_+BiN}{NDXwqy7bbgeVwh!k*rScZm)tP@$hnZ7WeWyIW-xpkv`5 z#wBCqd%OJJe>VSLy3+r3`K}{r&h(i7tm?*uy2TL5jH{6K&nx9A@Z1M^G}z2htx(dM z1p95kzbq-O8Ud7cI6!bTM3n^Hswj})o=k)IvOYYyz?_qS#Nr{o9DzOqh#91A=MP>E zeW%p;N}@tv%rf^}scSkXRn^rI@(}Y>63TDKGSVR1uWcUG1A`>bN57*C9onsy3PRW)eI64*3$lEU@q8h_Yp^2_YktKcOSqj_M*_;$nu@%|y>3t#HxDhdvByFVs(s$1F zUG{ErqE3h|`G$0JT^UEwtj=y3(7?~QrM^a*Ih(<=`qn=D9~$_7*@w4oY1#j1&W~5u z1CZoXod7QvoWrZ2Ri$obEKflN0(4wx z1d82XgZ1MqlNpuKNDrR5q?vaxw*q}OBDe3`i|?XSCU-q+q>X!;WAfJf*x;Y1SSaN6wi zHf~*cR=SdED;ryUjyL%^6#XB`od!m+;+8{nt(N{$JcQgBXUmiifo*08Pf* z9Dn{O<%L(dnp-^0v4gWDK?-+^c}j>YpWwH|bcWS(`N!R~geYGFGy#MyPbt9iJZ^Bx zAqA4mxicMWo69L?M;vB;EnR*h73q&BlL4FAv;gaEtY#=Wwv`kr&dQki0a_;&krA!p z$(P8Tr)O=@yB@vWTyX&_eyR~dP;Z&4lL~bSss$EI;g|m7RA~G!g@1eN zMb5s!7VPF&D#rGMan5BE^?!zS#r2U#Q-G+F-$gya^%U4!)CA&FpyOgMXp>-S#Rij< z%@d(0EJYO{N8bbq;jxIF7eZCq1Unm0huj#-ur?K913DltV5_LLXuo0JGK&S9Dx*kP zi^jS?#dJZ}bQjO2hO>Hq92G6MGX1Pj)+PJ$qt6||vGg;E-_42iLVD6>X+0uD$EgcY z0d$U(rkOLb-f~~#FSHIHh+nhuj}B`UlBpT=@vF({BEA?=(^zG!VZoGK9S;cdWxaL! z_A*eOxP)vdnebj9~E z0vn6uvlP#9?o{mE4K)Bg7|RgL%+1B`$BwCAV|MYyI6q!|8J6$K3vX#$t5U+4hf?W_ zRX^d7m)R>pmIPRF{lPaomulLV9K#p`j&ZnOyR9CSBj$`K22R zcj~cjR3au*M@!2&aktWQdvHAj74R#S8Y1(Ics@#T9kcftfA{_&A5?~@eHGIF`(Wbd z@9MK%wSSUBQ2dVfe03uRjr$c{j|TVKnpSAsm!v`-VAS_c4>ER4)@~A$whCno8BSJK z`y~byz(WHbIf(SVTOE(Exe9_aE_Sq=Vb}7y-aS=xBOHo7+^3vUPEOWSghVG$foZnW zujNtbKhE$#1)L?_p(dp^3mob-V9l$kJZ9G=LO8pM(tZudXgaWdf#>9lf!1dtU`n@J z?x(q=q^ir7mTngzv}P1nl{6=c+oO?7(eKNhfR2hvZ>(_|r=9qt2d9tk`e$b@fvZ?k zijk}&FF+N?wrmFprM|D^JtaJIK71f4OrZ9PHZ(rQ^W-z`NmZ3d#xM!;OiT`e%U<;>?ilDumz^cK6=*SEWEg~b zV$hQh(oFCAw-hbLql?^dC0y8T?FO$V$szEQb2#qK% zxN^m*QxiTD)=NuQI|f>O_}~bM!%NMRJYl=$w^ik=mB1uzu-_AH+m`q|H1tZp@03$> zfY;K^&!Y8^MK1tB^Mc+(b{{`}wSrkjdMjQ-@#9@`jTzW!dYf`?(n7r!CSCR7e@4rA zZGNu|8S=ha;rS4)fSU`V&G!QgpK*?z6C6G;kd~z zASF9A`R6|6wGD?5LOWR_PI~K)gqwCpGkldSn|>vvl{+?b4pvXBk|N{|P((R7s? z`v}%DWX{LoC5h^$G0Ksl`PJgm>_yXBe!6#7-G(P^xr=`$;#k&Q!?uX!8tSvHS&0%n z&8ZDNgmj68*3MJul%K+qtE}(lxxC`g0FY7KArenq0B)^v2$NARC+?&xhTjb7kX4Ta zt1e)g2ip?N$4PbgE8)_Kqq=vaZSZGnXDsUYKK;!iVm?mfeFQ{oF#1iis{iYn$S(`+ zlDp>09ieYi3wuF-o?udV$J_ya3jF~LC2U|-b|(N#uy;Ns zs7~9`O0uIAdP(m_(p>yTCqA#hC<;X%ZBWc)h2!FYuNzIwB}j1!XZU95jMD9zXRAfl z@bSDdnXt0(F+JdV(5l^OXivZo0g_R0laS6RC#~TuDXFW6=2PZVIIGlEq>c#PeZ8?B*ppJM6CZZZxuDq4tMf<{ifu zo8&!&%=lHEAqJs8_Dr`%n<~k%0?MdT4j)Dh)MFBwRM&hVN@<8YPu`mRJDnesZ+5UuFlf^Vl zs8;$Tr+@zoK>bHFW7$BzTm>eqX^NDiU=U|9_LYe;Tdi9=$2;}H3=~3pGxXn;NT6gh z{7&%LDyw{6RGD^GMwDnOSZsgzmGEh}c8`V{sO9+N-v@^8(sg=OjWEQZ(e&-MsWP$Va>mkx}Fu&xyA#Uq}X~HBz*>n^;Ggt{OB*YRWxWfF|cXB>8pa|>b zCjsSBbtK$R=X6UX})FkTd75c zf#{x+9~5Iw!t(`=4Azhm9#3#5NRWmvT+pjnuYEp!MXW#(Zp(b|s<)5JSatD&Fyu;1 zt7@gz=~*UU+3$gm68oZ0#sqV3+^+s_WO-YXDp6eJeK1^j0%(UxGGg#HUSlCj8*dFf zRyb^3;6=VSIu#yn(yh4Ms2uuBwq6d3T?HsZK#aUc%apcHPVuY(O>JdAJf#=>baJJioM`oeg z$iESw2Xs9M!o(Nvjqx~13-K8|Suk{A_)uY0MF1!F`9q?C%5XBx51t&#Qiaf}n?@;I zw*geuj>SY;k`nP1cvYaXQkB(0vUx83%LYRYN-cOuNG%r{N9iH#De|!bZj`Do9l1D; zETTbHKmzr01>}E1e%eWL{csKj4{o8r@rotE))Yrbvi<-d@(P7(a}VCX#_GKfb2pA&OKE z_cVTUlaN1=s$^#npkw79*0+cDyv;5SVX}*^$OKa3f94f#cl{pb;b!K`iQeQ&A}GGp zUdEk|NK)+woICi$O2b4}imF!gi0Wimg2dU~Zo+`WAk18Fs`ecDmbx& zvLZ0c1UX)nO{WTk-Zz;h-XY4SbqI+9u69j+VfKe+D0!7C^JJ);3@M6EKUTxbppVk< z_9nG;Ejnq-5u*yh|CR{A5>j%aA$F>|=@#h2*Ua8*Ze#(J{G4`PYM5qXPhgV62-dv5 z(*>UTJOnQIt00!AnZ~+nU9zA%WwwT`wHlH=gxhaCdkWyc2NJV)D8+2GynSBKsA*9$ zxaqxjd)hSmR=g(_Vt;Ea{EhY$Gpg%w{0sUq8$WQn@sjC09MTGWfW4rjdgs?dF0s5~ zZVP%OEF>x9f&>z0w4lUfnhX@%n;M>^JOxN|dd;##I2BXxQ}l@+L`pCQWu6bRe{ zrUJIR%)IyxinW}O`q=2nzA7wt_g#bc!+j+w{IqtFP&YVRtgXP^e$ww09jIrN>TnWl zj;JFRoO}(62P(^@(jPu7L$-zWy=D9~?I-UmYWDNKv_a{ac$L3vu)nnQRGrdd#?BFc zDj=SKN-@Sez|~Avn{ub?W9tm=oUj#NNE{Z5-zod<3RVQG=OreG^~|(lWNQ~TjN&5BSw zyT?vomLKIMhgXVN+_B>i6iLu3JU*+*O;lER1coGz4!Y?^A4$%h){6jCtI}#fo^aP! zaG|~#6f_>m_<=IN4@YEnmU%`!Av!%-CcB@~E8#e}Ql^g_O_j~)#`hLBi}bnVgT5d^ zQ<%gJ!VKxNFgmN_C4CX)jbIYTDi3i^#xv{}y^5IM_9wdq)saXWr^{!Ev03A=PO5Vr z@PJ?hDY%v(tl#5z>nda)Khu3K#=K_WAR!FyLyFG95uopVHLhL(^V=v7Do;sk4_?!0aMdVv$b?= zoE5H?jl|@!j4-F}XQpYB7;h2mq*rPf6}P&7!kB8^avO;Ze_gbcfcMH~0kA)aG?y$3 zj$O2}H1%1c2o^*=%f%;od?y<+867pv?-FweSB5Bg^W+xC`f8*RPyn@-8ISq-#$9g7 zRHwsT`M+#`egSZ%qx|YVw;lH>}AF4b0?<<&q~!$k8Uwb+wf`&h=U1 z!i0!@?GAv&0n&_KiHA45=u%GgEXRqTNELOUn^Jx)M&d(=jKBJUVlblM$TJC~JS&$m zmE(W}XNsxTv4XNM?UNq=%L%62@$Pf@&(=P^-P(u~lwAo{ABcM|&*_&Us}*jy$9lD4 z4q1#4xgKd#`XD>RKtaf0n*LXZ0@N0Bn}umUf6$bmj@@%3Us=^v>(9l`_x+*qA~IkH zrvQ8yMd1pYf@5czyiChx;G#-gGJ^{6B$u3spTGhrASm(9&`n;U^B}Fa9$PdLiYBu{z#*MT6hxDf5o9&pYO$=>WjZ{y%xtHjMqa_7cQt7xdD zIe@4vXol$_p`dzyl#Eu_{2EaAdrZh_72|Ya9#b^2kuyAJSc2Efh)bfqrxzE3tG6K# zGZc+@)doug(kL=z2GLn;t5;U`%W3dv@#3qvPKI7!F^d`m!Ntw&;=M-KW0Os8lgG|j zEVklp5R+3|Rw1eh3I`sY`E_3|y##%YrpU`9uqF>Hpu z%!BLANM;{J61-KQ^&Q7n6h)?XA{OQd8lVI;PBIQIy_G*`V%oQ6z4EkvagHq|=&vLf zXbWJz6fB$h5u?Wx82N7J(?o&NdC0Y2)!q#SbYQxv%0zB2i%L@xQz1T}&J5##LeZrU zbNr5x;JUZUMEN}d3gfu5ivg_ zQY{`TEaE;x>8+8QBFQe{D>=cUk46y;p8Nk#O_{H~E92Yj!)}?y&kSDhZ=>}ka9VIZ zY!;(*IdXGqB?lUkHo>^K$Fb50sl_g;1J2h7>&T{=_jd7(+{>;)DSgJ(1RcCp7rq*R z6j;1~oQONfAv8nW>MP4PL$Bk^21*2%9C)JnJI+4^v0EnwX>)F<=6IEQ1J*qzr{7wZ z5I(mL=}udF6osEjr zAjpZzb9#5XV$o?~8o|(DhDojr+$LA(c7yvK{RgjX{$52t%Ipd;qcj-Jn<;!&q`Z51 z7-vayn872OG#a{4^7AyvXG0Df`?-n1eJGAghRXwg>Tuj1$+`1l+QK7_t_Anm6cn|-G(jT6^a#go5qM8(krh?yW1^6Iy;oP2va z7KYN_BXSk4DK)MlYCcAy+!C~PF#fi5qZNbe{i>l=0rH1CJ0psaZ0u~TI@^rewj@tF z?xbBauyRXnrHt6a2AWFjdq?|7)+bdRb2J4i{l{jd-IpVg-SMd#Bx zyDF?6On^M-l$Mu>@p~224+l*s@w-q{)xwBGB7-vSh`j$BmB*&>YBwX(szKIpsj(Iw z42s6ugb3e5aGaVN$`Va8D^cAfbm7J@!yl@)R{6oR!&Q~ZbSSnnQDYrzkzOs@$p}20 zkti%`nxc{cMXm|l$J?;y$=_=7m|D<6I92OZ%E(CqpiViXqVQUjR%k_`M}fS)B#@ib zRFo^O6K`Je&BaY-)D*HySBZ!2WPU;K5smxnGBNLV7@+75vSBT`hY*<#?NBDxU zs}h<>hZ>`9{~Zs;4xtgw`4_Q*;-9kO_tBLw$<^fTAnFwOoz!cC^YEz~lEX8xtXq6o z2+g%BC=@^z7Q>65v0z%dxFnk4yHaX12O?A>4lZV1uv-MPwM99ik@gqTB=s)1hi z$K)wyk*FWh(n8>u_OjP}c!V<*;N#dBn$ccbWx|L=UOy*j72d0H@erJGuBX~ndYL;a z*HmCzjf^bkmxY+tsv=QybUBu`iiceDC>`j8QeN{FBDOS*^_QAKb5nS$YJ?bGd!;@o z7s32k$4EKUWlyP`|OQdf{U&Urm5*Pl1Pw)TY)23#>EKV|J9Q<7NG&`H2 zv{_v}1Xh8(7tvE4uyeQdS;n>~#-6pr?rFtCd|%R<=7AMfnqH)H#9u~v=KKvFmB@4-Kb zXEROr-hnX3RjYfw{`vx-+rDU+9>jQ?cNqzOwx6AaMbT}m#~#bAB5iwzhisp8eU+mw zOQ73&x^IQ8$^WRk&-GP^PGYk3Tp)w=goP`R7w($Ala_Axr_mk+o$ z+J7Fqan@rUa2|9;m-Svv@){@|CJh1&fK>4IB|G}MZ8{5E1oUB z$DuWs{^;>V-Spa#Qi`$}{M_0lKc@%W0`&V%vgFmA@GYhK39oh^lZb=M_sTt&LSeI1 zBU;=p;paM95kiSLoDZoKh&jLn6J}b7#6GR9HqC>Xk00hg`r8G1^=5Sfbm7m&-|S?U z??LC8^KZ$L&@D^uX4KH({7;Y3ciUrd67y8twZ)L7maA^g*W)5OUWx}?M0i68mhlOdX3 z3N-ugI58KtqW9JM7)$P%g`+=2dawiG|KAH`R&9kvBRxO&m|V76M0Az=Pd?&-V^RB(#B2c3J8oXhCg;&pUSnF zM!Tj{cBf(L)~Nk9bb@v3y%L@Z+41~G_))(Ve(r^s3(o)_0@D|cSB){E^x2go=cl3? z0EpJ43ISUAPF@2S;Ds`R<+xahI1}bz7q4KzD%`~lxPBTJh_q6P)x;QJT-Jl`R8ce# zPl3}dURMivOa18Q2+yInMB~Xe;)kiAV5yB!C9xrxT=xam0dJ!4wg!=4H0Q`YUH;GF z^|g0#wOzV)G;CgC!rtuMGO`2MlH2df%*?#YhGIVZr6x$173S{bP&669zF;XX*{E&7 z(jS3XCTOq6)jYz9E=@gh?|gLQy`6`I$4p~YYi$i%q+Vk*Gn&Zb+Qe*SszzXk z+);zBnsxul>-WA`-XNpVZ?y?*z5 zFyf+@Y1-r5llo>O8eeXRc0KH{$#}mo^uXF>=rKbWYT18~Az;QN@&T%YbR~sGcyiXl z+3Ix@S^M?d&yNODzT@lqCb2(js&s$t`kMdsPc#3%+A=pR3ckX!0;y*@q50@SaO`zf~(SRO4%Tq80Q+-b zbQBeS4=ztNo&*~i4+)^jAmdIF4;oCbw|%0*`DFkrxhkT*Y`ST2{fW~MWt>qId3hdx z$*{q43Lu_Wfku5-ea#F0m4FTlmPzeqkQr&}xQSi5S#hZ#mDyGgmmY$awobeo=xrXj zg5&p5#!7GcrUA;?G%Ev;N)w@r+Zde^dld7!J2Xk!wvBGNINnUHpqQvtGfe>bRg18U zn?g~_kF}+KT)xzd>I0Ew$GuOJfmIH-{qQi)I>zG~yCnd(9+%j7ZxHb-5jbK!&p!Q~ zeq@Nceea)vJCEnb1Ut}a*PkX_yH3x&JRkdSo(*!?ll z?_tHaOFkbL-n~DIY%U2rJ8NtY`$8o1|1tKJZ&Aiwx75%nAl*`uf^-as(j`bqN{EDn zz|cd8fJg}nN{6&`Gr-WD(lLZI3^Q~ObH?Yr&UxQ+oiFDfxIf%`|8}mmHk{DhYoGCk zVQ*LB;RL(_f@}=FSedG5-`9k;FEYB!|JdrAM?gX}fOeHjS%L7yGT2|ft6gKZ)81(S z5HiqybUnVfTG{TL`=;{#76{i1xycVkk4(`$4v|_pJGWSM9U+ri9uRKbHMzJu9XDHQ zl}v9Mdfae82im)5Snz37fNvVMA7I({oiTt>QaCOI!CP3?L4Pg>zUIS|hQaPyBK37` zx!Kn#+YfK2FS5O(jhJo|RVW%OgU(&78cv3&59Ruq9e}bsQT4;evY|qlAp!Q?(Z(#( zzjZnU5%OxmR8>~J!xB$DQC;GtV11R)oZKOd`@?|!OWgrn6-qp+=ejxA1M7jo?;>6? zlC%CIEzu17YSc=x!i&RNa`G%E?EaOpGEulNu3M|5bgI482~aKG zh;N%+TMP9P)ck9CCLat{7q`7$#O<-vU7^$NcN6H66cPLkWewrc0} zZ!BdIHCz(vK@=oU<1t8sKhooW+tP^cQ$way8S}scovU^ItidC*6NP6z$$FFS9@&j7 zzVnJGAgV2G&7Ar2h%3HkE0xV95Lw@E?m7v1ZC$mINuR${>`n`kzv!7-`~_aX90y5I zfE-=+vxMZuu>m_38;8eyDxt}r?mlcprr+B^?|NTcbl0|9Hy(U!zaYCkBbQs`VO!1# zw6iSp+jlBjieBeh5ubmV-d{Tob%h+>Twl_FFizm&Rel-J9fz)lAlrw@=R??_ccbpX zOQ7pzI#(fVzFBAUpm$p75?+Nc{~Z=E>LZi8EfjjE*Kq4*T_u3$C9Nxa4QZ$z0@n2w z&aSMyO|`lpKowTlEV-hdK-;&|Toz{L?xqw=E~Q}J`G<9>+YeCQ z_RKEL?{cdy!F*TB@6pPhm!0mp&G9#z@k{QF=I*Ej>m~20QCDQ}<>{&c8eRmf4zaw{ z3tYe6K`jy}R>i-s>WsW-nSLDdkk4=HyGhHf%Kd=*wMpV*Jd;S?>>%5(L-8--IvqC% zq*h)LN0nUcA5<<_qfZHytLS(7wrV3r z;C}NUiz4JI|6aUXJm6-}2^OrKCEwfrVPeh|KJR&PWtXtvw5rg{8hrK@aZq3|*d8!3 z7k9h9bAH^&|<~_?$ zUH`@&tXbPb(Y~+=eNix6L%2eg^z!$*{80W?xlAAp~jK-p8l7s z{>jeOWHYegVK2ZG^XCuS1CdmB^ZIP+nGFktOrN)X&-__JpP_3V$1ila(nm;yrB|g& z&wy{Qw+<^??%}oL3*zJ2wWCt#ME7k9nJe=KWIMsUqwh6_rTuikt!X_#?o!QBK(Q0m zaDWJ$UyovQFtNHeF$ev0c>jskq$UCE=M}jAiEj5#yKmpmhEd6-#rio57i!}lHdEg2 zOYa+lEu~Uk#Ci67?VqP>Zz{74Je2q_X{u}Y`yJcuZWK#KPH59M+uXJL|@*%iE7 zzfZOJz%RFPHg$JHttXF=TpJY$@u_})))_}e7g2^>Fxp?NLNr(D7 z7jBka)lDI{sRN_A2hB);GW&q*S9Za_vsOV%!FsE^m9-Z%W$KZOr=~RUd5`=!xGxl) z-_cnDD(V3C{s z0eJ6Oo+?t^^WdUGC1IicHfT_|ZL<;PlN`i|)R-9uMx@>4YK)*ucxk16k~@ zY|AT>KwZ(eV-JUQ2K3Eet@jtd%^FtQ0~geQE#Fx@r=MIT*{~`l)JWqu{L771*&)lp z8)hAE`nmK-KsoTlD&>PJi!fJS1K>NM^}m3_>6d;@0$*yeoU z30;QSPyFynRvs=#RtniECe{hwhW#>|(=0W49pL<@4xXkl^~Z&$mwQe4sb^dX z7e)Fm_rZ96SXO`Famc2R)N;n%suXl)XFSZ74OZ! zfj~u*!H0g!OP-t2mej%CM>5F%)1}I~lc5!>n9m4FM=&~SFd^hbJOnyen9i*SytRGS zmIfPFK;GHkjLap?&MLzk>RnndnC-p@HE0(qoId01n6yN18tQ3PG+(qJE{lRL>o${@ z+~!c=&UXL4>7Jp6ll$e1_axuV)c1 z;m^Rx?7Phdn8TS@*JoZ{bjy9AeSap%s<>4WzcQTXGrMwL+y|Jf!SJKT6|hNHu;9E~ zr&nkECNHq9YR)ID@i`L$abi50oSi!!1WHBJEKOg&RAZY$Wr6Gc%y&`Yb{getXop^xrdtr>^|ox6QN=i`8ID(Z|h)@qtP1!MAIO znpLYC$Y!i~$ONig^6mIsd)7giwZcI5XWN>y{ezWTj7A{vq!{s`r0&iN5Y#gKkU1g5 zI^^bbwXSgF=3FD$`1HoGP+RAh$BF0b*RNY$qgX&EvUh^n-X|sZ?$4YvpKD?y2ET3A ztfF!e^d#|gJ4m#I`)`gF^tkjr%VnkG2pBRUE9PWraC^dStob@+A}e_C^I%SaiO%a( z+wqE12V=cRK`9xA8aU(Nn!~JmWc<%0QcG~T{nb3h)d72jP!R?#S)NJCR9iSSryH4I z&dVU_2D2adQGbW3IzHg$GG69msP2j!-2E=48>us|B&clhM#hp2qATXT956U>%=Adb zC%A{0O*>L=Uf*ZdWZ`CzvVO}4y0)ZLFXLY7rXKo%Ih%2y5S;mO0toOxWhN<{9N_WPE zVXS?DProy{xA)eDwVH{lE^D!doG|b|Y^Ymm`3BIY>+KL9m*2padizT-biAHK&+1{;-kn2<0y{n|1RnWoR0gTq? zk9bz!N+8nZ77l^-bCk@On+ppq4g_j{tPDn>W3du?9+j{#y+2dF?asb8Fj-K}%(7z+ zT>d$}_{_AmnZnbAM)JJ6txc3800?f3y148uBdnl@i zhUWBXx|n~`Xu4FTTjmRXIk)C>-P`N&khhMgwGjlUSlzAV7@s2M^9_L zq(+&jUkFn@HzPiI{oceEo78N#(Wo6D+NyXkonNk^^~4?4VCGd`AD2_G(Jw3@F?tZ= z;@PZl+(S*Wpv2xeQ)RvACBHe%AIN#bJncmvBFKN5^&g9bKXzG-%RF{+%n{R2K%lryzCTvT0k8+2? zBthGk;|8SPVaubciIW$LUcRF!G06VD3oYHI8w#J?`k?hbIAj?7JCH@p`^RBx$2jWQ z$KG^oj4Xo+=?^s)sYN}((3*{`sLj5->Do*KAZ02UcLZ_|(}g?WNl}jHa7ul9E*}ca zB6_jKkoS3CeQ7`k(D=aLJ7@a*RgFRPguC&vV(m2#ziRZVMywvctasct!iLjcm4dhQ@4wa{`qPx#xzqVkN1co&T7>T(B#hAup&g z5;d%!i+#074I0_^05Uw@EoIz)Axry9NRgd-J&pYC1LbEwS+mN${2QM~!UNi}PP|v0 zNaLg2TtzWzsD^T)^O9@2nA0Z@yUv{d0mC|G)!9nY3aRuXpL!1szIeS!>Vey|(@wzh zK#;z1?MxiJ=G0G^NC@|{@)R4G)|b1l=!k4`yxTW{?w;O!5g9-8qn;`nPbg6ax^8-C z*xc36WeA!i7dgX3&K9Yk2W_C+9Rd&Q6PC#;%!^q?!P#vWXC1LkZPVd$1{%&(x0gbV zP=|TXzMqbJ-7=Mm+bR(bDQ2o(!Mi#;Eo%{>EF^F3z7qFT9T0Ey3!08fU87w>4Q%?q zh_u_RUfn3ef|CH7t1(E=kx4aB>bXx%3(njN+lR+OGw9*VSyzXX0yHdzsg|eI+y1y3U=}jRn^q;fz18>!tA?;{qrYzm?BJ_9zcytzd- z`ZhvHecF#cSsv~pnH`thPCX0a+fq4!kpk-Q`~;xGrGVtn`5bB(mYQN)ThhZEMHEZH5(p@csB_BHoC-Mx0 zTn=&HdBm=Fa8y=%B$s>x2;iAA6Bkq57c&v?(2uT1S3n@Ks(QFTO5?XxjcMQF`)Qm< z?MHHWi|WxCM(c@+gnoYa1((XgC!o3d>7YbG-R9;m4QnAS?b&Na4JV>tq2>Tz|I^)> z2k6%yjAqPqd`xC;Ki|COcCxgcu}@r~cN~|xHLU^r;-k@-m!u?OfR|J>J1m{Eq#zfbv)aue=;VA zflD_N&kVU#F3Y(o#PGgs3@%^sjaT5fe!-H;1kUm(D4CfG=V?C3B1pn*zoQkgTN#(X zv^}{N395$ZmJ3(jjkL=LgKEZP4?xx?9R?wV2kupGe9g+^Y^|n!$S~BH5@X0e6aib) z+sO-yg>}y6<>{OCbK>SG^~oB2vqRa-urJ@ma?e^2<7l0%GO^Mt@r7p%<>!sXCj7}s zbk=EK1?#5`U_RFi0hoF->3r543i&;o~ z%f>0MB^U&yQaZKtKKQ0|1|S_4`zcbiv@`-QW?xcIzvceaWGck)_%bDTSoh`a;2?W2 znI%}Kx$-wxBh|9utR}vQlmr9MWeOGbrWI%5M9fmmvPopTrBr9VL-ew4 zemJvOsI8}82KfxGYn@AkDxc_+(gG@R}5R{MRa%aoodz()J5bFm~~P5 zeXy1oIGnvf@&ps7D{VpY$+0GI^2Jum`RZ}-Ew3*u7}`H!V+fg4WfI`&R~Xb3DBnck z8enk>l>Zuk)VCVQmcYU>hYzh7p#xi1kleEpcJUyV2-x<|7m6R8ZUkC-s{IR4$LtrY zXe_8MoZKPL&v1Uyi?pCcXI>OJH`71wx$(d@C&PQlH<)~WtExNUHxpgnMM$UlCl(Vc zADt6a?bvK#U4b0vc{zoZ@9Kuu=Ws)wji&_g#x)5W0wz<3C&wq_;0rI-kIxwN9+nni z6@by_wu%!X!RoMT{d7S8HHxi5J({J)#;om>1+>inHIKvWy~H)yK{HluapR@pEl+~{ zjeQ&QH)mwBEMc|9xEM$B=%;DEPPiGZz;fHws5!Cz#qCC)9`n zWKoKdPWj7p%Q#@e8r&IQu9(ty#100We_!w87`{1hpHLWo4=7jl>6Ku>Y{NMvo`1NI z+3~TiTqvmADa9&KL<2bV%Z1PnX#|Zf)AR~;Eycf7A9yTXkT2pikwFR@n zRs?;HTE98)`@G^q#!)*mxN;{#-SxcI%C~;K@WfrL=uZFSP}Qm8GMq+Bckx+=tydId zK0u^c%e;f&SiZHgLNStGk-$?nk}st{XA5A2r-GjVV|Svm*dvqswf1hCq!*t!o}1R@ z)s9d&!^f1g-)q0}o@(h#j_PWprIrG?jaW)#^*!tO)SagIGD#x7;mK=q@e;@Aj~!@M zAo!>V9VJdMf;Cz`9y(ta}s(^$@ z))ZwQ2eW1CTpr>)!DA?o8-IJaif)D>-wX=@;ajdpGz48z7bDkmbZE(!eMtyOHq>rE zv+=~L!lmL5*S1mKRT|JV6K-heO{ikk(t>05PWrR$-VAq>wV|w-)Wr<{;Ib-}h4)DZ z?stt#QKPrNW{eNoDQ=wJzt{Pi6B?>DC^5?`jIz33tjU(Fj?cT96MVagYo z599n>#T9=BN|3+!g$}$LGT9bT-c@6;yOYI=kr5lK85UkrP<{U!)BL7)lH-ibZjaI5 zFNUWte2HLJY#4qSq3NZ7V+~{hyR?d z=soDTC;g1sxPtGGkW`({Qy$q90Lkt;m+j^-N>UFuY)2!R|7C;Yn~-kQ__=mEG-D1SDDewteVd~6{5%2CEA#-QIzv|XttFy>$`wWm|do(0;I2}nyQwo-ud4? zEf!FxUmddQ{l0sIm*-^VwbF?%Q~BBV1mH!J!Pr=d978kl{J#R# z^~rsaUba;ub>Cd%7_QrFSq@pPL41R+^`E|J)p+ItQ3}h`guI=`huxUfn_~(V=X+ymLZG4Bym;10Ch+%X4_vTn*##uRJ z%N%IMi2!okcW@xd@t*$@YC}2QLc98mqxw~fJ|oO2P5i#~oII;@zIvDm$ctxfc|>{j z#8%H^{EIWx28BM)$nJJXWwIORqZQx#9>{tp#}PRUH?giwr4iqPN&iwm4&+YJ3B0|_ zzD0w6=c+^ZY{}htk3` z#nkEzEhfi^N5U>*0Hw!2M5ORt)Ss?mxCH(;Oo}qDYq?4owVtz1w!%C~#W%p0M43*q zEis*cI@lR>R2z#KN`$a=X1-|)YbOwwsYF~X(c z6CcqJ~R8GN&&U|N0%l5_xjSZurM<#pI%owRU;zHsos>%V{;&DChY3ZDo5eQUzFq!@fCE;L4G{62f z?!SgQ7;Ni*p*@jFfU)bzgg8N2-Yk!0$kS)u7)d7*(&rfGuw_>~Z`x69_%D6Qr@e=i zf|PC(S(Z!Q1o%pX7w5&Y`lfz;M*PwPV`+5uN`u%;`YLs#{B)EY?A^{hgZ}srD~w*T zy;M=VWfu6JcE-w==ee6b7n1{EFgoEAoi6Ir{KdYm&hSjO+#;8+SJlkt)Yy$~B(zi1 zI`h?xnr?}wj1t2L=^ND-W_FMNk`&lZ4&eyI8q$Hjy&W;sOr`NqZ_V3YW-qb*gC9!q zjv}fka&Rx+XOrH7T2+-({?`L+%2EFBPcdg3AX6PS+?Iw3vx<%wNhfa1_9yz^_U9kD zQWIAp_J`(wvoF44EI*mRYOL*}WQv)bcTfF(`p%x1p^ie$ELY#KCFBrB^@xxUi}vbq za*A;WJ8acaFkzT*u7~IyM`0&ur4!f3>5DDyJ7vhXhgeU&dFZkI*06FsG&Nu6kc1N< z^;SEG7czQiaCps1WFNOg4imHYDwDk5d+y+16K&;E;=%t>>D5g0N9v{sl@yG4%OCHc z7|1Ke&(Y)+e8M`pF0dRPb~O{7U+jfpb-gUc-dqOn-}$)_a{c;P78g69Gm#=vS#;?n zm{@9rIb`G9R6QX1Z;&zkk5Be{hpP6!$wVRlArlQJ$M}=ekob+nM`hK7L#q9}bq|*T zgm`$)x86-SSzK1X3~b+RiWyi{70mTM|BH`dPbkkCF{slOTQBXnB#6ws(DjsmuKcTu zPlbY6spHiVp)&i|Xl}}N@l-lJtjOYc-Q`UDrrZkD(LD1r`XfRc{0P9zXRm1Cb|n@9 z=DLYyTpE~?(QyrP#F@7pf7?k*q?Q32OJRS+9qrl%&O@?i8lws?NC9aZxZQ^I>egx0 z=abPBDw^>}&FgJ$6u6yAxF5%zf1j zBgIJ%5XDFq1$$bKhOxwMRLdJFL8G}nzAGQEa}rtD`ElmpcoOyvJt^cdO#Gq=2+dRc z>C0OoHC+(aw-s?Ok3-ZGDIC}pzrDc1TJ|xWt5CJnm8v(lOnAN%i`f}D(Y0ENeQX%~ zcKMM?2~k~ifOY|ob=cY?V%aWcj0zWRtsMrhyzu{nlM8#baQurO^&2@DMoMz1D=ggdtV&MN@HV2R_l~dUnlHS^nx!^$0HraSFO4*uhx9c{=>e}_Qc@-k z8e?Mv98Q!eZ(p`76;{uUsy0zA)soXD6&V;@nfEv3TUtbtJ2 zf#-%m(T$hon;A3`?~E#Y!E=KPfn=*k73k7{u^aFu%fnZ8&Bu#n#2`Me_XSD`G{tn^ zSruZ%9Q28`3wf{2`=JKRis#IbqQF#dy7o=#mVV^T-cAPFP^b6KGb@Vi*3FE-Z0+`= zUbbH75!`n?1AK5heLroKy`XU3!361c)P?FDmc8WHCq6R?3y9i9*76TG7>4q{`~0?Pk+(O&Qe_v!vpBH?R&MP-giQ0GMnyX(Vh8$H=V0+#C4NPvp( zVJgb`(q*+pE@H`SNqXPvE)qK5wrhvhYz*8RmTBB*scRx?GLBWmB5`pel<&N zh%&cB@U0rKF>rgm(MRNFw{qk1V7$>RE3ih+3tj1Ri5gmklV`O6ciwxge*qRkPSN*C zr-#l(G<<*+AYh;6FKVjnbt(>+4-t@v7`k%{*6A)?tU zrHF{cqxWL^3ewU*0NC`)b3adY0FCmes*NKX=n}5CVDd(H6FJ8x8M!M~Y*l-Jc5zfR zIn_n_m>=5%5ElQt5fNQ#iy59aZTakQzPK+Qy)28^%&r9I>hX!axi7f`iWASiWpJEC z#uW`bna_2MqGPd<$8r8$Tekn;PfgL^$Kg+o*VF}6Ps`((s#7WmpPO&Ytot~PFviDX zF_ZcEWj(wjnG`Ea_ zP{eQxUC4;_+iJ87jQaBKnbh-nj#kfOv>fn~3VaP3*7_8(dbCyqZgG@{P^u)i0m#(5%$~ccW z=T7EKcd-c6zf$pa*^;TNJX%S$9u+gh{3Uie_VNUq*jUChA{>4st^RHU}d2+$L!ym zio~Xt;bl2Q{IRN{J{RKAPe10;KI8kdxgIIwpcSUpDu2~C_z3@*PSalLy941wAqV??Q1hIL*$(v?C0(M)U{%~&!B)}f!y`FlsADR0ypVS{tXL8 z+5#ZbLN)J^w-oZ11y*1ZEGt4_Xw$7H&kOI?|4G++qvvg>)J^S+c75ig3%)vsK@fh8 zbbT*GuA2~fsbJ2ZL)rT)=jOmk7J1a&8?M0A_B_aX8FCkVpazVZNDuK^QT463if~6* zUA?r1q54+Q>i6HqA%^p(Bl*yoLyN1wh&%zs>cFFIBtqD4oy>A9DvqoWlv?%m zh!=dGxfNKo!8bq|-MY@iiU8mCL$TUIDs1{yr*DJ-_arpMzR_r$<5Cy?BW3*@f6($$ zoUbqzbJdU@D_Lh`^7Z;*}7 zIMqm~kK*BW5U*s!aSx%^*mWC85EfsDp|psuM}8%WxoqnyRE5&kE+BR=*5hIOPZswF z@=^mN4=&bhmQ`>CUj=twFn~rb$HjmJ?uP{QPWNnTn&VkPXM*^N5qR2P1W+VQC)_MrW48!@^X_}=&8>r$3ofro92F9XMeO905?(h+TVd1Q`eSeVeDRGsfF zF$q!jy@X!JWYlg50MY#|UofFqDSn|>yiQ`pe~?@iu(<8YdSmw{&snFAC~-)q@Kbz?k8*Abz%axqQTaoCsvX^v4drovX0 z8$w(HNdrj=E;mFR1;Q)58NdwcubsV5-UtO4{LY~daJr(P8$85*^{#*P)K12+O@sy; z?<#qj5r;AMJFEpG6n>Cc*ZxchD*5_fgNp!&qY8A6VkAZ%6}bMF^?Bg>qjJ zP(E{K{(d@TDNwie>kZJ$pU}82(=Ki5o)A9YUE8hvOCTlwGX!6}@zF2R$Gb;r?>ZY* z*LJ(4>Rlxg$DD@UwD|HC0-}D5bK$(n0TST;!IAgX z&d#Zt#jWE#?g|s|kHS?Uk{s^0et>@FI}B_sOwSH}B*H8ebnfnRiQaDn6}expAh>|n z$TixN5?DF#is0(DjY6=g3W6BE_iE*eVBr-G(Yb69fdXufUMl@;bhsA)p59)iCX=+t zflu^yt`^ut(D|z`{Q7-h?}2Ag*}(yAzxQPw?z?=m zDBU0<7r|0gad(E;A4jLc%+bdO5U+&Q?+0B86kO9g3Z3yJRD zwU5P0Hc^=JK>E9nBHPbV4~mCKKj)FZi4z~Z*0{qi`(icu1(vX>1fK{*dx(1$(^{OV z!gx)h2DOCb1R^|ONYf;eqX-&yeOxgrRZ5;5Ucjc(&S&llrhud$iLVqzv41?R!lv{T zcAaVmT>MB@34OyC=fzlIYw+jOmh*d_Oq*CsSM&J!{_YKF3~|$f=MS~YJ1WgQWp5hS zN2I-GVm6A)z4Snsy-Y*z2AAX9&f!6@#-}>f>ZX$31z)4R1q>UYKneOU?|>B&Y6_vm zt!womHIV(E<{d1NVUKNri;i^yfE{IILt^oGoDBxOz7alfdokG7U_nA4XH} zP68uXPJ?ZR#=)>_nM!nwc?&@ZYUw!qy7S+MkreQzzsdJ~h34%Ptk5V6HtPiiPo&6Z z(+7~eT9zyyK#~1FF(9d2783)W0wk;KKz|Kp*8?n?Dx?@A0J0tI9Q?9kHk}c6Dtc$| zABJy1j*dlgvHg)&bYI*OHeNZr@f6vlH1%V>=r9c>m+W_P3F*s?WBMF*0)|dF5g*|eTdn`$;4qlW|K1MsjO+$2r)yMo# zh>>LjE)Noubm!>{P}y9ebZja=j9Wjx%4w$N?T=#lpw?`}qR7dnQc#pypnO`J;49U7 zvGu)H#mrd%5b#T>t@v#B%{TrwVbw^Kw2jUag{5=hwiP)V^|!*qat0 zIt39X1$MkVN{1rv&P0Mxb09YGMk)cQb(8wO{}EI0$%?gn2#f_?xO$yzozdoKeHER6 zcIo(9iFCUkOYpncgCi}@sQg|p&%y4yvl-QM9HUtIDNx%$`PGXBjMDhmg_ROSyrYq{ zjB@lCnYI4`#>NDWD_?I{Nc~{hfp)$(+sHj#=vKC?ZYH|@r1t(Z(hZi09?zBw8OtOh zQU~5t%7;Y_96*YQDyi%(PEPdp5LcgpKS3g>?$yOZY;QMIQMPxxb!Ysk!L%;_5w?In zl9H{;d#0M^Du-{vrr#2Fw&_qs=JkQ_@!2=gy?5r_>00^atDpb=NTd9w(k6|?8DKDS z-Zk%M=wVev!S~|+zM(p;F%qjQcd;d#hnY}rL?UG~KmLxI6It|Qp2nj4{4F|+)=G@m{V8K_rMB%hiiOPXiKCjlbki~Y<3DB$ zg@5GbTA2uH$xOMZ`BOx+(shoM511Q7Qya3G)){$rN&`>5ko#^yhXTYP*Pb$@K@RV~ z-c677`OnEfK&*8zY7RI7Lkom3%^$IhS6_Blpbbu3gMu(M0xIp4NHg0q0Q1*3P7a{I z0%iP#!5eI?^0`dpXK6rGZD_)(U$#yEOg2jIdhR>!iNoFXspOB_t|QuR(~*Q@v4@x8 z-!C1+t4pwYGg$RrW}PoAec@BP{R2E}gh&PVlWY{6tl0ENtsZT`z5o%GAa{<+!N)|y za_l47$cj5V^e&Vb?#G|SmD+Xz)wxe{Tym+{JYdCayB9kDyE?XwVq!Dwk!;49WUA_j3F{NPDQxoek2=4C&C4H~4{P6HCDej@#Vvlf;6Bs^B9B0;72 za~p4L`Z3@k!43{ko6q^FdTDDF(nlk#%2q9ba(hA;C2dPEMjtsz=o-QLESW`K#-3B? z4sg4-@i4`c29$vXQs;b_@~M-uNQxYPJ2|+lOnb2MagZ4U$w!Vbx@V+uTdId;(m$rh zoX&1q#yA7O5r~QQEqGInjT);)@HZUP%N(m$H>ZL_N%sOrT~a|3?CVP{5OqmsMRN4k z#`H`!tnIHj+Vc{EMnJWS`vXtm(&t0t`xQ4MNM4RTww%913a^B(ml37F`*A|D>#<8B z(C(WLqjV?;f+eCZ<2utCbJ}iys)Y`RW<-SpE-JWvQ+YLtpz2aW+|EF|p@nde2>Kfm z%a|GDiykpitQ;^2zM$|rS;U}Fv@z9v|}3*nH%5Zd|be!t4w7^(cz%m1|JF(xB}bg=2R{Znwn zqjKmZ>O$}C^Za!X`-VgIT{+C5^7;<(P?@x9K+-t0d4m^vB$H;!vaMkB(O z_v#O0u{@cR3?f)2VyG-Ol4~&nHA^g5oYG&H*}}j3y|q`p`Oy04`P-3m?lIc@?@vTU zar>CD1(NQjkAJFpa0X14;l?I{K0gYRF{M@2i`N;`NA~mM2~)3_#ruQcRDFNtg?1vz zIqBo5-s)v0>qvzAiL*Zpi;6qnoOeaM=b`eLFiLmYCV$`|JjO{BgZ+fv;g#sIz$3J4K>*XrTqk6+dVdfv#p z?`Qzwlu}gY3KP64&g-DLhUACeO;|c4O1&juG_`#vg9WKa|7C+I>m&wv(FR*75K+5z z^fOxm$fKm$cghT|M~uG3ZIFvaEDUxP}d)45DW6Ee{g1?=2FSf*CX%NB9$_GzdwXy zc}6~IX8U4bBzBp($ ze0Hwg*p81^r!BpE`+cD2`PqT@86o3Eey^_*$Woxe){+7cxK#l6Aw_cP=JgQt-fBa8 zFta*vP(Z!#=3!dB6mB=>L`V_1G;pIaguckn_o}k`xTe-OX0zhkjzW}gtiK+nX3z|y zXu~-tKhB+NeJcn6ivSqmO-1Q&OXlJ*HUceB2IUo`*}fdv7*CuMW=TzX|8yApsL<4~RE*Td_qWOfUISDuVwj~*UK ziuq9DQyTmxbv(u#r}AGDdfavMc6R5J)Ws_%_iy7og`5GKU&!RXc=>^7;L*IsQ*eyQg?UfpXs@x!y-q zH=<21J<%$+>8M;u;{-zLqV{`{l_iA_2hiOWpWB2jhXd|cFJw;T(Cv_&9rS}0n$<2O z`Yu=U5S4|LYQNorby7o5!Ix#^1sx6in6hH&qUQj7TcPv;)Qa*o2mo#2WTKN^<8+f5 zYTOXFifv+9P04hLe*fCj=^$s_kS;|}+4P1!HnjUuUKd5eIVQ_Txid#r{QC9V0$Y#d zwOBj1yeY9arsd^;Fq>x`y@U^mI4(>D-4>Z7lFdppzg zo?zzJTfi|dH?R%8mOrS~ymwImaFhG5uH2CMMqAKvo8Q4*d6oa@{*Jhn&uaE?WBvGO z30xd_SCQ=>5_y$VU!Q@{Dn7E69$ud+g76})KOs8Pq3PEr7e~tJjrhX0s1F+Nz3&Y-sG;cpO9S-q68hIG3s(i*=J zQ)+ohQqSs+&#mlh;ni;g{X+b*hw7TMID<4%FD(YZS2u*mZ<-WC6nEJh8Ro!mqD@ry=>e7 zQ-^(HK6ZH1)~wv%Pao_Kn*@m#ayEX}`@3a|3voI^ zshY;5HhY-a-=B|bW-H1{A5np9u3sxWA$8DjpzX^Z1uglou!nMY#SlTGHqYtJ8jSi$ zIEZuX?8YAqeErZER2j-KRl*^hRvZ^+rX;2Q6`QZ~hhOx_<f>LFRDat{M69lzqM&1Q6eahZSlMvy9BQ8SE{Uti?0 zLIAykCdPXIF{0?dzSvfYqD&h`jG2t}E5K;R<9`*4KE+F1Z$I#EQ?TexpHFtK`4$S0 zr7y%*pGfX1xR1DyWHo0@k!aTn2A;1_+M5zN7?K-PP%22AwTdc4-u?jusl6MPa#gOd z$VD7a?7o#iIMh+$lEDHJ8x>gEAK1 zjrm>1A=-fdgTBvT#+0TEv)Ho!=dRE!H8aEibj(6rfPVPaX@yj{P|xwplH6it zba13>{;hHz_G?wKR&n}~Ho*Wj6ncy6A??WwqU?JH@gX(*Ati_)-Jv6-TQ5pLIs_2}1MB*3*ZCgL`}51W&Y$qS zyN@t{Z-GlHCj6!snxXo0a0P{*t0mSqtrs_z@4zc^e^;DAmm< zAtJ7q}xQ*{X5&W#YxMEvUS!p5TP{rn1s3TLjN6^*?|6o{}c0XqmXmyl#PX6 zG^Uh-Q+Wb+Qt~Xg7gXpj&>OX<($>UW>?EIF zw>jQI;=I|?G5YLDe4D<~rtB;%K=4*sa#xdjfiR+OlA_6)U7%LiKRWFHR97?V?>gQf zYt>=|#17>8iFphRS<#~ECEtZAf-HCFRwX0Jdod<=(@4|E6(fk!Kqio@a2vlWx-L<` z6>NFHQUv+Me>)1?&#!_lP8c@p*WRN6( zUCYL+G=;5q{)T?YF*O>joP2ItBU4?##i-91O& zzx?@Cd+jK{YTQxY@bHK8g|T&uCehOl@<}nDUs!$3a(Mmu4#Yr1w8A3~5%{!)F1eoP z22J*)5iJ*KhXoK>YXl?Ja?X4a3>{}{gzXxPGy%cF@8X$?!UD2mXy*bv=bd!)A_a*R z>&9DPAAKFfR5wr}tL#;8?^);WhdqdlEJkC1ipRcEME6#rICiQEe*pVGV}Ut!EFcv)&bKpDfsQtXR|Rs0&@%9H2-DGFWvW-pErc2DJTqLo#=-I{ z2C1GbqH3mRI?v23^Rff*B(nRjz^I4u+p#=k=y9xMBVA-&@S9 zh*V5qvA8obGHtK`;3#4v=!mZ1RS08XedCv`I2&=850;}AV(1$DwAOWGTAL{y^?u%9 z942pj-60(8k2J`J4e&}dkS|EG1b6^CI^rwvg<

    Ahd8n_n3@1QO>4t{AlcoW;Y;MD`>mg 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 z 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

    1_%3(jLB8tMn-qjHF4D+y0D;W zh=REjNhA&np5@Fo7R_wv-9Aq_p*Hn|w^Jy(%zvMdo-!I6F|8?Ord}zfO!|xWZfnf9 zMaH&5O>Vc|xwIcaBdpJUb8LL!@uv36xFUey$p)(@#QYmEh_3Sc$*rTuYG=)&-VYnV;&duoNsyA<4?FoZ z>Es9apU?8VgGPC*K9Xv|H_!6+*MHq{lJr1^Yu2);VRL@2$I7!z2QGv#T$5TLFg zW5Le`^?c{+lF*CU%k{p?A9(MeZg?JkbFYMB=OOhf)@+}j`EwPGs9huOQ|a*dO={N& zIaknAS)3W!#AbzwZBzBXo}D((d$IkZQ~I|cNuSBDKs)#gAUj0g-^S0%mNz82Jhn*s zxzbG_EPlHHXufX&rZJQxVB4;|&fsN^9s$`!D*!m(Ld<;D5mx&F+QMAdO=0kSDK32? z-L_5WvzKv04#~!e@$mygVvl_Dz~jjH*_3W#dP=_cg?OtRB8%UvR=#z=%YrO~Pl8e0 zqVW4CZ_S~+V@nXjlCAmGK5wOj2B+IIRlYC&4(%p>aem+Me`t)?#iegn^8tVdOHJ*+ zA;+hh*>u7*tgc6?j!vp{U*Qnah3!TLJlK+Asg&c@13d&ci+P*mR z`}d{7?tg%YRed#!-AePiNH^PEdi3C<{7S1%>8wz@(L(|R4H*RhS0*vJ@D&3hFb$GH zVs8D;O@J5>PLOR+FFFnMFnv#10qu@Bi?Ju9O{&T$O{dp#7&_vmny1#?Ok7A?-@Ew< z?_4cU4pErvTd#v?Q_>veo{R}ivmWSQ`wrURr@;KX-*PgNoRAKN4oFmFbgs$({o{;$ zrGNzD8RAy0?flt=^J2=EI|AerQHadz1>5CeAv#V40_UGl2G@Jk!Sz?Tpu5eV!IgtL zxJsXUw!g?lhZpc``&Hn(-7`YNQU3z0Pk>$wxchSSkzi?IIeoF*VLK}q!2;Pn^v)oX z5i9O!uJk5$j%XY-IpEJWfEEkgbG+=-O>d35f$P17=jPK0flBOmbZxfccD`L?%ERuII=272u15WT%?{(@zkr&zQW?G~XKgQA-OjAnmW zdDT53*?2wnYya@0R)UoDYM}vhm!5ga>YSE6`j!bFo&4@di;G~;mIp`yda?Q!+IMy7 z?XuW86~u`+spM8;L%LJA<9FrtN2&v$CoafB6K=Mz?0hjI&m))*&V+`AN}OtY)^smO zyssVkxnHuBToV@74O4wa8GO>I)waC+eDj}b+xt(oJ+2y_{$Qs+7clbtcCgB`I>ZO1 zzl>tu;Y+h8(}Q}FjNKvXAPx&hS>#G5R-&wh@^~)oJ69&~TIT2su)29rj&cxWqwX${&Rbw7>pqgw|hXR$Gg7LN0Y)tQHKHuWYPrgB0NMaFjrXcZ3SixTNAZ26mV%2=@~%cK3Y;*wKij)*B|E7qhTd!qUW zq^y!wvv&a{ej>**ZkPPTazga#|6?Zn^Vta0&z5a=G0r!UW?NS~L`K&;$H{RcaShDHL{c>fxEPsZr3Gei@R{2)QKjY>e*mq6U+}_ zU$(^+^HZga|4w!ff1K87uw&y$0i=OAa2 zygawsS|3VZs}|v!l@nXH2_oH)tLZ3X%hG%zaQQhkAJ0&suq%3D@W zBfG2%CfL;R%P+Asz*wtL0b$tD&g2x<@M5Osy9Rvg4z?Q+$*il)wf9WM(bR$?9#?k& zhBgMEf`7isV-F=*TgP{Eb|;h*4aXaUD^;^quHXFpD9w!~8O~nE zGd}&@9Fx8Hy3N~j;%tGytjk4B?cxjnkGS}!y8b5y0Z~TRa~cu`6+;$RiF-w>S!oSb zYoB+JP_H~5^n8rWTI!T+{-D&(cJyQKF`4M|o_aa^G<<`vh8Eu4kp2{@^dtT!{e?-f zi|9yR9?p-jw^4Fw*Tg&lA;``4^()nmOrjtQLHL(m*f)lZ?k7gMWm~g_45Pp)F^7Da zL!_o~y<1jTZBLL{WnEsxiI4ecl7Xs0Ap1LF1Rr@C5U(-seAP!HW(qk3b2P^`LTSVq zy!s$t*~ZTlvKj~6^d2YjRm;r5fz%l`m0DFx;?I};sj9U0ROaKPcKFS6N>x3YdHeB0 znUn%O4Mg6#it)^00bJ>)Gbr+V@-Af{GJFo$Bw>bl;y)DUiLe47EQLh#i#z zDblH^54ytPsi}Q%(BDCZaUIh<&}Ues^S;~3x;9vNZ1^nO|JP(KM{_6|Ad%KAN@Paq zPNp~%NU(s%nNP0q(D!OaCH!>}4-dAre;pdSVy*O8D7YbC7e%8V*(vl1bdx9bhtVKX zqr4o((ZfEDV8it#ayqVQ7JoKm_TeI0o4dTX3x=Oh&}$Dmr)$bbJVI&GYoF|s8h0jE zZ~vgN$#%{dw?GyP=a4|9ziVp@aO@eOCH(PUR$is%Za6rztrV@c5!DD9dS+@_-q)P4 za>G>IB}TtDW{sfe1kN*nGF#-N==Hr z;Lsf)GR|!3u_8Z}K)<1XjzvJ22_7Y`PdAf?neRErKYYvvE*wZxyI%zEI)qMuEdi&gT~LONLD&m=S&7Ln>+@^6_KDv#mNtYfUdn#Mr~30%Cx5_~If(RP z!Zjw@*4Et$NwzmYpD? zSWz9l7lY~k)G#zO6fJlXIZG$V6@CR^cJhflADw!NY{WyYm1XB9!)TmIr=`HS+E6Ag z3%%p}KK+MPqrzzS`qx{tcVoUtTHK7o39T#I6j-_=bkA`e8^z6kbOfYt#|lUZ-b<@{ zB8(`_2~Mk(?qeet<(gNg#0s|)8hy(9>ZQSd2b}#d-@^XubaL^!N;$7uU@(~lE4Mjc zgrW?16zc{>9r>&?{OC^!lBN!Lb_Eya+vFJ<^8{|+?%;M2RD}Ix-=J3*WrwY`J0q2z z$nB>+IABCpB~5?wXB{d6(``Qtvh01IC?b9oANxDBPpR^bkrmD7J%+x3bWFBqZY>cp7$j-m5b#*yVFjXJbycriQJ^* zB9gQ@cB7DNG?_YD<840utnLDWar)nfgh|Smd~NeZ!M$tTrh~+7S}SkyU9+d6`_=c* z_5q$tzxWw6=B!{WK-w#nyd&)exXNbhNOnrX#J{S>6axH}wviD)Ct-CQ7@8b1^f&Mt zdYC35EC+B&?s8!0ArpI#K);H$Hz(F%Qhfb#Q>+rwU{d6%Ch7+hPG#8#3{IOFAaeuF zE4N&yFP`>NBrghs=bm+#ly#c1tD2U}SQ$Qd2WJ!<|WgzQD-NX9^oI7Y?jZnSCZ zFnl7FwN9LFcE1*vmY;(gy#LpVD~y$ESz_LAg+R#PozF2n?M6gnLKD41D(hPvZ$Hsn z{qEWGD4#V&vq%I0>=J305kU@Z0u|9KKlQ==nuUs|x;rY@nN|}oI{1$RuIvDNbn0pD zBmDY8!wJ^64;KrkqD!A}p?H9{qa#J~zlQ}chcjX5gXXVCT}o_>+2s+!)9_Edbz5z{ zY^(iY>Nv(RPn$+NMCfcUonNZO$uQ}SKZj2DQ~Fj_gGb#i=oXijPm=q;4))sX@yk^r z7Up)|#x$wr3?YTil(~pvI-+1|-PC$&nB(83KlPin>eV| zH1nQ@Y4*VI0bRLyK&slWIUWA+%e5{oqm|xaMUf+?TQ4T{V+#1A!Lwg*T6;3}NM*dx zk6oavUboQ~b3xgvNe8jEvnUxHYsRRjp5+1a+kRcqF4c=}*ukU&Nym5|sP^bbgE_+X z7nbo`>_tgWymB0V3*SU17YsDuwxeD*7XHO+?OEm4FY|fY+|1Oe?|~6!%2)bsr)GyK z>y`E?NsTd$uH2)0N}?}EVpJ$HG(S~_cAys8FUG?Ke+n&vT4<344o+>l461Vh=UVQp z*&jz=?-D!*Kwlx$RhdRyd*n#;o9HaY>#iR%+=WvWj!@fsKL*;THJPb{LS1SzD2Uxu>k?}7CQ_$ zT3vBNG;8W*Hisy)Tyr|38;yjqGD+z%W|c6|N-2#Z6Rxc+FvR#NWyJd*H}9VjFOoXq z0d=dCZ=Ip4Tpy}^J8xTH2Jnl#M}?RtzDMvPymye}w%qj5KC5kLRXO-A`W(ZHSKL~1 z5QVB%QK`8Lc0eqv{iongBj+Ddt1@FY>XtTF^y%age)r}A{ZQ4Jmp|PsJ3kjaiWQA0 z`XI|HhKVu&$xF(q4M1#YoiT87X1h~3) zuTOwTXupafKCOwc7wTC1AtXelKf~pDmF4xdXPVk42LLw|N6-*7D#L4JA6-7oJlz=Sx)0xkk{8=YKS3Q>utJS|V%I zVob3}1ZWfpaM#R!54R)j8L~hlyV>k86?37uNVxUI)v%!8P+x~CaToqbmNVs}a`F#u z4+PdJVpm=|bt+fAYrky7$ev|OYsPvxudpSK3E-DTkA(GtPgLR8D4Uo4NUDR3wP)ZG z1eI=}(WGdW|2=5DgqO#c%{w_vl~-@;?>d#=nA=!Ld9vBj(ghasIuOsJbKfvLn=`u5 zd=IUq&T1s4^UBOy#oN%I_Dl2qk;(TqO?91Ziw36s)faGK?qMNSpP$y)7b;Q@d9A>B z{`?C1Q4w7^?J(pH9G?nG7 z>%~XKhfJb`4Z#BZ*W*(BUHq}JoU75Ax}TqVy1Vh%+mZdgEB{Vt`#g!#2~Fx0&?cyr zF#pPnIn05RT^Us27s(pYtazE|6ac4iQh{iE5O74A>~4H9OX5`Ly2Gd2lNR(MgQ?p5 zEV!_pDeJ6yWLAE6VYZDfFD}IJ?he;1hc6hE7BrR|Q^eB<9rzh=wWvcuu+f{`d!*wk zcb0p*K$!4^ax*jjPd9T3^yHy9Weo{fW#;?Rn-%!XMn>$dvFi9(I6u37^xmysoLrIu zf30FIT_^LtKDc+FLfpjIz-~xzVB>4CiP~{cQxC#pP-!&LnHIXkZ1}cf9jM4Fv!d0i ze~y&3&3@Q@l$WG9B2mD*pgzC;Q1;A;0Ihm3dB^dP;eZ_W%c8>h`m|&Vr2uiyiLChh zEB@F-3G`cD#|y``hAM0H*0J+AG!!O(U=D-3xozbgb^6Er0LJam__lIIg_pV}mTiw$pcQ+fN>3Hp0Q6l5SOP@yD1^QzRw?LIV=egO(V@Y#MXrXRX+aOngztj18?3~fQ zRnrY;hbgCXp`NZQoZsF0&*>1<(;-uyF)gvtt<49#T{@z?@5D~SfQiC%-)f8KR_lBh zP5YuhE*-*xe%F!3a>6P)Y5Ed+?B42^kmPUdN75va>l+=S=u64QPkC~`#JvQ$kvUIZ zA%FI*pMFBlp1_oxD$<7#{8vb+gYcWFV*Z*GLswnKIb@n#aqKu*fJVEP5tCluMiJEy zXtc90zTT1BXLYIlXw!%Js+18Ge8I~R)xu#?8+8VHJ7f3^A^pxO@70DU0^30}G20va ztrZwE_VTk<|K{pZ*VLvkAR_#+%C*(A$(@)AKga{`P@{_{%ZHs){0DnY0ipg`hg_e6 z$h3Hdo`Qd%i-mpX|{Fc~m6!XqH(#Tic2RoxRc5_d#S z)iJPoIzYlNb*#+mTiMCb3v|r6M*>zgu=`~M=2DDxi4{>?S~uWPod_qwJ;gz7{-A*I>4wZgjvQ*v z6N{9BD!ULeG`G>IAB`rMjhu9v@X>ORTnn}fiGz@R>^;)lIqrp;!RKMncUQ_^Vrb~L=z3}es(8JI;Vpj)jZ7Q(wUC0Yr7m3M)7WDg0>{Y{vG zcy(;AaZ=bU1_mHBiN%n`HMKENQnWstp{n+voCOE9Rpufa@})U*TqpIF<`@NK$2(PV z(7p#0BDwY5M1Sp!3PjU|`vF||6++HQ?|7x$zk;j{T-~UqS%T7Y*%EYrF1_EyBv8IP;TgdCDFeBlSJF~ z%8>taL;a~YbXBLaK3JQ>6DxQ7c1hQRNT?+ERg=NW%7+eHk86G`x}t6jGDahTy2}Dp zi`-;_%+0OPORSn~=GY8+o#-!PjK;D6x+7OU_K(SQ5g5aG<9Jl{EJ)-;O~Uj?GxM@& z+qk=;*JHalJ6>HAd*Rr4vL<_0-*A{1+3Cu zyW&v7UI~rHKe|Lzz1Yp&kVQQ2ndfHs-dKJ;4bMv5^}K&CZ~2CthRYSKob*KsHaWIzA}Ks>vzUbuTOpND&j@Aug{!&seaez^mP&v3E1g1pn|^r{dqU~~2W zu1R?q1fi+*w6OGIOh_xIDHcnl{+A*>XywM+;NEbRR4fu2$<-9(?A(Z+*tuQ+_Eg zX-toQW~&^?u=UZo*Nqabw88r01OU-4MnA>z5Yz$<09a!lDdi+71#hFX_l#=b_Rgpp z3nLmAkTU;!;i=BE->ys1IqW>DMexwhvH*p1K~EC(SLJ8}HqCeE^Wz1R;d}{oN0X$V z`0wUe*N!TQ(Q=*uLAS|ti>`&T5MIB<4(@xZF|Ou57jfH~lK$J%5M6;29 z$6d7FZ#nFIIVwRuY(LI9abJ!pT{* zVJjBuf{+JuVdiXsA%Dv~OtjR5X$#^oD#gn6Mw3(Hj#sDbct|a&S}nY?Q2{}L+qKV& zbL@;Su}hsqA1HW{TN?v{2%Ft16w>&{zmvuka{M`&s8k?OA6>QN^pcU4Ym%<_GMA$X z)D8g`bQQHLMxtx@9=QrmaLzs?6Z7*0T(6izWECf0_sA+VT42CtS^NOcmdpW-(oUZ&FCEEN(eHG6g5@P&RQ;X~7mSQXaD zX00h&;LLY{cmbBRdF&XEg60Kj=9t{uy*J(CE}CE>;YZpq$v(U6nSvLi)d?>1`|cV~ z@geOkC@u|UDZ*yi@O%{S|BXDp)sX(MzJQw%Q6PHRbMJc=H_o7%(SYt!Th>!9Ost5U zArUIbKJ>ZhE8PK$!uRx%^teg@`*_+9+&D<ANq|C6JYV(`9s z`}S)xjPelg`?gzFjSNh9UI(^2W#Uzg_cb29ii*M+n61!Yu!QXannJ)30J##BN`jBP zqTvBa>c?wF_I>^xtX`tX+9T3UlPC z!&M>9wIlq3rs+HQIzUycVs?>63IEW1-4Ef~m?5vI0OoL1qKM4QAoK48^*o%u3^ByY zB`;_QUpbcVe^!^nK`d~CrzoLJ^u1?jOX$cb5w8@HYuT5iP?FKYNkS6J`aHW6N_2$wLlg1@ewH>(ikU)@;wT#? z8-MW$cSNokLp4NSc_`d;{ETA{MqKX%p68!s%W(cLwCGg|hoMVl+`_-;59j@1+=Qu& zo4(+MoHjLT@S~$0s;Mof!}bw6`w0-c@t#$%_OUcUjiQk^9%j&U274l$xEyPku#nl) zm4^{R5j+;f@n${d=&oBq~{Zy|KpQNnW(H}B_2uGr@kpGrPeQSC6Zr>7dr{+Y^R zs0Lm7qwL{9d3#KH1FrMV`I+xWk1+BDCR*1dg_9NIBgsuV-r+ccwy(ci6o{Ku zRmo4kn=kP#e=a0n!_5MftUk*080%cM`S3-f9;JsL=#6cVne0KV5C#_U6D4VJf5lKWmfzFp2-^bchnj zDxeD?m@j%opTD$afegR*{6JX{0DnPN)75R|YK^k(ivaMACax~H2v3K0XWOx1WA^TM z$!rL;hwaQ^=(4gpqZPIeSH4BwsM^}gwhjSE7eg^n*1j-a^HlcQ3Fk-6dAVPEd!(be z?*UbMcn6eI5-5AnxdjA8_YuT&cpsZt5GC^P4dQV$O{ztf;~eCYWTKlOzfSCJGh1;>Q_qOZ7mX7PJW4S*JjS(*IZd! z**)mrbGcfJJM-JmQA3jggG}71Fi8Hty~orTgwcP+AR-wk1`digTyo-b{Dve`8?t>l zi3Boktgjg=0isxST7PR?1Lr&MYHY`=@x!z9X?vJPPn9?mO5;6Z1vaKJOEvLk&z_;O zm?Fal;-<4h-<;2JGpxAG6D1;x>-Q6;8;|sekL*6S60_YYGP9()_^m+dZ}9f5(v|l# z9uIhq<+*(7D0elCgcLt?2R?EK*)vZKBjn1I>zH$>0oI$ao-rv_X??6p< z(*3g`IjQ?Ra{&(BMCptFPU`m%TNXn!C`)?0yaS6UNY^`P<_rHGc6FK(_LKNKv_98} zvmRx!&_h$UwE$r(WR~ALzN@1M;LSTngsp;%0R>adp+4v`^@N_nOaM_LqxX>G%ASd9 zHM1h(-n5Rf>5|AXk;iYebBorA`+DM4t;>{Gic22joako<*+Le6`G24!$s`C87ae@W zJ|qHMnL~8A+|Z)egQB9;Sl_sU)gD9w)tpD5;o5ff72&TBwzK<>gO-wKA9@UYzt8ab zBEt!V^gX{jRw8Zm$23OSbVf0ag*&_Nb4k}m36$hB1}9^5&vDRWgkjLgq)7T_IdUv4 z=r;CPrDd$s%Q$!-P}MS=;pGR$6;?xn9CPj@e3tSsI3WHT8eru)FsF)9V2keoA}Db| ze(@EC^xX`ls`j3yU4*BrbkaH*GJOC@h`t2f4lZNWsIpEhdIK>n#K~)ev*5O+>tU#32%d zz)C-ubcF$?G*%-naxoGoYXur!fL%b*WXM{D!A@f3Zw|?+si0h7N|{ zo$a5arV?B))!c0-DTqGHOS~?(T#wWe!%zpe;|e6?2P#h^OVN9 zr&+Mf1I|>`cW@v1rr#y4U{T<)VRBX#sH6=Wm7ope-MdTKYw<3%RS5j`Ub_R#=@Ko6x#P1Wg(F>h^xS~6AR|#@@2-M2Eo*OQK5?H% z9r%D<Kr5!6TKM@})inAlCD@mbTcji}rwR)gO(!$o%(%{v< z=05x6)W5y6gKdp7s$qtEQf6vd5iKS@PuHO8S7?u>bZYWV5cAW^(NT>@34%cHnUOiTfZ&{MsAF~>uG$0U#Jlpn&b;0QLPO-veR%W-i3B<2~}B#ADXX;V|- zL9$KEZ%Jl4{}pJR^8xq*1j!$4El7;yV);37)DXiQNz7{Hpe)}cilE@7D}7U;plxf+ z!lx)2k4~b-KmszG&Py3}79K9Wyg- zXfTLq+&Wy$Iruz#31P+lghFHgI~n-8>p@_LmTdL|oF!dW)h?}SBv(etn9}2J#z;J6 zH)kZ&f`b9fiiVhs&U#hMZ@t1Q&U~#pDu2Cn5NTZQPzW+Xr=f$fUQV57)84(dZ$xA7 z+!Zd<^s8px#^|7XD0|&J*^VRe*81=bhGM*g5Sc+FK~VBcmu93`4>48aIv*@8X`K=f zON%EPx1R+0>qdsgC+3zI(opqA_rZnazqU6<_UD!;X zz$`^&$^3U6g0hZ*Vw8Tcp3}X??+L8IFzdNL7rF$VIbjZFRW_vKc=#)>W{|~t0_)2( zdrT8MbwS$jngai$2Qi?MbskJl^AghpQ;4U6nCDM}kF42InU{kfMKX(Di}#7VTQkJ$ z27+Ea>L^jImT+G;i5^I_!=K7s$^|{W;FAOJu=do_Tl5o@v6e*#bSjCc4p3ZCFCQ2P zv`R=PzPij?EV@7G&-D4rjB~Fy1ACa~v#+Mwp9EucP@3Db9o*re4nLJ=BK{saD5LoJ zG_^@3lp^}SM;fEJ`UA~0fFTgD`V{wa7e;>vyX$o6AP}spo&}`u0nh&08Yj`RuDQz0 zWu78W_9v}kj++DIzPF8Q48&RMTe8APniX#h`5sN1DzdQzv*x@`YmQ`1e`K2@b@PNH zRXcl~_7L-F8s9J(ms1PItg((5Sx0O6?{8dZS1Jc@UYpZSYrs96ZXi|zth8c1C!5`` z{H3gT{9%m#^<;nU49QJ7>~=Ma6wltPBG%fFYD zc7CTgoX=^vL0N+v{2=%XuMewi?Z~vC_39%bK{6XfZGy}L%1_=S*TjUQLn`WN2*MlU ztTA80U3M~4C%G}kf%lMG_)|8QVzWUJWOP9Ok~!=9S6bq4^uJBtQYjqH6G%<`FgjZV z6=l%u^+}2czmqgjI|n}Ct*fbH($zmP(WLmFmQMk3TCo~*hyJF1NH+<&ID_ozW7uHX z+Xt?mPm2_Q649{a^8C`LM{q1S8me2W@>6b{M%(4<`%n7`X;j}dC5L)`ccMYs>QAE= zp-wYK;g{X_)TJkT&{h3`GJ8kOk{&VzpIb3T=Bxc|XZLQ;zGuf6?ikMey7}Q__1^ao z7ys_FLKb1GbYOt?jzroGMHiU0Fn`?LXY+AjxrFbNv?W*IzoX6Km-%R5=_%E0_Y9X| z{Ue88%#)aWIEqm$f6H(E0I&dt+!U9kwzzG0oUL|jnQKxt_@e|mzS3%oYyJkP;W-JM z_nG`m#ny*K9lK-uP=ekcB@K49j9;Bq=D89-?Z0HeFQbGym=YJ>;MdfyrabgP4Wo4Z z6Gr)r8qWR$=#f-Fj}g4c(=NdPp*|l-^xfX5IL7oKS?l6`VNSVx?e$Q-R3L;;XW;TZ zsYENM>5g%3^~26rXd>ghdX}!s)#YO*+W{$@bC=I}pR71Y|W@ z5xMB}E=AvH77mQ9-$_~ z2objacleu|CqOB$vzXqWJaQ*M`s%k=*Z1Dkicam|8RV;%Vg*e7AuMY)*el=Nyj})` zV<4>H_1bEWijSyfRNtPfVb8SjT{6`Ajz}$9d_&?$fFQHu2^X{K56R=WtYl`ksKdL# zYQE#M+OpE8q-)D&pN)4BtxTS_AlQI}I*>tP{Gw`AMd8E3pz3--xZ} zyy%j3rn0h8RuR{!gTTN0{0+&_7VYjeAa2YV2QlQIXp`zeR4X3Z1$@U92xzmA8hVi& zlB%P|B{3GFk-EWZUM@l~&#H4H{m%mOrtHSO?Mu$&adYklt}%aO-uL&^HRSr?(au-N z%Xou2+WhZ8f>K`&-b+f!=#KE}xUf|1U2TZhKEyg*3UbNLe&dXIpy|SW!CWbpPC?)V zXio-l0pgYL*dDcjp5a5TAWxLwp=%v#;~R3wXdr!wLuV+097UJu1d_^1RO9jbe(bf$ z;ovq1*22W!rY&*7}W9>yc#5#?q*w`2K6-EKG#S{@r-4>_k&Fl70V;)kYE+Fk#U zhF{Hx3;)y@R%(qA7IffgGhy%v46z=ZFETUvDU43pb5C{G5_-@}D@{|twYBQDtKfsk zc}c5)aXsH_;XEN_Xw+Kh5#vugxYDfs_6ZFGGG-m>!W|wYHy8_t6gPm@jaV15dzj;K zE~dcReLSk~?xZl|p4H3Q*fW%)1MV+Jt_#Lc zKIqvzK3iJ9I0Ff({-tlP*&f!%N5Q6EJV7jX7=8MHcX4QYy8U^^(K>Bdz5r{DHQU^` zYogr1e+g+)ZeT-~RV2{#N@G)}Eps$T)FzTSE(K%;N@%o{ng(dhe4d6D#*f@Fz-#KV zu#AUvc(bq=X@J-rP3n{x&x!_51&D$G--^JHRjEj}?XeaSx$x_Nt01mQ&6~4D(y+`I zq3PNC!7`{-4+Xo`+pY-ae(@h*yMAZE@6S}FX=_#%DCV^vlO;&Baf0&m`) z_+AvdU12vfwVAhlGqq3L`P?4;S!Hwm#GCvN&Ndg`l#srdPC44|fAXhyB;Bb`1N@UU zL4v44HRN1{&!QxCr7&gu6i`?Ovc}!FrW1%_QP_^+sM;NSxcbN?RAkC?BtjUUDui!q zByj}#eZpzZZybSm=f+=@ZegDLCB$pHY+LGRiUYiDG3HF_h-PI8rwWe-CEJnkqWHvB z)ka1p5f<<}N6Zv4^dUrczv60Wj@))AG4$q`*n+hgTgLeEslH^EDWQ`GI!bx>pe~Nr z8k3!*smotAYr`>HJ&D2k-6ZrBshIWSf%MySHut35~KLv*P*qB{V3n7)1bBMGtCIf*1`^=GP`h z*rGZ5=y_5o`%y=Q&r5oxl$&?(cckOq$AsKwE~&V zH7`re`k!6@9WBB@@p9O%1^5o`r3vwssnI^Y5F?TMnzO&SfGQ#VV~hQ2JzV_fzCoz> zjkUmjzSV}ohhn6hZaBl1!b{_torE-$h6~ZZaH>l0=w*eoWn5=wAy2;U<~mSWR`jV#y}{?wK|e{)dTUCu=)pxSu^Sc?vO}}hpKNQ*_L$0|Anr;bE}&OLH~Q0bgUs}x*;^ARYzk~OyY`D?v>P6?)N`oK-c~E zKi##VT}s$;Pj?~sLKTU`epY+It^ZAkC)V{kFO3*tKXfcHfL}nHsu$6cC)|~ z`bFkEg?@QSbu|C8sre86l0fgy>19h#G;@(RQ& z3I;gEYTXhqK{Ty$z#U8vrv%@wdWu-*OuCHgH!|YZBUU4{uIJ)pqzwD*#KnPB>Y z!P!W#Drr4NVe41IEd7dzcLe>+YcUsYhfeeVkFmFksw?W&1d-ql!Gn8nhv4oKAi*J6 zaF>G|+#Q0uLvVL@cXxL^aBwT~chw!Y`=M{W?T0MVDZM1paH$x?kVy z3hWC|xQybm^T(E*35kH{g>5jBa=`SbVkSOC>CrXzq6w~R;!O{(0|A)n4&p8!{}v zkCNdwonZuq9_@;)J91-j4)265Duy+;%Kk@U;ta4kO-7d37{!{Qc_ExMTCYRQA( zFKeENJVF)K>%a5cubH*Q&B3h4eRlwc9I1aDXR#IPLHu zM4WLAqzNmlVL$;nG=+V33_?HeW(}a2(Yu4AFv34*GYa@CA`C!YN<&&stxUI*0-HHFJ7F% zDptL5I~j{=gaS#GyQn(!@T`lo>~ZKJU@TvTjnQnQa6ZS?dk<9Stog{&N1!zvQS$}V z9F2>Vgiq)%G6ziEaABVYyTQ z&0TIn1Pj_l>5~&H$c3cYaoB+gK}I3ZjsxYnF#{nYI&fDqAz6>@%}6%Z;fv-3T1#^?@6ae228I)504$%@j_P@Q zJcRKcD(X2y6k`C$=e)@juF7AK^%qR~6=~#g6C^H*p`GfdowEFI7(w_fJzP*IQAvNRq^#%xI}8h7g$hy2IG zw{Z_4-iLtS+d35n1Su5xpiVlf0ODYR28#XJ!4{Hb!_lE~<29=z%*lSAB1Fpcf1K zidN8y`i}`zaOwXA`2{F(_2NRZ6}Ji*S9$A4clmBncTMIz@K<1|+dU+5rsLzJ(x1p0 z7h6;$S6kz8CArigqCIG&Hu}Qi7Pb@AWs=qfZZtS+Oeo9>VUjkXPc#$`z@tEsOO`;4 z!wg%SX{;3J!4)3-arhrOg-F&gloSs=0RaWUH=YAr^Fc27D!Up>2j@Hu=s|W#yH&ey zaBK#6;Q@g*E@2sGX*9e8>`OXO{*pt3BBeH_hV&O$Wj%MfgT`Own84i zg>3l>fwBM&s)vV^tbvppB-l6L%OJm6knYBEgP7{70HIDd`#Czc@!*j?L(d;-;(lsTlvW>^c8Jgx+8k z>i_Buf&Nc#$W_cpU%5*52YK84xT4-lI<6m{4>Hp^4D?G2!qMi51Wjbsd(d*-fz;ED?S?{>+vinywE2z6B`r6w~;S@(&Iy-sUAfO z1FE-HMbzaMcG|nAEow%;xH^@cr%y>n#q1Tz9d!SUD?D(IdI%{Eq9CFZXm#8a)3J;Z zo$7wwW$HOctE2&MXZtX{H*su!^haTF|DAKTq~x8sD7)t24~oGu^1=n z1c3k{TxC-fS;WY;gDUq94!@UjU+uJqerEI`ks}w7pD#WPLH1!Ho{Fd@q#EW?@r@`I z`xKcd9G+mrDtQxSwn6M-s`6$@MvufV!qbgc$7wZiip;Wb+6y8hP3)d$?3HExIJXVH z%UVg~po*LTe~&mPmp{Byy=Q-oE_xtE6<%=M;rT;qL4|*)5@tbXTjH{_4qn}nANfJ9 zKY6Y$YMeN8e?N}!f5<0&@Y9zPW;G>i7h;BYL6F9ph4XMRK){Pa5fMgQLvYy{W5*ZF zYkrokL~G~#U{%tArw%~%@rj`OWFV|P@SPlkEH|zW&NlfPDmzvU53I{0Nt7qsJ5)*}z5V4OLKG)K+a!TU(3`*$q|C8ET0RPRSO?F`wnygfqB z;C0t@6YuXS;JWgk|vFx`Ci zd>eqw_AV@I0eb`x@#Z};ZEae_G4f6W8hda#<-72#sf!^jy_$H)cH|UQ(HaI&fAJcL z2JF5-Amoiz5mLrUW>)+2^7Rk}klT0IaeZOHv%LmZ?e@JEVL(WCM`wP~K+9*jDXxR_ z55SWjAhOh2vG5siJ9~7sZK}j1KsyWB$0UU@wpx8|f@OdF|C9NuZ0GYtRMyo5Dhz#xwt`Wftf!VmjsW;vqHcZg77F0D>O7<<%eK@ft4k@kO%*d zs2{`^+rG>L(9x`YxT-(UvOCF%n*c7r+qYl=&+0%V9J=(qR)?)fWcdXF+X|(PW{I5s zAYusvjBR#+&cj>~J+`f@kYsc<%k*VNW|+gY?=8gfx)!l;8^8p3b%&zw(G7yG?BDvt zy2je$?$>!#^8-$uRY!Q6DHcb5?|b2L8C~7Twh?2d*H&PmibpLBJ!X3A(u~~CN4M4c zw~~*wMan0Y)n^5TOur%K=P`b23O=Dm|CDD@q_lc#8>2xMI3+0iJErNO6b!KK>LntZ zMx?Zase?i52L7tvC3$)6d<93pO$&uxRD1lB^YY_xp%X5p1o)Nt`LC|JdZE$KJ{}6( zwpfE6W-QKp?s{f9k>CQLdSOU!+BQ#)FI0fJ1uJAN-Oj~%gIuLFvE?< z;n_xZms4jRH;e0_e`VHD(XZz1ZixUJ!y$>xYLP`%!Yfa|yK>-qe|0~?BH{~zRwASp zgFRU{AFo=SlyV!!4m&sh3te+OuUlvi9-U)hl0z>YIY7 z3Oj=QP30PBuR%)M%AkQT{ifPosm}Lc547NLZ2o~<5hgVqQ_?`kuGHwf7a4q_nQ|I} zQbxfy6<*u7m=O5{bG)%Ldz{CPu|2F`Z`t7nRoDG6bhPiteK8lY1~Kt} zH2goe+TlO9n%DVO_^EW;_u}l~u(Mxj^2w56Y(hI=X>R>du=Z9@0hIVcOtPJh|8{Ub z0TL)08^3Pc=-wLm(#c1gzFYf%p}^K8CiZkOwe;j`duK z(`{LfBrGI4nR-THBo?XWTO3d?{23 zaLsqs>jw0iRt~`|fKyCs0yOqemj_QRW`y?Nq*OjfSNHOdc5(BBn(^#7Fe4Gg0lr>{T3%t%TliAg=B5G(`95k#gABe{2 z34e7oT3)7VoIAOu@EUZy%Pr*b6dXOMVK-#-Po4Mwqs~7_&^Z3PI@A3}o#Rv8w_bjL z{;Bgr);s;ia(4#N#Qd_rW`;d3G1sn;<9kSQW9`S}yWi!)RgsRa%aty%?Zyp!n4{<9 zWNzTKt2XT6LGAzy{KjH6A*n{;l_IKfn?&8D7mz=kF(fv%|BpJrIi{G&;SYOi-e~_P zwz*m6!5Z3atpM59(Y`)HebP*x3tih~a{ zl5Avd3K3p;e3$x(<6e^ogQ(7$S)6*`x!)EDGa}?#`^hln;3f=d0adniP)b&ZRHhq8 zLW34`n|-NCW7jOQ(^!TA^hf4hdkMtG)7;xKDc(BLL)d$eV-kbMadq$MgTeazAXn3~ zMTRT>^k@EZZ5ecX`QDwZ8>5VboaOy?)71frEZ%F$-X2k~HB5k|!hGnN9vgNuu7wcg z0;jeedh0}kqGB>jeJ^K&vp}=8-iIJRmDh)*4=028!|W(O68{*09{Jyf=-*}5kAWjL z3Ss_RL#*sg#b4DQfqi*0WdcaZ=wBZ3$DZsV0(NYfk7w!ZtrmuL?f2`{5%wjgwbI)*UGIy>thp6 z&Q$f#GZS4#)OLuUWb1kx$ksQ%PWc8dr>C&;K=_J49BQ9oP?K+z&|QzW*VLDzn5Zi4 z38>y3>|E5vU$-GA69#SsQX%3vaD1j3@`g@s^fBNynlPg>v1DKflx_!pe?Cn+>2*`R6q`ic`hjCg|G_b(dQjK(f5)-ie>gT;Tnaa%kAeoq8-2g4 z%-ncS?HuUgUk^k%IJB0Z%IF06OVClD#kYn`m%Y(vUf7xV@_luW3FwErym}a#>~J3p zx*R{ch-%aqn2~lt-~Nx_e~aKoJ_P3pejnd_887m_X7+kMK97Dg3`d+80sy2CaNw3S##~P; zbL%v^cc5=PO>gC|Ql49Rw!-`YI_V}DHo&Xju(+r?dUn-4d}14-&%Q9|wy9?AU3`3P zAYTcr&2!MgE#&3dm5$48^^G-I$q^0;XX{n>bYNViMjzhC21k1oa{0ZHUFL3Zc%`&G zz65LTQ(%7-$?L|YkY^v6gTQ9mRo?&||QGQ`<$4s&(& z2k@83z>@o+b+W97j z+f;Wbqwx=*>znlp{CaN&cP;9Bzk=`IHa5MVirx<|`8~&t7}}NNA6sj$8=3STcw_-) zSEI!hm{o4j{>-qqxN5-iz<$MTp;|Lg3IK2iP08r@VDi_k7`lHuq~%3b#^ykUA3f1=;iQSFV5|ZQ@A#+ugKi?*$~e&9-NP_9L--noSx4SbeP%IeFgW z?>M-8uAD(n*|##E^<7RLX>c_=JWL0p-?q@`=ENb)eCWBpl9dPHFpVuDn7PR0HRg;! z?V28~#^+!#m>ty_q0+O&lkir2@;m_8y`R3H*z&)ENM6&5yzejH)?GVJSC|3AP`vqGHxp6r2AIY?|RC5iS7L z<4>bFshdo?sdRbFvL1?r$z<5n#gfXXM%xQ;w9*wOR;L204<1f3@Q}_)gm7nd9NWhU z?G^@AYPQ+=_TD>Iy|6yE1CoHVOvET{Xlxt89NIQNLqoi%UTFCPJnW!@THNJf z-L%7fR$5hn5rr@~PB(I_omER8_;_u}5O%SE{^xCtA(&Xio@%hJQeJ{)lo=8uBAk?9 zIhK6$Y6VGld&mvqvY))H3V7{CGO_ukqw^uJGV^W48>F7;b=v54dVJW1d|NH>&rxUI z{O8ayccK!*|Cg40{3uL;e_>i^{ax3~;WV_+LpNIH+rs9Pwvsp4_PuvD3wTwK$)w|2 z3uOt-q+G?bWkj-WJ-wFRk97SytQq=b@^g_uW68{!ocQ2z?6~n)P4gRfTN9Y*l-#zN zFyK&3BjkuPryLsy{(+O_HK7#{PE^78P!jPGQdXf9t;fH{Mi+Sa}t;^%sfTe{0JmZN#2?IVnnveX$cC&fOnF= zvO2btH0}Cql|`V*E8@@;fb8HIt9Hmg%;6_FL+~KLDIeK0>r$(? zn-psEeLK}3iNsJXm+jRtNAgWyTA{@2vh4k`VBz^!-ua?P)sNYpz6j z3!2ABD>l2~(O=o^B7_|c0x1+bN$c4;>^>=+MM`kP0%HeKl z8{B)Zcl3i>U6#~4=tziUFV530mek57wuK(;4C!OPqGn?c)#E4z*1X+sfcrvaLoD@s^Z7aYtc zx9&&2>pfF!zZ?PYGK}~`;AXcVH`fD==Cx<4|E*u+dJ0)|qqJQw^vkr!5e3~w`*a-H zkzM_-M)RhNttTH%K^$lyfS=Q0aP)9h$js?-khEqxg@0B zN10#Q$Q1&MM=c~*_s-SGRuqV`X4rw-XKa~%wnTe(yO=Sn^bwUTYEFRt=qK{`22^98 ze)p7dSdvv=vH`c=fE4;Er@Zb>0l{CnMt}y2?4A&%llt_6c|Nkd*~?Kk6MbGOj==f) zBBLBI=lKz}E*eSNh?j($tCZ(m+l<4iivAgQDfZ4I(;X+KgNT1E+WC_tN?CVw6M zO_oaKJ)yJV%CL8%;`&$56dmR|E@6@}OzO0ARCeOcQYo=>gUM1H(WzCOIZ*0_&YL>5 zv39X-@ugCxlghNmc0rDiS3p*ynEq5h7HBipsZkhVyZUsVejM|D+aLuM`%soXLr|(Y z#Qr|dl~T#3c>Uy6B(*dw&)#|()*oe`Cs6x6sB`6SR^rW| z&1!PT#BD&54N9w|Wvi2wGDQO55lZ8DkXKLvJAr;snJaK;w6)h8TeVnM%<$e5d&&FC z*tJI?htKCgH0g$G1anXMio1LA`UGBJ1XpTCt=YkC*%1-p&apQvdPN~LN70R`I{_(| z)&SPN%NuhF94OUi6*)hcpqARVEYaZ~_hd;)(u_!mV%hf$u97BWp@TZUU~~{@#Ya5Gcj%itydtj zlw@KW@eul)NErUDU@brb}TRRHhrgSAE za!o6}n@b!Wkn1#@`3>T}d$q3Jsaj34Q(tj@EOA?GGe_q*hGh*FW|F#@HD30)z-(VC^3Agn=eD*-raP%Xa`Pwu8 z&AC>Za>b=ixKcl+-vjnuHJyA1&9_m|&@uSRnBQoN-z+W>7O2A)$8WJ8D_C8PM@Er| z8=gnThod;--zi!m$hB+t8tL>D9+|uP{s?m`O;hgh7m|z{2{bO;Gh)j$>V?_S2PE z@^I0*JPg=oxDgDN*_`370Kx^{hKYjRvJQk}Jb;Dpr5I(Fj=Ts7=Ir+BHRTgR8c&8ItToXb zv#6uwvOIMz3o7BW@s9wkP?Io9=lvd`^{s5MbMR+4CuSxdj!?DKDQ3N<-akQ38Z|a# z;+Y)@N5=6<`TA*C{q!UZX42kiuyZg1xE zU)T{Y8pm;+x8QFK6WM9yO}YLuD@^il3MSb%=y|~z68eNGeT*>UN)0QQ8xwan6We1; z+zdY$g>Q0WS~gGC;x}gUZe<}>SLo6}=@2nSq>1g{r{}$6j4K&XIRa-|BfZRJ8Jy^C z^l9Z1;AEDzX1Rk6Zt)JsQwk{zIlp>=K3)oQK>aLYcF21D%Dg;~?788XCiGYmJL<{Lw+&vBZ~syZa*?CtrSRAE zQpBu`NQ>}sv(a;@J77B+S#8U#-cQpE^!{$ z#rhZU#enzmn7<{yK~PO`6j$!_xt%Nbv#(eok(7F9SQ~iI{XbdE2@UtG@%te#jTYi)9&Cl^j=Ntq+Bc^2f zTAx{L3JNg8$-J7xw`aUD0F@(Qdv;t|3yO~pY~5u=-TX#C^0c$B^UX7Fe4viSW%VYX z!!@u&5LG}1&U+L7Tg-uWhtitDR+8hhn`r;BHV$33HyqRK<`u0A-h8nc2unLk%0lkf zYhU<{`XKU>67tRcFCXPn2i?RUsK3D!m+Usx>*WKX?9bwb* z#)4zz*dNmJGRxdoIY`V(vrZXSGcY{j!~l6PaCX&xJ32yHj1zht&e8UjGzb*=pio+^ zy<`c0!G+Hn#h~piyb){kejSA{E2Rf(Cg0)wXIC6CVxYv0r1*6C7Q4=HUa5i1`ueZM zEb+W~te|d-qji_mUjZlA0W7Z55=)H4pi}h6aAd^AjlI~D3b1iXslps_SSgAXn90$F z&i*<};ptpQHAt5W)Dv8h|7k;GaJ7Ntwuh_Jk3Dt-D?B-yv-YK4sk6Z4n$8wW${4@V zX4Y4DBs`d(MeSwC+bziLZQVK4ZILz&Yk)BnKStf}I~lO>+f8 z;mdu^tqxHfEH1CUHoU}Lws60K^R#1Udv^QP6C0M3zSHz|MGhJ!I{X}%Qs}@QcR9z2 zUVXv_37g9QjT15=WiCy5b8mJL}v9p3EI;>#LY+evD_{?i*$^Z zkFyKsGkGAh+CpN81s=8i=csDYlC#tJ92JNGcNXaagPR`N4reX0ySkCGH3ZQ@NZu3^ zx`6X$c6O{Cg5u%{)xne>o@`)BlIG31M|}8r)v^~vX{QOBj3oX)s{BSJ+wHWJ!aA^Hb{T%Yy69;f_b4`NwSrn_fr635p1MOMsISJl^0iEs zPq?`EYYi9A)mVjr0=eci#c*x{a<5M>{2c+ds7f%&RC_;q z4XO}gPfmQPW3>kxf5_vEhd3B@VRuiCqN5ciJnmRzaGd4R4Ed+&!4DR6{E_BY@d%c| zXfCT%hUchTDHDjJ1Eq@VzJXxB!;o2Kn}b@Dv?7C%R8wM+@vqHju&4T3#)^I_W8VjO zJ9;qxIz^HTKm}@8*YEN;S~?%}{LuW8#F2wyEVODwz%U0mqAhDlSm)x<{G7Q>#Az}@ z;jISl{8V??_;O-_?s%mclt`iP=C-f7I#rQOFV1C!p;)$OD)xt0(~W$%Qs)m_3B-Xk!Ku3WcHz(&A1fXv`fq z-fsp5#_`^3$J&EPwE==@4(FIk)yJ-TV1&4WOlQeWi|FkIENQ4Li~CZC9sy@eo0pR= zBA`b;;P=oM%8LAYP>Homl4i(?%Aqev`>5Og1gA~9Nn7d!y^z{{&8jM`In}x z(K}E||9O1i zQYQvjWOMV3XftRmIXB0VYuzRmOQX+&un$WOaU`_LI9Wj~CwUcVe}83hHN^N=##^=- zrzSv-Q3oHn%;co+_(7d+2qGg=6Q=1j#_zu#q<4b2Zu!2exVRwpJS|F1g~WMUlMq^N zGNzAJd@hkA=ESFvD_QVn8L}mut<Kou&@Nf9H{ zERw;@>#12IaGc$5pzf(0C{0+HR#Q4@SSigpc%l`h^U%~xSXIjWwfpWdIVF>ie52zg)__M^=LudDIjvwgT&lH0sokzsGrQZlH=5eTCS37JGm9Qj*1`S@E zo{X+u46bYHTG+z-*UIYAhaT&DC+i&X^J7J6eB3yinUM}ezOXUcPT`<;LunlMTVJ54 z?Uh4JbQF}EV&+E$?d0LQ6mxSE)f8+VBfx|$hZCuSe24v~l-M&V+fmTlo*bKRl$Vrd zGY)4LF?u}RR7mO)kFAD^RSBO{=Q_w2xsjg2Ak6=8$+A9_g_ENs?`D3e;*RS6TYl0cS9~AR3o*d*_XsyzokbjOc zCoK9jFi~FV9MG7Ve_VO}Df+zr!t`@xHOc#0&FU;EIm=da{d)HLT2=XjvcPN@bH@~X z<3gWPbd7ucdgX2R??_Dg<6Nz z@N3nLi;^R0MV`~nJ;!kWyq2gc?K<> zsz6-u<8672rco&#n~X}J*GrLUG-@cp_Jx@(LFj$mOHo9RIJEcA*%Ph_=2zyp__UV# zJQRVQYx#t2w#o>(GRo14&H-Bw`zm*B;ins${!-pcwD22C>L0kTxAv10{!6DN@NC4(R*fmFlbQ1_Ms-y z3q`1HS9BW^dBIc&>Znz5u`Gik8KU6SL_EwLLga5f0RGqju^xB}NYb}i06n~+<;-v- zZLNCylSK25aqb@9Y}@RPwQZ9U(Y}vKl{V3*o)#LVSKlcvE>^>_v;n|M8FhE*QJ>XQ zR|V0P?Vo*P4JWBWPd`?O=qd1JMcURb?%e@}aUIVm7&ao+h9juxP1x1w2sje1hfJYo zQF5TyY5661`l?+Az!n6gNn7jgu5KOZft2k?u$lfj=sOR}Td0qj9l|WUorCgq zMy6KO%DzHsH$+Og?e(FDB|S>B+v#Sey8qHzjoiLD_UBMkJmD{j{!KccPi+F5^QH?K zte@}gKo){Bi@fWL%i?>6`eyDt+^;Joe#N)OEkhsy&7Uf%dz%yzq35G;&%IXH{k=Vb zaJ7a9LkW;r*Yw;8!&rZ&N)sdyn`6V>h*2E}e8%voyN+NHOuRA|J5}1^oK#vxy zp7`pOb;wUM{#?RQPq`IY$(O!#ukC2v2sJQkYGcsvJZate^QMl^NEt>>@(dqgFaGNI z84g(*BM-4Ztzmoi@H3!*$2FH1iOKMuUrCSu=}!af(4jj#iR%=x+oFt#oFzZ0M@LQE zO?dt#|G;%G$vf(2HB?gTn5;A5Gqd96l~l-3vYzVNDplufGr07_I?=#AN79UeFd(qM zZAXb0HQ7y-;pZ+6VU>sj6vsw2eXkI=IiiK4W69%5Hf3U4h_Iqwv0n4183`WZdc#nN zn$ZbSse}wB!m7H%U&9KP`2| z(U}i)&Go=AFGo%bv^#|@?MHdbFD{7;z%}`FNiKgtmW(U_?f76^r7W&hq8yL}aQ1uL zD%+qt?;#>=1)q4pV7_q5BQ>Us1mD(W$OB=K#hI&9vRN((6?lFmzYxV2pkUci;qqR& zT?8@C=gFK?b|kH4uE(;b^f-`KN5=Jy0gh{!W_T~l9QnY(cQ8aM6|`8_-IrPUIM~dC z>U8vR84vm)ur!&gIa=HlO*3Wn`6~!?wdYG7uTEh74e1%?`{@)j)^s$*6rt!bv8;+- zBTu1IsiPUm*wwpIxZ?v~+ay_TWOADr`ZSWNPI-dLgSv{GUyIq%Y`=RdgFoZPK=E_-Ty#-TY%)}>gbA#c*>o2!ZeHXh=KFA9|F5;P^p^Z7zR@QYNtl#ISS_x!wkeZ7yhRD3CfIUVqegvgw2a(r zL6{(zfMzRLJT7U8NYbHXlAfQYlxcWk^q_7uVDl)98)31sf{1+S5Ki+t?q_kYPqEc4 z;&e0A%*eM`G&Jd1G|PNB8BqoPi0qw$J9s*D}3+xsgT)iFn%eX4$*xg;V+-g9O< zFMNWYyh)P(Lm?NzsD?Ml#L={5)c%wdy28+TsJq-{H3qE+RQxnk?jI1czO_hn2@c;i zINJUE$sw*Xat~MNtLU#dIoi5LTO+X?+XH_Ece>rl_x=lN9dqeSn1R2qNX<(dx>7@H zOB(P)yK$X(okj!+y}C?0KdT5|Mj8cL%wSj>%;>qy;&}HgO98O^g!bx&*k9$mjo!4q zzhb$a)W2oVVuib|hJq|NniRC3*b?u*xSgo9PjDOLIZThr5H^Hu-$Bc&B{4H+rQ$DbEHF*rpE02aJ%NL` zcGiE~6%9^Wobu&fbwSjp)^FBu-F~~{imI35c+nQ}0`nm_m3uQv&Zky7ldw&t>TRtraP zi!;ws#DBTQzRYiPmP%rHh^-UJaMa&u{ec`^sA=5Fa zR7!dNM(x%Zlxcnp6OzH41Dc&Z2yGC95##&QD&mYrF1EMBmdJeD%(h+ItAx5jS2|rPtQQ3fvWetS4Y=_qUFb&7llqN~7HG!> zNt5I1X{7g(o>UC1R$u%6tzP3|b0#=F?ja5?FrxBA?qj${uV4tUPb+tJ{dclfW>Y+z zosiK*483DKnz@%7m&Y~}nRW7ux6{8vo9o-^ z>{&HC!$M{|85PMsKKEYfvNDJBbH%DfWI3rc;`mNt+gI)MaLZPi(-|w7b?3b=hbgt= zj*0?JrIck0Z7>!U@w;u6jKc{UMCnORQ|Og`qMbJ~VJ@D7XL4_`_H(_z2LN32ak>#% z*VQPiQ!<7Z+nuboibQeAbo3R2_KyP&4|Ql1fOY7ZOmnWvQ zL)WQCxAC24L3IsT{LA_)J`F-jD;76)8n<6&ywC7p)f_4&P%Wxnz`fmn0y?dN%stB< z2EN^WKfrm6=9d<2ax^>13RYr}33|IT@EhX%^DQ02Np#;g3V16w`(QAqSs6X2>c)S9 zk!Xc@v)%7@J zI@p?xTK^oU;xcxwh3g^=E#+1&K>!7iG3`s8>QFT|3GMj`ul5&xGQhYtEmQJ|83TvbJs z{V1&eThO3L&AV!KpK}`55d{??0oxC1DA>u#uCg|;*q}WYMH707PRibmF_*n5^kfh{ zw8Iq!T09?qD^|1;$y>aXE}lHM^2ZKSl2eS}I2!7XGwk#V3nZ8WI@@rh9WFtP*l2cA zVqgAym^}_y)S>=h^sgOwoNty{lAoL_-(!n-PcFkHPegR*%U}j%000(@Deiuxr$>N6 zZYW3dlfE~)TP7_kT_2&px2H9bdqOG2fnlC{m1Vg0HV@KR`XB(RQY|-KWvB+~E-Egm zTC$@9Z>C(oizdn1zYZ(;)z0^|7iiJWR9I-aa`mn`m*RDIox6I2llO@yX8UvjsB*m- z?Kwyt`6T%`VIZvvH{#u!Khm*m8-5GDC)IH%(PbPb$Lg7E-@UY^bG66!aN8`H9wVAYQwXWdP~Iw>&fQQzh0 zhS_cASnQE!`BvPUG>NT1#n8`DbuTzlbfU#5EFL>sBV~idz}CMHWHlClTv;KoObX*Z z#R#t%S!otq%~j50Z%ILwrEzvu0f)^ySi6yuUAd7{70F{zWc*A1lR1Z8T7>_L>Srq6 z=lr}eVP$Q$8k5{qcA7|shtpQg_*zCa9BT9KebMY|Fr8E-Un`bW^A*X;id6%ld3fwe zd{Z~NyiVGCgu;ghuqFUvCVVQU{<4#NfX0%3iz#sNF+RuI+b{w;YHsJW5b)OrBAhsewQ1|ptnXZ z!hSsJ0>4M&GL+cWN~cys&XGRPME2nCBlS>-#iU&#&ZOvkv37CH!M)nTX>fMX$BbFN zLXj(B3OLE_^Z}jU>Y=dQpzz^asF};u2fto6lMNN?g<11UYum-t)U1UrjZoPOZ;)24 zSs})68(2hfDLU1;UCSQ1l+*(Z6?&>m$S zt_^<-j67P{n1DzWj(PVBK&J^pZX-M`=uP44c3n73x5M;nD^4hmpx<6`a99}Yd2BZC z&d%i7?-;Vv5NmjU6#OIFfjJTft)_e(TFZtW8by}_XOyak2I*_Y*p@ee9S~<9?aa&YeaKO@Mc~So*)Emhr50UU9Vo%^1Hc_iU6vxSOh2wwhLX3;q-`LEjp z+_L*>P{wT~Ny7f}g!J=$aHxTvjOS&zW`@In7?4kWgv_^v1J1ZCr{T$9Gir|*PRBoB1qz0lS05ZWZc>2# z)*%Xt$y1&}Cp_ILsv+3Z$W-jmQuid1E4<`sgdP)Hv1dEbKN=@ZguQfi_;=o-0TpAv zzq>im#_UH(7N>N|36sDi~v^^%wsN7aNCO9ve95&H~386FgGg`2vqQ zudgCgMs;D2<>rgMiPVrx56X;3{jy(cP~xmKern13L7#X;=CLH6@QR&HT9lEp^=~o6 zI?$il7ZLonC8TUjONpko^SJs!Q&R7Ki1f{LDT>w%&9Kd1nhXd2EMAb&zcTUP@S8QM zD!A9XYwJ7eQ}mmYT{&2kKPLl0Q;)5+am!ScKn}#AeaR-a(`9M#R$V~Cg22Qe%er+V z!?KTw2>kU(hL^a_d@q@&kF+r{^T&-(BV} z?ZmopGTpp|IJYlzUMn2^C;I%re7ISs{U3TZIaiK-ru8m^_F9N`@l>jAG1-R1EH9+g zh4KS!X4~qd`c{;A3eo4b)2@-MVH@3he(aHv z`w893egA8ym<|OS7Hfa-u{iCWE4S~l4Y)~TQm@U@`J57RzWW%<@BA1d2vVYZ_yA5L z{JB^=DjjFzaJ9sIKYl&Ytt&QuGOTAFW`mA&4n~HZy$yzxh33Pj zY|5%cdD%=0NuKWR150f~I^~?=h@{mP8QUn&E^=Vf@yd}x8+KtErtGhwa;^l0BpzCL zq%TmFdmJ6EH3c$d*tQ^4*BUvg{Aie|Uqcgb`tYTd%=zx*sy7g5whVqH$~8O8Q=X^h zS_vml-YUiVF;AOGNJoInH%}~e^9>Rug;0=g8ei_UhtlfBqw)z%gBp9Y9q!28kra1g z*jtYzqO~z?o4Fm+IsuK%h zk;dQ3HZcw`AtO5!Cci9-Wj}4w4#aZggd$-_wC8e9NPAl$Gf~|ERf!QOD<(sCO+Gq?SVWm8pfH>+~kRxLn#>L%ZJuYrdwzY zcw)KI{hTekcJ6+9k6h_UE=CWR{xUNeUcg`3a%EaPMoMqYjAsLj73++0b=tsk4o)&J z!j*e&$_*cIakt*?ASL2r1sZLoOyAhOYIzRBX(!yLGp6UBILX-$PkxpPo<)_#crH;% zJZSW$x{eRj7YzyJdx23eXJYNBsDq&7^SPzUI=meHwyu5bF6of@D>EbewQhlkt$ANU+-S6tI}#7b*Hl8ndDF?g|-l9|@zqIH2@C_w7L4f#@k6 zJ!g5<7-Z|Zp-}v&@m`Cj8#>{smcQ~S^L+&S&KW7PMIsO^VR>cYd+r3s$aPmr| zFCm<^Nshc778~kqa>}u5y!zZcFCBG!A6S@hKgD;?}b)^5!4?<~PU6)<$t|3p4h# zq06>lRXb+0pV8+0H9`yU4^yq@zIqxqr_eT011TZ1ErG;G?UgzJ=wejc@&_EGQFQPQ zpJ!!PYehsbjRo6rUl5aHAJHVPqY||vZm?M6ZmX|3ZhlQ-alN{e)0ohIS(X2!1v3z< z(`1pCAoKMx)bLCr`p~`ei$SK@SKG1P@!$LkclM~!yi`r5?TpR%^v;+zc(qBK>b-5> z(lC3}X;eghS!IS-`o**L1UBi^O6hULm$!(wEwIm$ou|c!zq4bNZ$tSI7 z+oU+bpj;Ol!)r{XM-fMscE>|owJe{LDGsrs&hp_?IhYJKG01mH_6`yH9plVm>0(6x z=^wR29M*IFF?g!`V#R#U@-G5xTa>yu>785lhxR}IxrpG4pViWrr{o!z0Y#R7Es8+W z<6)GEU!T|(TTHA?Yn@18&0idGslBImtm^Y1{j>eqY_e|N^RcU#D?nB~sKY**IAQHU ztm5)6&F3Exq0Zm=Sk>DfvheM-(K?%7eqpiW{f~bPF_mTo;537$Kklp$I#&w|P(#oi z$BU@dGz>v{!6T`B{mV#4z?+M5#=EcSpaM@m!6t9PQJ${RMH(u<9g`KTp?-UTemfP) z{S*)+j!VZ0b77=TH$9AO@vKuckd$X3WhD|ap;ioka^HZiqYwkK(*^k&CPzV>75sHV z7OEpJL9fFh35SWJo8*FE_EBS%MJk5VVHH3Je-~740WvVzDHL(0#hiuZP4_9zNm&Ce zH2DQBHFng{BSzKSIvK?{UB;L!8fBp6g8hR`^kJSz7he z1~NuD-s()OaO$t&Squ!BWl9;o{ACWO%dvF)g0hY-e&wY5^5Sph za+)d3?Ai?e^{9O|R<|Ryj>(fW>D%Wx8N%?Ge|WBCdT9}SOFWu;@K_hd0KCTAB%ntX zp6S!DQ+^8-L7D#6zOrK=j}y?5NaO-XiQl5W^mCjBfE6=@4^P)VYoBjBh^ z_390dgh{|43at48C09rNhysco>1=b8bTyMP9pbB8I(f8<9Q$Xt*Wjx+>6GPBs9Hds zmPMZZ7MpB$TfapHnJ;l75@=;KKY223kbmXnpXey7xsp@h4TWrpfKzT^Y%t4Zh_n5{ z2+mc|BuX)=fWJi(<*{v?fN1`#$E0YJ3q|_rUc1Sw9gx=@ z4=h&L3Vk0;fr$2gR@Iu-7T z3n037a;zz{>v}vw(%7dCxs4%k8JC$to_)jGF>>!_pA{eY;qe8vDwfaZ@|~#YHEGbg zk8Kv+o;8`QSgY8m8?k=iCxe?py*seGX2mTpB1Ss3HbI%gk=m9;M?0Wu^dr^0fCezMo%^LK_fvBIVL{ zPo#5!hc+0dbI0UYz1*5|W2A*(=&-B)#=9uM*%uLFIk8qdGmXrPXA92qYO@QA6l)Vc z?k8!j`-8V@S$F){PWjpJKl^Dmy?y@!?i{n<1!F#S9DtM-W?YEj*Q2n<=+U2_u)!W> z^^Ypv1N!;1_Td}x*&mqv?wuV!`29a%6&g6MSmMmwE};QoC#G_+3s?ubX}`a3PTfgZ z?c8^7K#im7@{g0HW(FL{Lxq}C(7wqIf7dJeXyafGZZX&4k0GVJzi>Dst(Vp^k z+B)YZ|C}inQd4|P(OHu8EdP-3;-{;lmBd2)MTjl%J#`~ryCzfJRT88IJQw(E7@>A_ zsvib6+oZWFRAWs&=TIi;MO?B#SGD>KQfZDaRe=08N~!t81igBst3g;~T|_=OD6*+2 z)r=NL6c_(=MSnz29x}3D{qs=loY_IRH82X_&drlrD_56jO%LTuNRn@)bd%QfCfDZJ zams&WV2hM5chgX+tmv*R`Bp=&c+Y2W#W>%L$1<{ECyb6AYMcDL27%@sZy_Qf;}I8s zi*$9WUkYU$%6y|l&cms!=h9L!QdXxKr8I2iP4{92PV$O$FUY>RuWAG(aOq`!fFFa$7_BdL8ZCHFN+s&iOPRe*K z>)?v!_3rXXws^2q72-$3_|4R&C!$BpUqR+%onz6I$hO}f`+%yd>xNd*C`aAs+ta?Ij+o!oV zC+la_p`auhdp-WFb6BSxBs!KV@w$|clf`*9DpoGEaqT(UF=O?hAN6^+uu=*dC>2D_ zow9sONxjk;SqynK2|c=?Z6J^g^2KMJSjKKKrR<<)54q&4Yy8?ERh`Btk%GG*&S>G0DgMH_&v93IC*Y_(58Bpg07um7bfuEcB7Nr%^O zsE8ZU1(Uqk79?TvJZ#D^pJ$mJB*MZeGSnn9lyLm1y=yPR@L&+3EW<8OM4AU+ebWL;O z&3O}W#ld^O@oyqQ8Cn~^+7HwRaP%iat@nO)r#oYm?^ucjHjI^45UedRDR{X=Kn_RT8Tj0qZ(T|eaY2mx4ntX#jFhYwP% zC%}x*(F#YoG{V)M1j=z7dN(pZf#mpD8GCH>#=+>tRy^QCAD3`(;)B?& zC$?-lZC9J;5A-^=)ep%xCW<2PEw-#{>uvF+oYCwKkm=q#0TiK~<{{TfPn(F%r%uV& z=U5d!Eq0SldB*bi6>;oSpY={1w0H)A6GZ#8z4&*S6s1k}M{q+fPEy*6Pv$ch*2*N63v0XmKVIf7eNo|ufJat7Wwr}8l zK!p^n4i@f)Ya83Wk#SZT5P@m4}))s&M(<|+s zzYQMcIgGM60p%ivn-g*!%|7|14Nx4S4+;{2C==#=i(mlDt=p5RBs0QcwVN`gT|p~o z$U)>*;lyoP>WEHZnF{s;0q3dN8T+%PT)B`CyimfTQxyk~6=Z|R>1t7y|CX73`~m%V z6kv+2GA*-7sRLShD4xgEK}BAy2^_Cz)g@+ghK#e5VJErC^sqhSu|B|T|4~CmVO7}K z!63~Mr0N<9^3-R&S47awKnTKUO+X`XvV_|0fchwOR}W{>!*3jfT>47|m`#|ZGZYSe zK0p?ES4kHZPE+QAKjoom8a)+I_+lK54K#TWq&pO+3>NaF_LGk&DW)~b+=5lLVm-29st zxGa`t;$&|nfx5?E(Mb&?(B$RTH5D7OYb&%$@I(eu_4!JH#vN?!Ha)w zDSi4KCUwHKyd80bo;EtvpTbZj6YodYTbzxW_rGK)q0=@pAQ_0O(BK_zo-NQTMjXe@dmNrrqY3-_@z3Laa52%vUUl?Aw>EUmrR?gce}~;kk8!a4)jwnnhV?^ZA${@e zzt2w}{_JO%&fOh+BWK;)-qDaRwBI)Bbqw*@*TkIj9((!vhYXr|KZmh`jSif(%Za%I zZ68;D`@>&Lowqsrjoj2L&HB(`+P7%&inWQWdDdQ|o@Az6Un93dz4P3L7t2DtdHN9W zv2Ajy4=q*)K50UK#~{JL4Df=zyMXeSgKn`Z>(rGZu?5G3qdzwQ06+jqL_t*LPkqW% zR?X0IrvScetb-00E@GD-p6cEhPKKURE;_X1OcuU+$Iqqe5Aqs>GsQ6)tP9(hT(w&T zqeETBeHZmf{u<#}B0z_*1X?s(Obegw(B*zx!=7HJ|AH zyd;?Pr+ttD;LYW#RzEOA(uQuY@yfDH{#sRbn5P`_`F!vTPkhkhS@`rT@4moX<2)=J z)#+sE1CPYu<#fNrciQV>)$RL1)?bt38Y6O$FHnD`IK9VKD`s~DRWryJFt&s7op(V? zSLI?`?p20u13K%AamsZ_MHkQxT z-}-~iNhlGsd~CICHC9))Lv#gCA3y+^{d_!}-&oaO_7Bc=jWx?{N!qel9CjBu)TFCg zbh7PRhg>tw7mA8HqDPr70@`2NzklsQ2QqfIgv6Gk-MieRw=aXol3fpsJmhEJFxtj! zMgEK1HdwVIM?P!X1&&W2S!i|v$oE6p1{uH9_F2T}+$kyc|A9Ogf?HU1F-9BkL1SUC{=#C%kAD9rDOG%{w+INX0jlw@f}`Lh zzZFm&u0yoU%BLRcXgO`5A~7^tUL{z0Wc8D^ISoDXCf@@8YZ4rFBJ(GHT)A^LM+2p2!z@=cNAo)6h)@?y1X?qP#usbq4>-X(dgGmAhp~qi`(o> zu%dkVw1SPi4X~vrU(F<~lx(gOAX{C6jN)ia7B;)Im9A3`ZMvX+Rxjg>G}ZPRo@tb- zJ)Qz6zaU#a{mhpCt{k$TSIbvgT@UA^Ymrj>PtHM9)^wR;13`%?J|2v*$rwk?$8Pb+ z6X{C_-31Gt26eLWk*`iAv8&NpF&`%%x^)&ZxlNl;Ot8&*J`jC>BY9n$7ZuluE+>xvS~-NYiV_59pk zJd4fU>O79x3t4hk7qhOxAbFFzy;7B_E!B}3$rL9E_14CaFU_Gh`}(vV2&00iECqN@ zO04!ra;jO;K{6%5^I@_rx1h5KCDOWG9OSt;p3$H~lfy*0ZB$L`uTlZq{_KAj7g8XB z^TmsOxsNuaj-86sIy>sWNFNI=Alb?PR5{pkhwsJs)sk!cWZ z3HsRuzNu0vJnSrpnX~H8y3`uuVu+sU#0vejJ*%K`b1xqI?2{E{>HQo2c}co_0HL&X z|5w1lqx}ke=>s{@m-;tfC`%fTlb?S1U+YxJ*&5(qaM)M>#bm+S^MdVQvAp~XpS0l- z+|tH{zDbRP6MWwwSBoII*SFaxyZSjhm^xEj=ai_%YYJKJhRKuTd*fFkw`3jqlVy~) z04td_=dtS>K9NRH{I}_=Y$BsTxb-1g>AaS2ETHyONbkl`^}D4VYO?KPo-suytv!@+ z2W=82_XwL>24ik%sQx-7Ltn}#|FAhhPU^j;qi2gQ2ni|G^O>9<@_;!9?c z1x$27r|gx98br`_yEFsAir|0x=1-ybTk`dtZ+WM~`Va3$@MZGiHg<;FZxY|TDByV8 z_Talf7)SJtpbD*T7hd4}=p7WJ^r)$G*z*&J{ zvKneD@YQEPC#Lco!*bp@Oy*?R4oOuVnbxuYDP<0{9R^`o*306sOiL*wsSr)5nZb?P8#J3Q^*}xQuoCKgHP&n(P<@)`WgN zcb2&5)$Q@;?ihL9T(r|B?P+nP$M7s$OnmTH8^HaJTilybXN}Gx_&wtH7={81B8Qe(+~czX-(gzKp%#+QR9dV#OpVBTo~i;-r;DQXaR}i zY7ufKm5qG^<+-sl-D?lXJY^o$Q8%Se@xvj7(Ry|=YI1iop(Y$%YXm+{Gnwe>+r`6+ zZxhE(JBeTF^L~+Y@uukFxAIhSw3e=(tc%6!>eX{lAya=?R=nD_z`XhDsbBoxxBnUh zeSgJ%#^_;3{n?n_46ZVZiOiG>eb%MLI5^k^mFLN(@39@EAD@GJ^s^64d)E)JsB0{hvY0ubm z-d$}_s?V1zhrtC&{QksZaN|;`jdR;YaSHAhD0cnYmo>1Yhu8wkTVs>j79@swayN|K_=->R`bxaN3ylBH%JL{bt7|2UU zwa}mFQej5ZfmsO+%yKy40cbmoxmHFw9Kou?^p5xnCXbw6?~+eW`aR|}NgNRPjfZ(`wgH+pit%<|%om6qag~8h?(a44dG2ApUMP(x= zFIY-i>x~x)wT}i-IeKn~uaC&1Tcy;rJWwh)P@aj4M$36JMj=6RM+d6>YHZ6Ng5n9n z=*%hP;uNP!l=#Zu%3#Y5D;p!NM|I7d@tLEJ1_MdZ=Yfvi)CNmpoEFQwfJHamSM&UZ z46+wZtDD*ezM18gC64{J+Zx7i>9}wFn?rM4t{qa6JU@8#6@PYCi*V)ZCnO6-deX`n zxKf-Tv|=RcpX%n8d3yQfs~GmsjJIr2Xn}&*Q+{JWjdOpgLj##ekZsJjg?~x+ArQBH z569w(Q#DjpEG=a$SfIW6Kmlx7OWEwFRA#o$$2wW1CnQ&m?C3&@u@fcf6IV(vR~wYs z`ANMNVjrBp)NB89>~fZaN-F2I>4%A>~5 ztA|-)Zt-AYHj%h>p)J^~zx*gS?%UfQ^0 zGm>{CB_Z3~rN$#S3$AVQuwBd{n@q1~%1(zgQWiggpbYtz#;>hnii~{xYH2T@Bi}zM zn;=M5;~Um)XD4eM6p34*`b@cl5$*~y8$4}}P)2=U9nkW>@z=y;DB=v?r;K1;FTl(y|8D4RS0ei-QR4eQs=e-oFzHWs65UvqSu1(MaPP zJGhXqj~Dl7om@Eqmo|4G$3MT#Z}5G6q%0}0Jw#{1G3vy}rzSV^0b0s)(Ib?CU5CO} zK9uNe>>&=Z#-?p)it2fnjEQRytjNg3tj!x!ITq4q4Md?)uNWNnWEW}Kj4xlpX*?x{ z!Cl_+T*1h5!s%o{S=N}oYXaloQ{LP5Gtr-K{ibimogC+8CX<^yImy9BeE2efL?U{e z)O_-#sVux$6E3`)?;yBqnphn0GkMkEkBlpO1b|6wxQziPQ4CV^G5ifwxx-it`hGak zLz+m_9mB%i0{*0|n>@R&8fHws)sBw6t3)w)M?c%9bTC*9In%XsCnov93FCpE{!#Iq$la0dSs;TFr_4`4ft@6<^-dD z%jU%04W{L`qV&1GpsgxXe&a|#XmfTTr)b3=P-u{5As-RQ`{27i$gW={Hp#9@nOU3h z3?9?!XmJcG&vlcVa@Ti=W%8YL?doNzdHOdY z=i@T~kdqI`I%m>|&4<>%I@Fb+BcHF4DXFyn!C>rck~kUJgUr5&&N}E-XPkM?F-N5z zp67~#ro7o(yrIbUW8X=T&$%qLiBH%wo3c3ZuzHk1xfp!`q}Q50EKcd4`YrsMjZ&k3 zpYckgZQ{CqFugmr%!b!u{|Ui_>qt=D-yU+4wK4uyQ} z&*8mFSaIl;@2=Vg2p-K6 zcOtEX%Li+`$t7PqB;pemiic0VZYwiad6tC}dH1$KbGwKf>@S>l3KOq>`TT?}NtB68 zSyYPYCK4Q5kWf(2<+YPin!%~e_DP}i=#TtJexZ>kQQE1Fi7nT(^)x*k^3|0iCw|6o zyBB$J_=%Y!55_~Qo4R<)8mctnjD*>RPH&NZ)NPP zeP^emGEV%{+-RdWHqBF?zPsDx94nRyZT5`QxV!PH{99Jgs8769 zyz&OjEU2uHAG4}2)9KKk>PtlFe0j@&CQ$5-6;4cR* zX_1djtO@C?^Gp9+e(I(E!E34XI*s~MM|kuV1xYhs9?Di9;5~7)1q0ZplyW#uI^OC_ zKTWQMS%A3wVBaOP{g8oNIp=}3XnyM(aea_%@|XnZ@A@3_l;yWN_ERmYDAI3m5Mh7j zIHLYCpkh>z`RZV2B017i-nkjpjgw6_@*3oF43%v|IkIM_ag><+m@560U}7ho@HnP1 z_gO~)t18OaQM$C8J2xX9^&r#qwo|S@WU^oN=p>1Q*GTJZ{wEESb?i^`zGHzw`o$k5 zh+ba;y);MkzMZCA*{83#xa{X_BYwl3PQHEPzG37HW0Q}AeX+yiAkt9owOCIoUkv)v zv0OZqh#93TtGIkcYW*`a&T=8xh%AF`0`}GId;21102-x-G(3rW-E88KgP9@HN z(D$6W3kt}r9{uLjTf+Ghp*3hq$pQ>3K54OlYr3}D|NCATZwq&8VFKK}-%U?JzdN*y zfAvtm)}eT?O`Cn3<*VmKM)Fect?BTj-96dxi$((LsEHl&a1hzlm3CMr4fPovXSUz^ zD=I0zXZ?!XL|B?0^Fjv1NI)L?7AIsO2M1IqVYjZ(T^p7s{~Hg|@v&az0gCh`i(w>F z$8VW1Q3Im|hCEP3d&e;{n`fE2Fp7_{a{3{Q_yEpOEPZ43>K{G|A&^!&<44~YyNA)q z=G|=jP$AZ9Dz<4K+phIq7dcm$oBU#8FK*{^#QxP}Ap;ia{G}bK}77gYj&=I(OA#%asDF`^d%V zg6F*k%=eUMLrm-(i;J1c^7@DEvANUdig1O$4`j?#nRUN$eUA5L7)C!L$pOELBUM*&%QyjKo?SQYi zKXxWVequZONH4(Z1BIe(>T*|%rx81BZ?sqYm99IIpu_etAHs}VoPXBGp9MBW(Mk~~ zE@6Y~*s-Jj;_fbR)Q2M9cK|uw-J_Oq!p9?ZcHp)#Wk9EIeqpiW*SWL9Mo{|zkdEF! zXh!M0E+iOg^YMZxu#8u6fAHy;4?0?}P(hTveQ%IK!>3?^CZAF6CLGU`SqA43Aje=) zpQQ0qNu+zeG&vR&2E!x&vdn(Qp*uF9!4A_XSZ9ZR3~9ibO)zUiG&&4t=y-y{<7l;g zG|`b1rFmU6I97US@}o4_0x0a*>aJW_e%!?wrv)N5t1CAmt<@|sizOQ=6B8S`3TIE< zC_rBGN$!HIN%sO`KK`_vj}W&gHQCzGN+P9FO~Z(#SH4G8ZZ*z$ASYp!L{lT0@Nmdt z3~ht?G)~WLFyu^*g5dL3K$Yy4tK~^ERimGm)eb%O9b~Y-)Nk>lZxA86)f?$V!eLxa zEM-bki;YNJBu@@ix2?QOha3fuF#TQFs}~rgec{z=}Cv3A%1fk$}!fy}Csqe=$tb{Mkhc0d`%t9_BlV)YpG?84hA=?O=9E8y~wm z(j<=w*wCt1n%SYQ)tTAaAuU)+<2T8rC;MpT%yStlB3oUYgfE6uPMUU5`;^#I#hWDI zrLQ&zU*eFF_pUDeZeMJ^NAi2Al>Jn|YzNzB1KdvXDDzK+l8Lo*XW#Wvg3@cD=c=9C0$_!GHM7zFSLs>7sh&{J*lmeitURrSXILY+aMHL#?(8ClX+?E??Pf?5&NT_^>LVYoH5jk?fIt zmoKs>d=9d1%qdqrZsN}Y*cZg|)~702({7)Pw2KE!im2ThhdWW=^JdocQ>WFjI+ej; zPDZD9WT2k`o$uo4`rW%Y$m$zAdUhKM|61b!|6TEIUg$W^N1vFyG*Ipw?9lcLAWl5( z!|8P$l>2KaJ}%S3h7;Q0h)bDXt8I(QPHpGr7k`!gzii#}gC#cMZpW^_`_OSL~1I*!Y6{lY=?GB)d?&6HkPS*YW;q_%~B>((= zGzkp)O?vrNZo#?o{N))Af0k$aFoXldKK#b6{ZbJa*|<@k&E)eX{p7UigSU6_o-AgO zp?1%5sjb}IVlXl5_;7l@#M&JJu;K0HCusLoA++7qB9s|lYTn7{=!1B6_)q z!JWnyHL5jVy;xfuvam!TUH#X7#MLt;E(YnY;>Br^N*_Vb_a}e$lfKE_FVN7jJ9Nmp z7|g$P$h~BRcG~{&U+$<0b9wh`&xGMm-^bU!wc*`8Fj{ep^2L$8Flh^uS0#yZb@Sfh zwS|jv$oNFZT{y{YzUsPy{Acc^esadAA83pBN6!lAZHhgRcKMVITUft{&R_Rc{aE7f zJ!$2VK5RL0WkVQFcO|jqi}=CKhV~Ur=W-qa*!Q;gJkwsxVYToom+x*Fa=fs>xVxO> z=gxa$XXPZ!ZxvNgzWpOVJUBLICOew>y1kbZSQEiV#y6PpYeT0*oj&dA?+%EoC*}Hj z`dVDgk1n3^U%ZMXIWeC``vkF-4rh=CSLC~{>;%B^vZ4Ot;a9Y|$M9ZG zUR~63lzq{@&Y4d7*_!X>Q=&V6$Nre6X*y$tcRPoU!puwi+J%0#`b)Q4$i4Ar#F3|~ zJE6e8yBi)EAoagoHiNDHyrZ4N_r$o;@4wgI^jwPZi(&t4G%CTfT$#EVGC5|8`})_^ z!DqZWnd=kk8_YJzxy5LGrbXt9_2n&ZiFMd6aVBHA9~mEjaouCTj+9Ju@hv7KYd&e5 z-`GJ9du#u<5L~3eUHr4Bx-GhN&bo`5MLY9A7=|?2`iEsnT~1Ve;Gz9<;2w6YKV@fl zExPL8wS~)t|a&l{^Nfe!L+Y-*;b0dCCRhrJq zcRoo8dT$|9um;eWrshUT&IZ5{c*xEOoShEz#7(|}Xc!lR&N_m< zhHUcaf6ShAI8G&@muQ4M`j$b-NEV&8^N$01+6b^?K{{M6PCzAe;oGfNe4Bz%KON9< zMG%$bWUp1tSw2~3D`g-BT_XkRk$n>r2sI}7b$oXY zjY0G*FXvu7WIyqt|81;8RZKT24B9$~MO8yIxRT8dDB~kX>xQYVUQlXQzfT zyXfqtvk?Ku{uYOks!#CjL;!DlhYr>@rg-|tJNl!c+27gQ!Q@lmkT-fI$E2MJ^ILwB z&pPJmsD1;J9G{4Xe<#U##6mhDWc?-Q*WpBTPirW)x0)$EVqXL#2*)7LT^$R z{`;he+-FdmWaqEmd<4?^HS*y&%iaaAxnqDHjLF513c5#H`^%fl0apB^Um05~o|rD!eRU9zo3cr;U{B#7CqBXw1NCQ zj%*vf9bYckJ3kEeRGxq0qieUIXAL~j3n z+}I2Mp;ynZa(!QEX%S_XJ$Y$t5E*})Aa!=wiAYBOws)`ZaD0BR0??6=F(DuR-#K1n z{lBz_C9T=X3lPY@i4q%~4ICe$lTh2dJUv1`!{YF57p3CAm=%Za7-7LC*zvz#<5gy%Vi$$XPVc^=l`eM!eE4-n z7&F5_M|mO7_B8&=_9<%@p}U+Yo@inwJ)WWOJY3D>H<_=Dd>5MH>C?eo?8Xr@Sm_W$ zi)^*!WXoR@{`siIAP`Mk*V!wq3c==I|rc=-6 z>qstqjqASR^nKV_9)(yeM|t6_a3p4t4eN~|2$_dj#pSyFY_1PmpG+Wv=;o2^#e#0J z$QO%QMdv#QEd*){9d?qPzFw95VR&pEP_~u!{5c$P3`ggua`w8N-U3iT_=sr+P3B_I z5!n~p_RXo^{*)j%f+g+ZYR#^0h8y_PWwlnUbCpnt%jYA??=<9WPR_W-SN5*I61$v7O+Spx- zkP%H~_7~gkhBEqOTv_1EMR}_rS!?Jx3=R`ss6>H8CCYvHY^2Hl29i z{wUrpL^c^5UsbTK@6Y(ILiZq2&k~xg<*L4Zdh)~CaqZs1^7RRL{$;V_e^n^?1()*J zbJhkmc`Y7-xqwKhjA|AAv+q>K$35@10dEb4yc}8;qki6IeUmDRZa~4Ab_vW_POOB) zD3-k2D;*H!Dl6^$UFpT}fr7px$;px^j%24`^0B`gv-U73@=kC;eq|+RI(g?&a1I*Q z^HDNW;dqTDN+e|6r1lype&w3Ruwbe{IfR#Hhe{x&Dk0O0vGZYh3|nJR7KMiXCgqX< zFV117my~2xOfH*k%DhK78i#9CJK%+?!Z}@$zJsgs(ZvV%VphGOp3Yq$b~gQNgr9D) z2*mLaQeoRVvh>XV!%SwOgx9>I40}GX0@|qOUYrbhp4_bgaA1E zlRhj@!FDI}sZa5`vUo0UWKd-DPpmT@<~FvkvU-Xp=)AC#k^%iD)#_YKV00`;)5O>B zZ>eifZ^m9H8*dt>i$k`xC)2UFj#uCN+S{E}*TL(r@kZx-JXMX$`N^Mu6Zh%Ol?jiy zKNna(YGyvi{%>@wCZ5VUvy>I z4iRWWGyV>T|MbuIBl@6RD){seM3em(FNO{kKHDKu=;%3n_%>OX{`2Yj-+_GjA6xK^ zodbsc@lAA-OIg^b_pxVr6cd{kzd0{Dxxss#hjFBOKRL+@nCTF%ie3*9l=w6@Fz`Q)CpU~xfx{MviTPt~8?3KMoYBHv}n{ZCM&O6J+hy=O|BzlgQE5S4e0a;pKY??f@SA=n~w8`{u-T& z2v28h?a(8_)rKeLREUcVQhLoJ)${$Kteu*}eWEs_@WqZD2-ZF9%NlCd+*2B5Xc@ zp}O+PPuku?B+nQar)fR}mF4*Opilkcmn%1qgwpNl>Owy8dGE2&T^R11@b!l;52o2` za$LN{WE1l;Xn2!y?c|L~j;Swkaekpm8$2n4YU4pzhS3DLy8Qyc*A@e`x%nJwcOl5< zqa{GQJd0Doo?^@=6wSBc3w%w`h0B9K8@YJn&tx|-H$T>4dK~yQKED4eml! zYq`nvu*luf00Z6HjRm%~KXI+RSe1Rx!&WgD^W8OJF)N*XRUbjeE}p9&mTVH2-&>UV zlF=KV`kGG)pSWe4xU;dCtgq&_b4vU3`J}`nUsv^Do5f;Zj^0;p;&lN=JDKdk;KD0( zF7{R)UiL57=3g;^FTPhdHg@=bKG?g9F=%Wg^q&8Bt9`cmdCk;}MTB$c^j@?h=G(F2 zl>wyOdzE|b=ZGzxS=n9`^Cv893ILl99Hk_*qsI~NgiF44Bo?bW zs@_%aefIAp{FsW!h0`;|@UBoD@t zqf>GiBIjHeaD{opQ-5O(iKIWtz=pQ<3Fsa7zr~*pK75!=XYPEN*^`Sw9z9zJKif?B z!*bWpc;o@^Mq?2oeEZP0Hs|4;;=|v&i;Gw}KxfKsfjOT1pr3okO$+IbQnzRwj*XA_ zviEO)bl1%|k+GaFn1h|* zNt}{c!n%UaZxu~hfBdo*zta_tpKP!exbuy`ujs%eu5&~>JZI_H%HTO5`=($rr+j)O z2wlCUNN0Z&lW^c~2lqNEga3-zDZcS+vtLH^j=C*b8ValHnzo1Uq+P;qP*E1Gq^6JV z4e0GP(4#+lr?2u0RCK+rLnZ_J;hEg=T7j+sRYxwOd$Coc9aH7;_P<4!C=P?dbw!uE zQ-LoD?a;%sMoVwymtR@zybc_Vlp<%ZXy%`sdV`J*gKe?*I{TdY?>(IhnOZWU&63q! z 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 V-gagbDb@f0002ovPDHLkV1jhX6s`aO diff --git a/website/public/img/desktop/macos/boundary-desktop-open.png b/website/public/img/desktop/macos/boundary-desktop-open.png deleted file mode 100644 index 84974e14072969d38668efde83de6cfe45795d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3031710 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

    D(w(f3=eQ7&h!Wd0HHC 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 z

    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 z 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%0DX+QddpQB`&#+2&AuV>eFX8;f_YF#X3%yV~=& z*c>PNr+hFP(T{yYdGp&0P6AKzSs4Yj=}%+HW3YCtq_G&b{IOJ$`amTv;@Q}O25HNTb+qVH5@j8^d%dXDYnrTO`|mA0Gj z$JcQg%Iqo6*QZaiY>kVKmy6ywat0tiHotsN69l=@ZWvJZwY|@>rb{RB=$XlS6W;SN z{YarY@zBtja~fDj@yrE3`@rJG;`4zTuSfBG`i@Pah2y#jTRPT&>Bcm6_?42h$ zTS#dPij!J+FTg;SJh z(#^*yapmQ#Yz7XPUG4UxpR2E*B#5Uk*|Xl1%QN{BlQJcHMaD^WZHOy})~Lw7{G-IN z*F@e(5nFk_#BiNa%{K@@4`=#`=vjNF2NM`a`dHUfzl`Ig+>SZd<>|bGlpWaZa$Us}uY1c-L&nzj12K zTZ=;!bT#6E)K)9__HX|8|AXJ`vfvF0MErzUg9(F3ekXeS_fSDu2Z)p6-uag4EtD%z zaI}05h^|wTXn_eaNi?CC;CG?+p|ZaTz&~QoHqNr|f+-z~PDTBxeVpewpQyaa-Gam# zdK+j9xHiAe`zarx4CVsPLKr;@dKb8Ha&hd#+V6a5tsb6% zxW!*0Y>4F=2M&)H$GRc~AHH0?If$&0O@^aU~@~L0OP`=u--sRQ6bd12)v9W;)214@a(`#b#^WEyKu}=}M zIERP78yj9&h?#tuNZdAQ4oP0cu0YspQf*rf>N}(5lkq5u$JH~8njet=K0vhJ|FtpS z{^$ScfBfZN{a3&K@_+r`|IaV~!ZqWMfBdaC)fxvkzIVa&W(r-nh*`gs%#U?f{NRRf zwrONF1!rr#MioSPXUk(g(dMMrg&CRVm(LrVUYM;>HSH_A#l~anvC5w#-4bZ85AvW>D$1#Phxd@xQh%^r7716yED|t13Y5UeM+=?T@FIdjGi;k6?PA$d-e#XV$ zcyK;7f8Ai59pjl>o)_S8(1u?vWWbbT^)Dv=r^8`2+et$8aio=AmDOkYya#eGf8jM2 zuyczt01)@;D34wHZ0k2R1#Z(@B>46L(`s8YUNf*)yv&nwn|I0>T#B8pqT6qlfv41R zLpyx(o4iZi7j>K?+$}$LaQUMI zS4a3@1Fz*IykS-!nF2>CIBf3Ve2Kd}c{A(WY#hv~aVOSt&Cbag zWf@e*!XZ-~fE|o6^?)B^p}a9}tO#sw(IW)a($m$x+qVu!_r=WKat!Xr{uN2*2zc5Y z3-;UI_^6Zqu3zpQ_r@4OPTPCF^|*7@>=~m057hbDT!MfrSkCC;Ax>bvSbM~#Jjq$V z&Aqtgjd*uX9~jk=FoG&|7!x;Z^c+pHDA$DuNcTGsm$!XeUO+frfl2X7mvw zeQV67Ed#fW9qo^?ak9?6&eDR;a^kV4=5+JGi?epEi)zy2c!2NR`sPUD0f4A<8B33C)+8 zsKy#UTvzJU&S%X)j^tL&?K&};F)T*fe4Br4Dy z`-w3Ibl+%*#9>&?i}lg1SeOr`EXlufF)ePnnL@L7+HmgP$+9IftiX%MZSl7tWENS?={O zk4hGA^c8sXsgh!rXGPTHdt-EUB-cH|5Ja{&j~zE{5w6vvd9EH#_Bdx#p6F1ynji<< zH_68nVeMfKtzN7N>xOpo=jAWI(8pngVF4UE-A58vaU55T1;-R^djRX)u0D7w-b?E) z<6PYIfn2+$;Wtyd|3T2TL-DzKkZNRvkx-jadlgKBWZhw3k*t;nwdHI4w6{8VD9xD> zJ)cD7eEFVkXmIJFu#WH@Cz!9!@rMTO$~$|;5H6QX7K<@c!Zj2wK{7|m-Y7Jl!IW}p!Ws?`SaqlSXjWO`y)>`~x zoNg*cIR~r1IAE`}-yrGbKrYywiuOI18zad3Aok%rAF5A$`dqV&f$I#h7r@ppJ#SOa zc~1W1O{9WelsMa5F9lsr#s~VI3)LJ`&p4ss7KXeecbLVJ+B}hV`uA$mF>5~U2%8s? zJy9loTI7ZCp;Hpd9(CSKtq0!eD6(4{&=3A_?yd0%tBR|Sl&%@lSO_xh# z#udvxXRfYY!#i*6T!`$lmvgYbaMbbDu5nk^BvjvTyhJ0(sHo|tug|aUml?~gpD%&) z4Zjap=(%EnS$o42X?X39m900|z_0O%vVIszxle1Fda||C#Q-Vmt>h{CaapvZ(uIcG-+<@9W)2)S(du#b&syiP7!R|7lp0y(Q`aLcu z?y+0m?QTQs`rY>dD%z_hxmj~`#H;<8rR%lngZQhP_uNw4#j5>3`9E&lcx`}mvgB9r z0Bn+_L&IzWE;u;#Cjbf5dk5Z!NpC{fyNOIvh?iUqo3Jj z7bbL2r$?&VbW#KhsqrL1Oo)ikz6YNgZgB%hGN&uhCTpeVpLX`9(do*yqzrEproL~W z?*XJbUaas+S^LHq6Fa6%Dj5BL4-<{2a#}YQJHjp!(;W(Bg$hL=y7LduCUWHfR z^T&vB%wTOoM$Tfz0G}F>_r(mGy}5gT2ibTO31iA9mEHE+EaU;*F0@>f{(`=|wC@Vw zvlxmKjeKj@LQljC0}oUF;BO%jpFgk&+i$JdD@PWpLU9~#j#2)`xL*3jSFRWR(6)J@ zK_2kJfP(qx@rMU8-AL#Ka{l=;)%Kvk*xS$IP(X04DK~BQsUprZTZHtTc7xYuqNqUx z`aek4X!W80lj#+i=+UPQH}MrIF14IZj=R~!j+T>C2l*!5$fzh6+ovav$JHUS^WX8I z9)0}Ct+A%u`{mCK2mhyp3$MvH zPSM#7-7;>_q}7WBFA03`p^=Lmb85Gn{6D^){l_zoXGc8coEKCbKjmpWfOub0jn(0j? zxWTWuaS^TZtVg+N%kd<(=SrcwAG`H?ag3J|)u#Sh7w9@y87u5+qq*T?Fhsh+F}9nl zI7bhJUDL8Tj({T@t<{{TaPLn@pyT|}1y7;d!hzG?#JaJD&YKT`&mTFwU)kTl0RuTV zeKZdGy*G}eNX_7+d)wayf2NI_Z|vd|oQ$r{U>$z)Kl=_)6|g;w#maoTwb(Wmjp6Z> zw?4WRYxAgm@C&-Oz}JTJsCmvZIB3xBHO&^jAoGsLUo7N|vm3SyfoF{;klq-tf2Q=H z4;uKVRP<53Hl58rXB^t6O)+<^Qgm}cd^Dsz_1LtPPN(bi+LjFkl+#z`E|&S-F}}su z`IbfbVJKS-5-)wOxmS4gMyGKx*I)a~U8Y3Duv!vD*1EB_wPCzyHx)0AjmaN5ERF;K z({05+e`&b3=l_Ie%Qeno#H-gjn&lFXFZkR)g*4CNTn>%1TbRmt9ieUKbYycjcj|n|EG^PPJ5%7Ju>;DGMoC1 zF?9)QZgOZWd^p>KHDd=)@#YuyF=$^hTqm;4IS0t_Ge*eGrnH=U^iCQ5RlH3VV^3T2 z=JQ8(;<;(xesOI>UfKRE0mu6390f^Dbxl&%n90+|#k=aseo*Mh@smUIr~StpEbTf@ zTCD3s4(}CJ+MU0(LZ42=d-KIO z)!j>D1ibPNPH{SpUN=ZHxxntJw9lqBviT{V$Tki$h)KSpcU-%sqE|%lW#L*(^baI;4D|sN*DnC7C$*G9DgWkjYF0o;N(>tuqo+UhaBiCHZ!F52@lzdWf0~n5 zS3UOrSKeV33+CYJYTg*%uYcB= zzOV;lxrPVF#-X^Ot7i8Q^K`@{NItqg>1!PHVcj%6>9}`2QwIC%k%fmZO0kODHM64) z|LxJAYW>@}=%U}2!5!z3=ljktPZqPuh}oP*49f}qzw;*S%fFaq!MO=b)iIdm*X#VV zdpMrI>zTHyKM}xR-i>j>!{e}ZGni55<*mOrHmEe@7uU^c?}L#f<_Fef#Qu)m&GW5g zv0uH1zgoidY|6y^Hmnnfy&oZuo?L|8v(^RAVnD zVBy%p_i6z}>Y_1?ym$)iSxkqVGPYQ^RLi3li;WizclxwBSzMjZ<<%{?piFCj{3`T?jXFz3nC?6LMYC(BY-o=$TC4ULO*?b5E-TI^zL&oKm3(;wz-F{~|{D@q%T zz4?F}v?Z$3VcU$l`HwE>cig@oo1S5w2^IY!DxL zd!`+EqtIMvtGfD~Em3BxR~6wjU47yI)+^>>DbHJC^!R~L7oi+j&w^su% zCY>8EV^y3)n0!01G-I6zR_$m7-ou7~xv@^Yzv0wc%@2;`T%G5vdOD{+diOTvfDw_H zi!lGjzqt{Pafqk+Wh(~O;c7>lGb1zo*|qDUHh(1fi4!_uMcj7st+afue#3{S zBA?o=&sxNud12f%H;*2IFP6&0UJveQY;s91=$oIV2&uRzyD0c7M>l!5zLpCdjOoK^ zoX86~EvVrSt|0qxpC5E6lV55mi;N15D`PgR!?XRhsEH`LZrX}6FOL7$zIkH(`X+}g zg%cdIBFO1k8Kxal{yfWa?8&QGp_@};8Uryz5fhHaARCLTeT~Ni^=UCu@vJr0qHx)& zew$3xWgd_WTh|))-2?s8zx$6L{U#vEu)VMuh+XKNs5FN`$#QJbzdoJmVyisePI?*b z0TMd2>yS=#5z+{o(glV7K1HJq3xchHhG)>{sHXjO_22oEOhgIoJq*&O_T|)q+hQb0 zVpr4!*afvb41#YQy@jCG^vw-iZ)%;a*?Ylu|B|8|1JQZ=acv^m;R1~PEn4QIdd9$I zqrBWU&{uf7&?W>AfwF`od-W_F2c+cJRYb}UO-}3<{ZW{hzWVS0eK9ItE(G6#Gx`s2 zGWn%-7bV`@bmJ#SA4t0xFiL8@2b#pEyslkaJ=BNE`;%N+@yq|)AjduU;&AS6fxzV7 zn?+)K5p@6E>nV>G7Z@|oTWWiL(+OM9~r>!`1Y`9$r2;FdM@}A{klg}0v8|1rzwjWG#rmlMd z-r~TALB@F(S-P+n4bkgz5$a1d z>p5TVqBm6+gR2wsD}{cmttc21aL$fAT9lwz?WCzc<^)CBm8Z9wb3b0v7KA-wQ26{N zL2tSekm3W5oy!l$+6fCx)b+vb#lkb1h25q@#mBfg#|beG^U-;^3^ES!=;dmU z-jaa)}~tCFpuBnA7iK7II=?yK>{zOZfwwToahS~NZvp@4wDUa*f}6bI_}h3?rb*x z^U(OEr?Wg%uu&nh>#DoSSbD-)6OGuwrz2+zZh^}y=~4kK6GFspTJ%X zvFF;ln;z`re;=*@aBZ7+#&P;F#V@U4sl9HNOZDut%kBI#0{%&c-|@$52tpe-^e|G-oqYzhkU9 z4V<8W9QO$o53t_&Q7CEcli={E=d zbknU}u+0Oz@uAN#Dxa0*#+Y&f>xX@f|K?1aT??=!<2f9$z4e@RjU6!U?~A?mv+EdX z6Px2Ol*Ilowf;)84#lR;%B7f0bap zd1I!1G5qE;>c9mc1T(T}%j>)D;(^sA;nACw&x zGuyPm-c~n#T}*c#x^oEm$~W&Rnp*`XXL8qf#HY7-jq?}7xgwj$u5WVIvb9JNwtqaD zw`><1j`3vgI8&$ffJizgYZdu%P0<)KE;Jg4WD+>bIVC10y>8LBxsAj6Y!Ym_DVExx z-iBb;^s_0>;Uf^Pa_^dN!>$Rsxw#;@vtWIG=nOX7nkvR18?`7aaBPfv-hRTW?RVoL1dI9~A&PZ{jsLpH?H z59iM8ih~Jbs3qFHmb%eIFty%`PG$4?y?J|bUFW?9YxC8oH3LR-Wcx;nhyRAe0)INOmb#+Vp`6^b9F22oi_c+xM079MJ zjV*1+15J6KT}`#lk`$Y-J+yRh{ERe8BevD6 z58x)K2)y10mr!l%jkcaQ7@yVEa)*M(-ljfZHa#BAP4xGtw%Plpj2h<8O<8|B_1M5= z%Q}>&W5oKDo3g%`e|g@$1N^Jk{32f(N7#H#4;`((9sBud><|i=-Eq=BrIn45ygKH@ z>x4D0zTo<296Qf@>>^icPNqmBD;Iei`?vm0@8senmI%GMXsl&GRFAvQwLDSwnodSK zTE4Ag$IR9m3h62y2-nv5;n?SE>%8l!x|hJm{lyf)?C;+@xc=Ccymc7Z@zetiYo|Fu zIQUwdaWH=fkVnPbv~vf@kVDoppL^_!S#tFC!3_))N5iO*p=O3P~gK^!l%ih?T)g;657%Vzp{h7@- zw&LD12I?DmpJnM&x&I&q(Hvq;_CYF*jppCu(^hTKZ^Zp@y|%2}JzKRNr`T)0P~)KF z1AcwBho2wkyOLqED+cUQP?S;ngHnie5Vz~!J+keY_6#$r%^zolSQib?a^NVk_?cdHHIk8B4@GsDMd%S7ni08ts#)}8PMPboCJ4q#ow7E zk_&R}Oa>-Jp5y14=U&A5M4yX)bQUwQ9jJFx%BdF=Z(iOFAHp-?9!xh)`sYh_L0>}; z1)M~cx=F!f1Fo(9xv9rUr03uk$O+;m4Hp?cgz?P;7b*(tqT6SXcrmn(0off;lEuQT1SPt|{M=4_`eh+xnk&k7N5PC%oO&~TkHr@_CiN3lJw(?6L0oB zd=~|emC;WPxoL52#fOgmB%Ivn>E>{R(o^5b#k~AneCx*^mH=$>r^5m>0U#V3oq@+19bOhJD9p4@rvWa%I1K z6jXnc0k+;b7;Oql@-7%2=N~ow`or0opotsoJ($}VTTYQ|f}v5AXYx%)F4hV%zk;c(eSTUwJ(eaG&cPMOLl&_P}9{A};^$M5Wq$&p}BEB&$ z_G$=~j;y2ksF?QUFLr9WPV?SC;|jw59sy3%S+lgG*He|%IALJMv~j;HxNpNKTa z))!ozf8jYE_+%~drL6GIRT~$>s=g2wzc;z%(GI z$3eDclUUg>7TZTenDd9$_+K7gEv(wmv_3C>d*g2$^TW8|vz#`c5n*t0$QNVj{N1>P zi!t+u?Pr}=Z5J!+(_Cz=W*x0QP{bDTocd=>cbXkQ)05wR=8M+c%!B4%yv>O};EUbZ zw4Nqoi=o=f8MPPvjTt5AcAkXuUwL@u{F@H#8`FoSO*{PInD09j7oGRpEA%_Q>%Z|( ze>Bj8s}G`$iFlif(5L@xa`;QXr8}OMh5l)V`7-*|&C*F?am*ARV2pcc>d|$$w*8j>u<&d6!ZW^V$5w zFT}t1=RIi9M}KznJZ#UK*8s!~NE0*SE0*kHWoT@N1DK`n ze9k`nt5r0<^{e`FmcPc6_y^3fZ5tEM6juux8`)l`Ji*q+I>Kym7PB#99aDpfA=fph z7SBaTPJ712F)H`B7Vw;Q0p+yV(R6;Sk8@cbXAwt${k55Ago@kdrgdcxh2~a#F|Nf< zM7g0;ElZy5@r?`P>pdvnwZfX+HS^W&voD_^ES8OJxXs4=%a^n9;%~q6mwWRkNJz#C zTgvU4KtHhpr3Wycs{h=9hcm z#C9I@+NLby&3$#JFK*BN`Gx>(!%ErU@lkh|q=oRt$*EbY6=r#a$q zyiON2`jbT_7v;sl8@J+08*bjeng8+NoUfk!U}t>9+x13T#evsqEI*gu{)F_Q6e06F z1!T>|<^`LI5wGR%qhl?Ab>~GvUyX-EY9C8Z(tYdCkI&}G`HKP&$8py@lFhZ{lvp3! zVa3X8<<|tF8*^L#TQk5TsBO({W~{ z%ek?qyPUgQ?tYE~a-m{2JyK_5DK%?_zQttzzxar%YQAzHui~Sv$a60t-$b;pL+YrM zrOCaf#~L3JBz}8i>5Uidzw7w%nq=as$)k0o9MogWJ?$X|rsj(VT-?XTxWW0S4<|SX zg`PBidMvPWXxD4c@=L^F+Am%PeBszr%WB%|SH8TJbNDrWKF=H~oHjldReRZ#;)3=jrQN^F3TaQhcUzYJP8S*N*-@ z0j1}43LVlXz7wo+$%9e)*Y>W7*5vn^k|<~~IK2jo%s*TCC@?e$$L@3LB%k>=4)w8u_`xj<=%!NN)Ba}rf6Q@{?wNRhB2;fs6gmSEe|2$gV8x!xJkzDRR zd_;45a?|U&7Y=;k|E}>b536r;ooBox3|H~aM~`i1Z%ugkxj!%mwrjkXU016g>SLs= zTh+HN_1JA6w&Nh&nv&bm_qDmFakzZAMh_!B>&d(vKD6{V7`z$WLsuT)#B-p^Z_?HHFnwR~py;*uzfQfx*dJNR2Xzw;kEQX7}0`AI_0?8}8yK#xCvRF#wB^ z#bRNUeo+()AS_Rs@RlDJr!6RwQhG(}xcf_gUX3_oTr~6Q!0JIGF)6nG+ATixCvddJ zvFF0M3laSn!|%XDTD^k6f(+pB)$eNRQUt9WM>PJmT>$^%lNTA&t6pR1aHGk$|GOLRwW%w8?9|rY~ zJz_rS-MEwIY#Xo7O%F!ro0!J|Th_VUwg^#g>~yw?DW~<3cKC=f-~ICiJYWJ$zVfo& z3w_sPd0R8pI^4l^+`L7ERzQl1`W-8K^)J@mpt`Yw{C6UnFOJP!FeNRoa}C?w+}aAJ z?!H`D1IDSGUyi&8=tc8Fdo^qs-o`s^G^pP=qt8v73mONU8BuZ<5ze21GRINDP$n`u3A zO3VjK(NBg~FV0I{IM+LN!?ZpSs}7votKa8SzJS>x+^*$TKR@-S@7i?y#qArH@?iYU z7xD4D4RW6QfY6(9Nq=&NfVJtlyzKO*pd)x>13OURhxUp$u@6SEhLq;ax98<8l#uds zb1OzJ=GL#a-?;mG9b;tNSBpB`H3fd+sAC(Z+NwM7Y^(<6rD+gm)zEwm<8>=z>+1OR@!LDYBc@4&3xbIJHHPH_crZ=RtyYXvG+opP2;2BoBO1wz1zc~c&;go*enS3*)RUn3ya#&flsZFD`A&U zW4>`;ESw|gd$D*A62$EoY`4a_@kF?}S`(b_6L@R4@Ad0nXE56olxSEG5Nr=s`m zc$bT9){~J_&&EmR>2bwB#~A`|+^Vv!Xaag9Lo6u_>lu3ecgn*;SMaor3HFqJ!BXz-PDGwq)u6Qiu# zrvLiUoU?Orl9v~?rG3}V|LPzAYt{mP{pFwk%YVscc9FFP-yE;|r1fGWhh1~T^o?E- zWfD30zBl_3Sng%^_{!(zaBCi)wd1CX+G%T^!-pTX?04IEoVnMAReG>DqS=$u0w%UO z*Y-PJebyjPlcSdXQ{><~|Et@NQps?Dob%Y%A25(pps%@gV@7t?<*vnDBeE%uDq_iR z9JKY>UM%pN<_fBxe7a84a&yY%W$SZ()5i0xDsMfYi2sk<`o_zc(cuf@(fNhIV!ycz zJ^g)ikutl!tVV^czk-(YeZpTkzBV59Z81T-t@x_rhF?lMW?qc*HBP62?7Qds)35)a z(!Sd*UW>o;ljF}d4{w4a>Dtk;DVI;3q8}%5sWIX786mzo;n4Xxo^%zu6JatinV#{p zHKJI}GuA8pTLU7a2rn=K7zeR!(?VnCh0hvBxLTt0K$+=I4O9ZX)2s$&Ij9i^}DIv}R!+UrA(^3t&J z^hN#R?|g9AuDXbmV>o*l}x|<);4+iyth&C?1vGjlf9V9 zo0jC3kMmi4?H7-;J3v9(<7AERbZENT8|Nu|+#D6IG9Ve2AF{?g z47k5IRHuk**%y5nSN$BHT~9c-|LUNzflVb=>l<{##gIr?>;_CZS-;?zNXx5J(fFI`Ityfe86z7cCrha|BDpXJsX$(;> z&!ay99dhQE<4BHjTMPa8Afx&{(wW@K z$?R#jpP?e__%0$juiXtxk+f+Jtb50z03-r%m(OIGJn` z7dgm>qfZ==`;5nYLquPVBU?<*e)F9{vGM=E(d?X}eF-colB7kQI84d2pZBA~Q&!#i zs^1>B8F!9@;pJ0T_Iu8c{Yt;%#fDgCjP|^q3D4Zp&0^TA+S`(Ih!DUguEh4Z9$u0QwY>w<9Jw_}NWYv#vMPspu z(RUM(GGgLoi{vIgf~HOno(#0*^b2ZZbk5-njBKv66#nz~?e5I%*w0OKXT z+P^>d<*$1>NvN|VxWIDTLmt`=vl|{`0l!@|6U*lY3VnY0?PfgV=&_^H{rRqKW8E7p zNH*x0tduf-kmA@cd#Cwr%`ufw34=H!3Q7dE7$A2N~8pxY4%X{6L@} zs)H80e2^#Y_U>i7eF|at%35!Zzt7_Bgsp?mn9oP_wG}t~^|w;~{CjVjYs%k%Y~Imc z81jVUXsDdeV!Dl^z+!GpuilIjv3&8l8cfHU25|H7-N-x}#tR{1aunMe+hRPU3UvN) z#rD&sGym-SdtVU2?#oRyeDf7SAHX;k<=ng@AM~xSazW1a|EI)W&b6ce-+EacB9Wr{ z0FDds61N=LmYvPtjz6(_K#x+_A^k(A_(}qxa><bih|;wd!xr|M{2y;a~svylL~#zx?O__djQQ zT#eVMc+Gdrqw5VuHBLf`q0Mc|p8|X9sJvOHCHBP>Hpo5RKlAPx`I#zP;hf5(t9+l;e#AVlYKL!F7&YYxO!-EGUwTp333 z&@al(sq^KWP_)f&`B4kn(I>e5=~rt{)64T2ID6K_wpX)n-ZsXzIc~iUNwxb3>SNa# zIiRb3`aSfz)tkh{Qe5+}Kb>gZk0X-%uKvWZUF_L$eX_aS7#r`6Yfa%-^<~gE<0C z=U~ho7K{V_Ro}6<2@ZssotpVoO$((KIa6jI09;PwDqh!7kBk*x&QJ3@<>Iny ztuok^pEORV6B!Fgo3ZK0cp+cRlQ*6PJvqnX`~V51)oOx_gXK7ejL)F8n2tC>%;@$u0{7204HJR%dPSt?NLEFAL_$zNduQnDV+chr zJZ#@Qhd$?Vqywt;BTAb;#&dP-vGG&ExX&;3CE%EUZ?JW`HR!wFcA&6{B~!7TPvj!5 zYt($n*Xhqx0^`eg`fy==dudL$!!g=56;it4r+ynxXu%29g=KG0@-n zYA(wy+|7yC53>El3fgjEd{_TS7Gu56p3)ptL%Fs5Xn*ytt<$$Harvyj`*)+~HIcUF zosPY}E3;f`#(tWL+m4m6p4`*!m&fAp#~czKk=w_Ku;+pc9V%JCcm}mb`x@)3Q){z+^}SA~GaPMb*ssl>L-)1Vnj5*An?N|G(|lB?`s+lY zP2}Xh`5i<-dU?I-$>lrNvq6jH+7|ZVWt&!U+_Yc7WxK}e);{(6G6(bnxM!W~Q}@-E zj#>Y!bH^?{#A`lT@WU!Us+UB?06D)!cv~E-k=KyE^4|s-XCMC;d18Qn+dwlA{K!LS zYgpW{)v*tsv`VIUk?*wQDOBg?%3P{%P-&F6N1r)u?9*GQi~k#A$)cY<_HPsS`5lkL zkNXM9No$%MckO=X8pTG(y0M02h|-Ox**INu^l$(Df6&&4ybGx%%2pqGTp%<|K;Hu_ zWqg2|GIF0lY6##SHkQ~08j0|HRVUJ1u-tl=-eLsv6@$SY`9xCk+zW##_S*-}FJOWe zs0m@;J|r*Elr4DkO<8&PP{x8-Q8>8%Kla|P*}^qD%Ua#(-Az7#Gywuc5Ipga1j{O` z`JBiPv@A&ok#-yZ7$i zoj`)R-nrI%pN}!_agXtg=Xt;8T+6}G$WUJgSYFr1?0~UPv#WxxI{I$Xf#X1l>q$Tp z=H$x#L_+H+Tw6@#Q?e3+Vm5->k*C~OFky`WC%DLof4Q`m3T^RJ&3GCpl*5JBy}2d7 z=i;HLlk}Xdb%Cp8?HxSjK@+>glH0NGjWKV=Yi%*w1BTf*t}Fu5XcO~HAna}ZicB%s z%@hR1@8nm`_(^Q{C-UwA4|e7z?U&LCR2^%=h$ z7we5rel6GI?l{+WVnNw0oyJjE;@OQ99EXrt`;%AX+c{A)j*i3E{F7qvYEe-*4q%%* z_*i~ke0+%$VsdfOi@o)g%ybP>%RR8o&GE>f9dv8E+!WIj1pPhVf|&2Qi#KD`qe6C^v)bjNu#ZpLHul;vffcpQ69(6p%Jq#z9Pzo_V2quo7)Y)$ zLu@BRHaoVS#1r?!)m+wxY?_;JDv!gEyO`ol-+rz6(>%~W=8X1>dV_aliXlERhF-MF z%^RI)N)bKhX;9^yc&3aG3g5b6Peliv^Th&Nl+8Z#)Uv!br&bS5@WT&x!}0%LShCCn?0xRXhr{y&2IQ(@6JW#92ZP_61fv2=Zf*rH@EZ7E*ynvyM7r+Wj!g-sKsUy;qRjFsCEvPE8Ru zkM9Q=%xS&PJ>E9QovVrt`;lAbTNu1MG|0$fH@%!ca+N=0*Bm$}#ti7>)K?c}Z9c|F z267};tnv2ctBq|N|3fFk&e3~3E(aOYjS&jyHO_!&>pnnQ8~$Rb*vcU%j-htEVW>Q3 z{a>7gqU_gym$@Uc6~izMt2WBZSw(@YyFNV%4;3&K+S(` ziH|-w`rdrN_OJ8sW)G7lGd>6_CysRTSv_OAz2Nf4LVM5qT!WHTS687hAC~{xSEspu z^0#$NzYBH7>X&;T5M#eMX%Spr9%;5hDHEzp;YzPL6lnqEfxL5^HNLf81lqRF+&njb zwLL5?xruF2HcDy=cg&d{uGt?Uxwrb#P=`mLpQ^$hihBuJmbLV{@X5zt! zeB0tEhVy4PFV&adT?6Imn5g8q=%@4Nv0lj6c@B&m{2j!6G9R^P4#$mhH>ZvrJLbk> zlHFn@k0)lJ8c|Q1+?;hByzZXw#!23YNN1qPI2+_V4h#|fo@)`uydN;6QA9P5zJ4wDvPO9~@RumVHYTd^2Bw-;+wyC^gmUao0@+OQcKp{#V`Y9_ z-s1=&?X4}voc{AN!#2L>xC54Jqiy!NUTMfN_MAii#oTeko^dW_*zX*SrusE|Vu^;8 zu+q?7+RU5Qw9{9cd0CV2ht`j$=G;oRB4{9t&EkJ5Bqkhs66kjr4+1Dzg{F@D)jW&P&QFvX7>KFogbPhYaN8}Rcb@1(%CvZZX76Bz1e1{)j2_@5*) zz8uxL{yiQ<(zG~j&S^s({p&bc$_!VW%`;^M<1Mb1*(y7R#&S9~7jHeK?PA-mx_{vW ziFC4QF0|zU{lZRH%$vh;#=p%;`^`6Oo6iI~9p^1J{C5Sd330;S!-j^gtk(hl7&ErG z$$^tqd1m*lF#={{1jQ6cAd!(&Ap-#YfV8XymMolR}PmW9i(~ z@75XXcdi)s=7o-c)jY7wPqDFowof6au#Si}9XrQbS{=U286-?4je>3|A2`uFX`arj=f~ zNx$BvBTf?6M(SaU)mXvPbKM;i(PG@osRy!cvx_3QV(6p!xb?AE$W6=0tfbuL*2bE6 z;=2$RFZ)5-IF4ct%6Kde8TCyOM9YuMzotNx7&ir-bHQR)K$|8od~tr7Z`|li35J46 zFS$O2&wgV%XALFXGSLaK@{!6#ALq*Qo9HU+Z&X$Lxz0-?a`2-Q1Q_3 zE?BvEZ~@ZfV~gkPLg*~O_9Dekiwy0%>4FX9i=z_-o10J?dfJm)e56*a@5I;%sJslo zaE=e)8J~U;Fqy}bci@auAyyT+1x`;X_DxnhIg<|pW6F9vf81=UlL>E zXPK5TOi=vW!3*v$Huivvg&FQWU~`cJ--`wlo95!L?;*1DPmx*mQ-WeHcDqp4M^A>0 zVY(=7VKGkfF^9czyhYzd;7-mav;qdsAGn0AO^1=LJEmK-W@jfKbcXJ@ZOlun7Ib=Le-F{knKqYPu0d4fptR2o_(8|sVtm1KxcbB-d9hF4 z8yRsgzII&?yf|_FF-MKJ~NK+VsN6@nn&e5Fec z(@>XKVs~S@@ltLNNX0QnuxbKr>n2Q4YOjU7PpQ})(+v#&Uo7Yea$6jOFJkbh% zxt`I0PjEhR{)r{yXs&wWubVK&?(ocii3oh{t!OO|>;_`%ul}$Z8!?Qwa>e*yD7&0e z5_#(#Z;hRGwT!N3YP$DAFJBNz5!V=`Cd0q-u$zl@@P(~j^5RA zjOA1=5PSW;H$RpGQlGuX1x>x&I)z{1`JQ*_icw8FuB+_D${%_<$3o!dsM>DOz=Zf4 zSE9}4xSkkj8II|tuUvt)2U$nVlIzvxhnRQWRkvKAamP1(SAwnJ>V>{K{;tEW*X#bx z{*0`$;%Al8c*Z=K`L^{M8FP~H(?;i60w*_n9?u+;;w|dK&v`DJJ?Ot<2Vd7MbK;Ci z`sTO5=~KEsMcq6nPkBv*Jx*Pj+28uVoLEc@$DKFXijw4!I{KTt8HtZ2O*<0D+$q3W z^P@Q1Hn3g$luWOD+rtzgj5Ce=2ymv#@~E-g@l;=&Im&9ou`{nbzPE0Bo@bolaj@hk z19kONUAbsXf7fg5JWf+@4fOn5{PmBUA1k#>zZyhs_OXDFBgewOn-A@xnld` zuRprFn9gl;$MsL&%o9~PKWaVpJW#`f6uwxi$ZyAkB`bU#XRUjCd|ObtS&Biz*I!!pp-RWXH56RzG~*nP%1Y8VQq(d^ooy1CKV7T35G7WGvtH3RG5)fltkqrO(*Kxwdh%LK_dk!kb z*6rC4A7p+FuD<9~S|YWp0!jfd-w9Q9+kVHL~c;T?BmYPW#>U=G`_46s!Xw*0F0C0mo*1)S?>$x2<-Azjb8lfJZTp$FREcgrD7*2ttqr-& zZ)>+z?#64}@A+>zbL=JEnxap7IXn@J!@>k(nvJ__KCT)KRV{GO`IEO#zw>SScW-LB zxIPixT0iwuW!iSWF${SZ|A}e@tj#@RdHoXC2Rn<2!uxfMT3NZ06+rTAcMw zeB)xT=WDK}rk9ygj%&;M8W{r-Xed_BX;D+3FY5a$U_{6BTx81;?{7*yb6|9w7=Ce} z$*wSuzgu%`Lyq2^i^$<@v@e(NgQoJQX(I=&=QwY09`1gfyhk9P!yHb>0u$_kjIw;( zDF>g9W9(03W4PFD{hAN@N(|7mPo5i7_@ruo5gbhB5mr*4DLKxT9{EFAAGe+;Iu7Gz z7~y?%MIOFL+lu|OnyGZ@E?!yN`nhqF^)~xw*L-MXI|fTvAkQgBN4_*=hxL{9W%7#I zq5h5mwf_tcZtjJYTK$P2zjedQMRErc2XSCt+zOsECLs%?zXI1r2{ydhcNRCgcSFL&kb4^tnuSjp9<78zo2$IbZaOylm&ed>3S*19q4V#yx- zvCUW*O3{+HsH~)mo2X*mc6n&VlYM)9$;7l7Kl>l?w4ZpjaClRb&S9egs4wklzx>FB z-GsR(shdm_YZ0IrJ@%alq)CNM?1s_F%qGuH5>Ae1i$3+10ZvTD;pY03s4pAC(*feu z0Y5w!XBlXNy*AThk54Uv$l1np(d8#E=2rd_bQg6m%H$|Q8hmP{le}|dQJxww76RRG z)Ww-DeYczzqEC#Fmtxf2cyr<1?0r|IL7jOK>w$L7AX?$#9n9KTJ zLbFC4`~)4B9!!v zVVeW6zRi&u$}8+4U)^`H4LDq|2+mF{@XyMWe~p79p{=bYn`(|TDw3He$g4Y9V=BS+NSH5{mEVOn zjp#WSotHXQUeh)i^!3F)@zu8pUiks9j%UKqZ@%0u4w2JOaSt|w(-_j%1vdE7eDb!k z`M)d$QQYLjkmkXP%j(*{evapn9rb+FPIMxg9Jel% zz?!aJ3}>DYmtsC&_BX|k9WWaA1H8Gb-*>EMS6^m#yzhn430GVOaV+AZxQSLYBN{cew1ILe&-Lf(9C%ym%O>@Jp->6o*&d*hw)&Av8hmXH3UfAdlFxS`~lEUx|w z@0+n|p3B!f5tG-Q$Ilz?N0vAt+K1CNf3>R>BO>Jd?Rd}m*0rrmNb(~Ai`umXd+w`O zpkE)&C5|;=9CXz0IxgJoo*3P_z5&x*mR0L#BitO5-{#Qlqt<3jxbQJ5IAOR*Vk+@}Dl^WQ)JX1qb;tCpY)yrOVO9rDCY3|pYy2!5bL8dR zy#V_oIRB0R_}M>ujUQsW?l`eVXS2j3pkz0%HXjz#&dX$guDp&@mBvhh_HVvyUKlpG z=pvHMH|v7fBByf5njF-h|66B?M007_S4v*~UqH_fy#FGJc46zQ@tR$^YR_vkV`h8j zsJfu)ITuiRtc06RIcuBWRNXJDDB)@E{vn+S0<=LlX1?E z;WJvnppQ(pU5~Hro41QW<6mBrJrZQw@xMa#tp(~4yT`oUnllSqcZ_T63f%5FV)HL3 z_(L@A)T95($*CxIBW_ITgpZWUDGW_lXN|?;S;!qv>b9v~p2AgbB8ujFn|jzWmXC2J z3*~N{jrl$Q(cV4)<60uN`QbGcc*mChsjG#o)g?FQ+&DIm)!7PBoMoe5>Ih}Lw0m{> z0BYwzyPq?;w9Tz5Z|qB z;>l?!?iU*5`H@FH8lN~WQ7s2a)jY4Pvb+Kqp6Sr_1#La(R;0L7*RMz7Q&*pN`MS4vJb{BV$7UJE+Q6z1cQYSp$m<1Xx4y#`0e z_OoRcLl>!hR|;czbP%#O^5w=SFIyRo0l{ID-+`A~XZ`-ULOg~|5jjkboPlKFWB8y{l=Pn@XPcV)~g88!y$ z^{O-Ou0j6UNVj;o4w7i`H`p@g=i%QZPrvKjI&Zx7)fjL7U^$F~2T=2EkOS4i;oNm8 zGGg7eV(SXtK)|uKUi6F|{sC27Z2QW;^_Tw&W4%Gw2^S;>^$suvqutVCyMLp;g^aif zpplYASp7o&4o;5Qd=3-^3ljP#zC)w4k>{k(3vp4!YY~kqc;|+U=H%e(;UwIrCryV? zCt=2~HvHcZn5)h9ZgzK5bT{XE;$=U-zR4{|s1#7@aVbV8sTuq(#%Pnjb~dQPk>3UD zLe?Z>^Fq{i2W@d<0lD_z=IaqleK@w8WCBD|j_T3b>P9=|5?O%((#7IammvB=%(|PEuN0U$(glgR{V#3Cj=vmLq+4Z>q~#)4jUdM z-AqzX(3(K>JC2Tvbrk->+6Mk5? z--%Mbz{lZhj>C(_@_P>fH3t~uX=J+~HRzF1ba|odC-|2y%C~K=4af0$5VaHEG+OL# zA8k2$a^DLrUw+b=jn;Cq6C^&B_s9SEPrd!&pZMn6U;i6_y6C1nE3E|1rLd%;PWgYSB;Zo!5czVD;HxP|)xpjwdI?Z+3 zwHaxZlyk3vGcNUF-!}Q*gN7p7UuvUgonLu>@^$_P7$>KlaGia_W zyV%N2J@>CXw6Oz|SYjgO&dv3Jwr=p$y!y@i38`j2xIQgk#UaYHIVOO?Z5P(GojlBh zV}U=)K<2O?}uEgie2T{{yT(RAsY7`%P=9%kO z>!w`d0iJO{MoPtpau~c#7JJ;h?ifO;`QTi0ZlK%$e`COsRnf5oYsb1k55Dt`9%E9o zV<9ojX%fA@HFnJJ_^S=?&Z&bfLqTp?*JHiVo_VAj#kQs!W8+H$Z|)R|9eYjND%VF0 zkTcvO8Doz(vrkh1z8ROrJ|8ul5%ne}51ZAQWpS`<-qOYtV}lDa-2}7%#^yEx>asoZ z2QcwGuj#lhfNf&vKk=7uCt}2FIje8_Fu7gu$%Z+r4!Mv`f%$FighzQ}5TsOGPx*|S zdfw;=iMHk!ZG}KvV(E*%$BDhZ$d$fp_p5wM&3S~u#=_iaPWcTlW2H`@(#sRtY&C^K zD_(-j1>ySEzmrOxn8xYSCpd2nv)n+`sjdA3UFXP=v0q2r;2^7gv(W}Q3|;$oerVI5 zJI~5Z&uh>xX;oFzSmV3tmOs^VCRBu~TPI;PFmeO<8G zJ->0GxH!VywE-OcS?*9$-Z3{9*zD6M+bM=+*>)TKz=hzgSIS__v974pQC!#7j{H)z zJ_>H=d2EuaXWQPL*KS2~1RIa>QMR7LgR(8k$f>xOJeyFEYrnr19yHQ@O zodveR$#;si-xwGd)=Y7_>8~^~F)rqaFST3W(*eUhzn51ZU?gw7K5{)V=o6jY%Dx2@ z+b}BGX2%qmG35BMT$g?LuZ%nMX5#SH7X0oSH4|e!4gGNK)P^udz)gPgCtvYT`R-s&2?E@jn2bA*D&$ZEw|u- z@4jrj7VXdP1g#h+q^SET=-v1`F$xWiuGKCC+K^vyG?&fW9T((utSeN0sMDWgMQ`Ud zJ8o}2BsQG~m$k_`H1gH>YPR@eEU)!nZaTtmIZE9s4V#~wx9((b%9 zH3vT6ZEiisKQLYDWFH&NQQNV~+~ix?{NHWI z;K6UiQdj)O>mF;5sW8Oq*ny7iQ`L9vxGfIN1FsnwAG>a>)GyzX90mQp#|dM%W1?%% zTx#xU0E5K6zvC+B2Pks(Z>!mHr>#6VUHZCsmK^oR|B^%f zuKgm--;B?ez_#CUB5&nYYkkIR{l+2La+$z>a3OF~pU;E{cD5Q(PV_f~A3L+2$=*K9X;%m=Zb4CA5fZBAQvJsr=TcOy@IEmsy_ugN3dwUjYTgiZ>^{f=d0e%5T~ z$heQTwR;1~iB-8I4e0#eLpmmlI4g#6hI7WWjoasyvg~gG(Da z{T~h!*o2L^Zi4TLpo=J#0+N%;QFjuYMd1d_n{)jcp6p9T>(cWihzCCM=G9^>#<`)R zP}5sO2G_vCqdx(_Ui_WFaZ=C)nZdp%D8|(|$vA7-_2j{1GUnQisv>%Z*rne^41O!; zL0x}Qc*2RB{3fAX9x(^B6aVCq^CE|SJV1Xj6gHE7El&~Qkhw9FV>DJJMljbR_K8m)XajaWNOCm8z}$oItEd9w$iVCw*z zpWZi{vj|={Z)vmM!iiYp;`-sAi`jyc?!C!%WoN$`Qa_s5aV^@qVxxZk5T73QVn_aLfSP|U2~~*nf~RN z9wDb6aJ0WX0jqDI3V(2xpNu~;oeUZ$?03xY&xK&bPhQHc^o!JS|=Ct$k-*s4nqFmn0c(Ne74T(&KvDEFI_8mnJ@Q&c(DTi=9S3d$ql)2 zn2vdqzPv6?ODP$O7yHN-d*nLdAQphF>F^Um9b9M}+78F<4^y1~w_r`|~ zCD@jK_SkC(AlW1DK394Bs{fbi_%DnxFtXYo ztUz!vR;<;={my3^%OCYccQa?i{u*(Rk1ugLE+D7Ge57PN{ICXXZt)o5`5))m_qZL< zSsU!?81C9*AMMMRkUBP$b@Yw%jp^HB|f0{H3 z;g$;_4aaya4vwpNsUR)tyQUpe)lb~SQt&Z%k#DXRLz#(Xj!e!LHuDaMc%i zkw@BeD{kp+R87Bfz4Qjh27b1lpvRy*`GxQjC)ZG9{dGdH-J31TIQ@#?aEL+YBOu=6 zvGdUwwT2Z-ZMvdNw`j*<L?>KIQk;xX>7_2XqO(P3_$_~*H_Mi_|mFg8f+ z0y(^*uUEw|V(IzjFTn7b6z?c{%xTV|Q_c@;=Qa$8b7D7A1`(z_!ehT-s*VM^B|jUE z-Q&8CRvoxwF9+>+&SjUrvOem}{WhIgJGP7Hc5sg`_QSCDtS0Y#S}Zkadt)ju3D!ox z6AGNpulzvOBR)qaEM(X_x4p*fdJKD8hXPhOnRp;>yy^#E$aODB%S+Ek=ZDmHmyf`%%7-MtO;x2~Y$xODx2KY2=@xnfNYwZhL}weHX&Kerw4wB_8l?Sj~Q z_*kUbITZ_et+WpM;_W)HmgA#%-A~+1f}?hb^W|Wgr7c$nXdC~XzFB(_S(wFjb+DQTa`JcI)|ekU-05b zd_*(WF(3$6-Z*UyX1z%6*hOM~z#aeZpH*%w9n%+Hcg2uL|0|Q+wtTPWEaOBv`p_CK z#)j!J{&9<^CG%DtLP8BTnugONlLs`!@s34y5LT(OQW{w`{NuZA&IdPfwb1%!aw}*{ zYYukLwOcG0hx+WtuK8d7VlVxf6Wj#LdgJ5qC*7@o-LJX44@*^(b+5m?nzJq#;I$5& z_QjNTug43_c5*byu3 zFsVSf_*bTefz{-B8PA+k6e7kthod5+1}l{0?czczN`pz3_M=Yc8}WBs*kKSlk{Up|x%)Y-JO^{aJG z+*)8=S{RFsbstzzYvHl94g648-)HFhv-*vPom^QL`)j^ffYP4%J-^M>!?`>dqxzDy z|K^(GVa|#n>iwm7;<7!lS17K=i@Ls&+r^FjYc318In?N-tNqQvu?H%fJHO&g%rS;T zV`yjF@syo8XDpQWnCjYYj!C(7a={zV%JXLNQ_u6KVa!+ZL`-D2?s$wJ;J7hz`uCXY z(-rkAfBMh=C%;*8Gq?i_8Ye{DqU<=+@F2ba72u$9^6AO3Co>q(sM?k`dG`NYy6Hqm z7Yz-PQf%5_+YR@!45Bp@L|Z=KDccTpTCL#!Kj%)Dr=Z3mM0u6EN^QsZ(9OZo(|VJR$WT z&?^@=Bsz)kpZdZ=Ty1E#SWSpNC!%O}EvLdj4#xB`W+!eaCbRhA7Z`P+Ym8iI#otX< zk@ZhGqoAxe1Qvg9n%A$+*~GZ9*H*Er&+>dOZ`GlmKK=HY2O${)b<(%6?5{@Keq!5)cKWyzEokTh7OHD6 ziqn&~4Zop~So+4VaoaelthU{!O*F;1QCOFFywIE>_K&)Ktvf0RHT%@a=h?flwJjUS z^zabBTIJv@w_(GxGHsYV%h~D|m$g}secj|=3{l}|Td4nL2HVL2|c$QDpyqDz6@a$7miak|N-Ief6M2ksu% z54XwBpL-K^G1eA-xpt>N+Yj3K3&?ECM*GP3jV*Lk+8iIY+-%D~xg%|E8dG(wt8W~6 zi=TCsM7~?=Z=e3({F_f=UmfMA5hd}=5o5=GYaVTG31G!f&w6XKHQ4Y2z zu*U4#*tzqLN9Wqbb0gPNU(Q)xdp8x7QJS_O#?##Sl;g0&t24&iTykwzV%Bo&zJ)7~ zatztK9!yUS(D3lH#c45){zOYx5jR) z5Gx;LvY0DQTs)71i#pC@F`PHn#ifC!lgI3}(40~Tsog|V>TK!?WA7b98*aC@Olo!I zOVRx6SeBT)Hzz#KC#&5iGjixV`!u4QIbiuW`UmpThbz1rx0?s_Ysm4-gz908RQ3*z z<*g;xCw-<(QQzcz>>EF!JI6&yAM96JsojV1*d|xk0lJU>`g6Hv37~Q+uKH`7J^$RA z)L6$6dyR`&A|huVcnlR|Mv!q1Z)_15b!^LSuCtdv6+N6U^1K)Tqff+XOSGzTc}O44 z`H)S&B?ce4#m8|{AED+$LXoA3S7QYB$q|Vgr*b0G=;DhmZY-rk|C!5j7N@@U`ma5G z*tvRRdHRf}afnbpS=KKMP)v8h16kYPU-8-%;s?It;TRcgH##1=8@KyG0XeuS>-;*k zbk>Efe9HDEKR0) z{V0*}YSZ{yjfLe8&0VRDkzZ zQ(!#7)WY(93;ODJ|3{Yt!SO)3+CW7I%OvMAn`eNtm_r3|{YcvD8_?EQ+6QDv?n@szz@F~Q4<@9t>U8T8I&UY}7GMU9LzJN8 zHMPryk0ht;BvZWft*2iIEWpA)Bd^n9pO-o%)J8;91(tav{kG@ps>)^~`0#VkQKEyp61bj8NPe147jPs*FO??GS%06x`&^kR zN%Yl8uMSV915)nk-M^~K>5DPTtF#{-_z#Xjl7Irogdh6nB~EPYh$L zbL=^I`-5Dn%$5Nsge7IbfYM8;P0FCTDyb>>RQ}EzVFp2J6NOx%YuCZHv_o0d^vRFA z&V?EU-F4n^iLrF3Z|7g0%Q0J_e}46dF)2X*MZ?w39wyTMzA_2(hh#2%uXbGL7CtBF z#Bq%E=xR;~bxrT<*ZTOZ^@5qiv+b;k?a7IcVe$ObBKO!35;t$i?F)?Qd=UDQ-lD#2 zr{7H%zPe`<;d-OY(yQ>&6#X48nvI4l2E5aCF1RSLd(F$p@Zbks5B!k&(iW{r(!8+6 zNNygPsEn-iRRqhG;ZT9dKq-|=9J8H*YbJToqv>*&9xHvEyY+gH@fuDVG%Y8nZ9^jy zfKzz7;%h(qWeRMaYxYQgzLEH>>$uqA@UbHLO#WF~18kDzEpjVVDM5l}<$PNH4tw@- z@2sDv)l1F-^2)VqHvO_1k|wHYqU{S8 zdW|DS!NqpU`odyz8ShSvmuGKUuTZeNAp;Ir_SS?{Yfyr+pMQGLK<2YeP*khu7X{ic zw$4C675ww+u5964k#J6dR7-xx*Xtt3uqE8;4FMZ5IWA4)~OWl8AtMRcRx=2XwG)xsDFDd>$v|K?_aHL-4h{q_Hz3waYK+^b%%3z zT1?TgSignt4w;>8KE4zUS(kVJ_a5nxp+^AeIQlCx)k0gP0os#oZCo=jm^;R=yHOrs zELU%B6Ii85jo+YBiGu{No;Sg3$6<9WpgNRJ4g4RF0=Q`GN06sL{)AGE-QfO4mL6%!5f61aydU?dJpp0&-4(Y&tps0oKe?CJ9LJ`nii$mcSnf%@(~9<0 zYvkp0N*>!V9>8A~93T8JYQXpy#g^no@48GVrUMVH3;bHVD=5(%QaEn9|LFK?Q{!yN ztTq-`zJL>qKTd69$M4`0EdgrZM0@GQ;Q!p(60E{LJ8a~+-!ZJ%QG(~m-{|^`ab3$s zcSOjit~&}(t+pY`v759`H}(x}(q1*K5MNE6ZI%?MRhIwW>Z^SF{ukXL_F~ z=ULhd=gxjG43=}gLyN^92HX~+VGLyekYLs6g{FDM29J@oV*a(_}?2ZTI z7gk%c=pHQUsoo}jjU1;Ll)4Uo$MAn@ue|49Tc$NpoM?)&u?1PzL--%-3_ z6ohtb^y@)1mwS)txBHi+k5&x(0QYYo{6F(l2yF_HawsB$tStDG(ev5EXR{Jh!|Lz+ z*pUv}O)rTW!XY=igr?8Jj@Ej+0q}a{4Zqab7W-A%@TV(l0ocqznCC2P{>tvdo)FZ) zUY@X49vARhoJE2Kg`<0V`QeIA$yxWDY;OKpRGg&DjLiOSY*?tg$r*#8y zS;5Cp^%hKnYvY#I(9(%Ga%TFT7Z>H`lVE3TkW)ZZzjR!**|L1Tx~fy5{bGYLy9EKs z#(%T{wv25!iQnJ}f-`pZ#ErsU>#lOo9J)`{83KBksGCwQQ8hG4umd}HBz=aXS3e9Z zH1amRPJVK#7*m%<-_@BxhQDEaU%!a)h-LG+ND5V$X)vly=J7A4ll(IiXs32|jMI0U z@k+Hj0>|_A-z=iGMk-|YTTnAPW+J~?n3~G1{>3Y!gL{TC*~1wL=5h9NgTVQ1lNN%= z92IgsS?;tYvhSSvms8>s0I%ZWxkYyTa6esel`3wUBif|*n-b@30{3Cr^@uUgvR*R@ z@4e@aQUJv1jOAX8nnK^(4x%qfiTFyx&t6+mquY()$UxU;DXcZX!;$Li%ddYFy#{Uuf}Z4zgtPC zJgAyGynin^U|mO5NRly9>W!5=lKP+~WS}MY$gT zqB#0TmmT5qEH`3Sl6pYI~k4Mh?MUA2nL5@pV+@D57kbE-L6;@~a?ceViZp(Qc z_>TM{y(+1+qF5T-IdN!!CQ3Cv7U^QawQ85xejw+6&)I;4ux2^E^|SxEG~Dp)7tlHv z*=SvBYrrTCng5lvIy@2J-Z?w$mb;l&55RL#Z)n9`1%pqYm!s#ix+(y|6%(o;1>f8kA_dD|FE!T zma~%16WHn_+-{-4&(FJ$XW^HBz;b8()vL6&*K%{8I1(KH%3fyFDNGa}dvQDZf$`C? z?>YWKs6@Vz_t*yV?62c@mgoeDS-r-qYE|<*C0RCUy67SMjhlTygWJDFMzf;1IInw9;uxaw=A$kuSSzVJx~DDNO<*TPyW z>LZ(+$3kzOR?49kRevD=J;`7by^8rr#f^;wld;itit@QYO>G%*Te+)!}mM!xDmG=u7ROd;|cm*{D+A-P@|Y#5rfUTy>m&5^7WKzRbG)hs>SbFE6`9CX0hH&zn5LeVFD|W*P@{-!B zXF*HC7kw|*TJYh`*l-bbSXaIKxq*ueJYIdn^ zEYs)kiH#HVRJoz^pqK7R-vUI3m} zQf_0;mBA1ch3r2vbxzT(O_A58^<|!sBQSGK-{yXnCd32=B;SPhF zS$xd?Fj3t20Q`RSWn5il;UoG?Hhjy6pY^a*>1DovA>YjXQ@ywm(UPdjrFI^ww@i;l zisd~q!l#Dn!Fn_NR~{tiK-Tab%Q)YeI|Q%cR*%Ze=9$RNKjK$H^)GbD1#^Y6GoNv? z%?HncS2*StIlIhL^X_M*9lNXTu*mW7Y-s&3Rz)4hyQ^#q=T?-?_&j^?I});PigTfu z@Ak@$U^^494geVnSR7+2bYit_`q{Y}V9yDgUw5MeX8W9GWN#0GF74527`pg#vqL2; z$ELiL?w1`O@5}#7=@}Z?Q-k%Ma&I52ZG0G2yY$l-qI@_$N9Top8Y)nhrzVL|G8@Tk$!8sD$yZ+u%tZrG`PGS0}o zS@rvN4vEjOsg*Bx*xvQ*9ihiGShhCj4NkD3dwcdKwsYapB7K})Z^TX;RVh>3Fh`Gy zb~oH3-3NrP$xg-8SN)t$RO^ooVOf^ab7|(3=ap;TRD4>o(QzM6kXE~->4-?lmRN57xts9n~F*a+hVOPYTUkrZrI;s9X?Bzw{Q#%FWNnrdeZTzayqCqPCH8A@gVG_syy;N)PJ5@ zr)h^eel1Hn| zOA2D-G-$J1%IMZmGV*;ks398G-8WcA5WbZax>l3z%K(s_`T^}`lBJvL58CD&@w~RD zI*Ld%z}W{Sc@L_AHx;kCw83vAcgr5E$tV7LY{d%)tPcq`z-mT!EP!)066+iF?s1ai zc3(y=ug{e4*uNBz)lURUX;Kom19jW$Hv(m3C@EMYk$VKYMk0G{ok< z@go?CnypZgkfm-r)hZ^ipf@iE>_i^A!-*54ZbN~IrZuX`s}hGoheR2Q%pAAesGUsw zY7VB;Z#Nt?C-5ubZ=J~+iN?9I2XPNIlq!*&+_A#_0_$^1En&A z&+i)jv-4+yvC-uifFhFW3u4kk`l(FUDASGEgp&ftRmG9R!5JoOH+N;@r+IQuD=*?x zt{5_jA;aiqSRq`}L5aLsd_6`?B3{xGyDvd30jJBiKLcw*ZCM)?6j*&uecVQ)_&q%Z z?)eQ)JoZ-I#0zQH4T~#ckcvr*QlYVCOG}8f(mOO zo=i_c!l?XfKFfd66I*iY+Fc}kry{&PHo0)jR(%-v>*E}wopgkmHFjcy6e=Z zUbt`(WS^NYie`Q?8d z|A>3OTGZWGUxm<7xx9JRn=SZCyoQw4*on7=^{hmC_MEY+>M39OP-cWvF5j5GN`%#-iKQ`L4CSD$BrLlN5_>HkQIA_?e zq!oK=WGq0l@UzLb`VT}GVojpkd*MfW8cFx1gcO2^{?2{d#gbJy_QH63+T&cq_=Ppd z=Dn-65{OOY>$0_bBWrtR1mDj&C`VFSI=3SgP3cq7h}qf#*xD0~sMmyb!99lSL6?!d zzA;=1Pq!vO6d!_Xy@+-e+=29dxTXHRt-7#2r<;V_v{~zJnLwLDHv7w&D{$jX3`;4o z5ALJ!=#uXmtTR2%SK}l_bnoIl_3?7oYdE?Xj1z)5E2my)kGf7pf?4)|78@cT|#vUgmKbk^#dr$6k zt0HTDl8j`3(&RTClHhq2Gh`3G<}-068#a)ovP@s7e_uvi>0dTFs8E_xPY#?IM=Mw( zDVwGD<%ETKR>w9GI6Ni#DU0f$dlOfVq*b|tnXW#~?{ zLxr=x;=%Hm3a;|LT(WFDvr4wUifYB3_X^D)s9QJbrV^mHLaA9Fvj}R`#3#z!&m){n z+l1%I*?sCDrbhamwy3c~?0az1m4SOk&QeC{xwP5!yF-Z`9oE)%)SyAz8E-i7*6v}W zVQV-|7-00f_IHKp&8F{i!&Tc&`Z!8bT&(}f>q=@Q6I52f*IQ00BtnQLjPd(dqA3UnWHUS-CO(3WWQA;w$u=sfv8@ zsjn$_^Ty5=N9oAuP;uHBG1ca!-Sf!oDgA&mb|Dlkvgk&XJdkdUXu)0mVX#xwCs}?v z3t;Db5L0s=>(6qZ2Q#N=^J29izQteW!b1TbvM|rg*247P$J(7}x_S>IN(tsd+zmnPfK^ zROI}TfNJD)N|1sDV3I;E8SZe?@y=t-s&NJXYUnoDQ|ytoo*!MJ1!z5x*#b+gQ8(3+ z7^rwGpJ$x%1kNeVzG-PHdPNT7s-Hp6e*&qEgRHr81~&ha2WTr4xFXI@vnqH*W1BeS z=@-OrEaDsk%7*LMvFMk7s_MI+GNb2irh}Yb@g{T{MHtI(Fn?o{8DD6+7qF!A)NI6Y z$vY@nT7LbzG3URhiu@77Cyu(SAtkZ*05Fq+bwCbUGOb347kIqJJ$Ws7=X4$IQ1$Ed zDCV-^nQzeRu;!rn!A%CFxXF(1i;xMX+S|pw4|2LoRW57tK!(3pG^~83T*oZXGIXh& z@#V(Dp39d2S}GJhUP1C+BG6^tR|Rs6`J5^Om%XpC?FJtBkUpsOU21E&&;2~IM#YB& z@vKSDy|hg7~5ZDAF)P^x|WMA-jH zTP#n=0jvO<-F63-<6!THWx+8#u|rZ#vtyEeBeW<*wJGDh$<92Ffcn$6-MeQqWap@j zcS8+NmuX)g>qIOc8%Pxx7esb>O>Zf9Lv&^QxuLJVgK@z`otf98qjOHB{?-c$Y)lF+ z^sd=^EFhIVJ59A>c12RXQHGq)$Q;KXUD4J_$^5-xowbZEE!9X_aPkSY9_d5ynz$?6 zzKL!%^=^tWIQRJ)ii2)8+2^wta8vo5d&oL_>3O)M6jyw4P;hCIE31~JsFEvR zLsXEO0)dK4$kQCkcEpqS7Nu6oJo4~)_gkLL^ILpL42ZaYtB!1#HBsQOyes{yu##s* z>yO>XP3|^7qbq@NI2-iIFfQNst`AEsxlg2l#LCR(1^f-4t#1-Dmq+N;-7+Y4^2|4X zyZ2+Ybn$l8a;MdY7k*SHhu=y~-4ZIE7v5H=Qn{A$1y6-=wLAa)cPabGpfZSH0X;b@ zg&rp^x1Z`lDEl+B5JDd1x(6Z`O

    z+|l)=2YspYswm*K|8`cS%xt$$wg)6u>7+v` zewqQcET$p{|9GRa+E+Jy;EHOn2{>;_hW*+)Z?CUh0{Jj1SSZHQ`rL{P6*w~xuBK%8 zk$m<`LCJOKHBh5GxsnV?2)<8$yr!?_Q5+qCyH%y0{$kU z9S8M`FZL(+<0uP%DasiTree@00)@-V=I`L z_fl90KVmxsMv1o8Rdv_mjYU&2#0_um85-WGO2^(%2p5>4Of!_t$FJ3kbHw9VN7t4tp$7!p((9lH;O9fKl*O$lZ<-(rH#a*>pepgdEA zDi;#hOtL}dbxuOdNQgfao`1`@;yHVe>F61W2%#C!02)vnyA==G8ilr4FtY8Ot-GCd z5YP5nmn@N-?eYWMo8MrB%{9o(YV|JEcTHSW(k}nJnNZ zlDHT(nVWDJq~;zm#lJ>&2<&k@Lu@}d+iKVw?Qgk(Rzw~~GC`t%Sdu2cB+yQvfpTIpUn2;eZXZ6FSy!@8ZRzw9v|7cYr?Qy98<}USiK~$LO^O=Xb59mm%-Y z&_ZI=lA4(A9t6#4%Jz(57)MM;8|bCQF4qTrTKkm%D17P0WdHFgERvfL@j`s|n5*f@ zVB~lN>(cS58#ec1C7j;`teuzK%)+hcx1+iVst>hW2*i_q`=oji-5v=8&P{>V(a38% z%1Ymwn3MwzMRR94Wu_+&TZp9KgmW6#y`Cn^+jo%of@yqHL!t}G!#P0BMnzV;Md^)u z*3a2V5c1kT`8*-r@*wr@SpfyHsU%%EicveGKDU(SJcva!OHB)tasAo;N%u!WX^R<_ zTl+xUG!TT7hMetNtyP$%$r<#rdiwoRj9PudfXnoM6~b z{W%cIY^TNfjP!Y2FPY3NF3$@|p_N78e}eo7ryx=!7;+>OLfkhXMg!4j#*n?lR?<2E zPfZ+#kd55w;uD`Rl4f&`Tx8fJ6**2hIN(9*eM#)bHyovTdQu^mrwu3qSYkQxOM z3yD5fBCl_gD3=7U81ITH_LNptvmyZ&|Ug| z9o3PMp8>do{3hAZb^%|2@Ip0?cBJZSqT7q7el0u3K6$*JRv$Xks?^mQXArd0<}=Q0 z&l1Rgpi<*MrJ;2NQp<7wQu@g(e^0R=K*4|6BZ;GZdoS&Ne$1@w zgC#f*H>p4s!93_%1O7l<;>yJ08rmcE_}6ZI2A4Y8yIUo8RvpF_2j-yt3Yj@xLbG>` z$-NK|JYt;Ik50Qos&G*hHWWph z+{8+p-lV{Z1T%=*G~&W1S+(+9fgF+z3Cf1-FPLkI z;_FJtp;Uz^&Xct5@8+#^h{v{)&y?nOnJUwuTX=#s`Wed-f0srcJnbYtHXdOC^-A+wQJ7Z5mQAoi>VNT>lrkC;Nx`|@hIU@(ZV z3T_V$qg71rkqB7Co^tVf1TMd2y1mR_jasH>dXn76bp398D)R&ol-k?MWS;C&0|;Ae zex`4=9}BkKU!V2AEilc?ofG&z`riXUd+1u5uZwW;{(#S!bQYHY30aj4`gjC+dv`)r z>~n1-jhgdUNx`k}BM;-R++m-awpKnmAnVpQiFXD=DBhoQ7nXxrdpB0w`VOYfU8Fh3 z_9>g@ueDU%%O03Isn*3)ij2G)0Zm_mza!RoA1it(jJ{}BWSnR2Zg6e@Fv0h3MJ1d{ z`|KJ=HbzJhpXhdQJd&H1+Z?2}Z-f59B-2qosz2xO_5~XSs3C6Z@COMzJu`8b34YZ! zZOVD)P7STR$e43}z};WgW>~Pn-6(r`9f4AxqImmYd_dG?-Cvc|(c0tbJ->bghLxyJ ziA+|CN0Qef(Zb|6iJ1TCSe<)F?A`YSCkTLqo##mz^19OrMEo7hMT! zqv(}Q6oPyt4>{j=48a>fN&S$0A>6wp2xjO;|a z(>`4dV~=qS{Tg_iSD`*o^SGNFJsm%Mxn1}rnJ1pYIv;=LvCX&)bKwRcA)AJ{k=f^` z-hl~}3}0VjhT!TFy0T)Eu;{;;Y_%I`qa;~}P!zWOEghVYUhO>X-(NfZRZxKDtY-W_al z->AC&&3#9l2bKHE^2j}@)^74!Zv2vd7AP@avH{{J;AzX(@{BPc6mcT5(n1z#MWkH8 zQEV@^FaQoKMX}@pP6Jq{5>IE4hj26sc}{RAqut4;?qpnC2OK9~b>2umhxDG#5K;!6 zR;}chcM+~-K0F6?s0v`)0TczahP04D+*+^CGH+iw6!${RJb)qycrJfe3GaBq0e-=Y za~XqAlk@YUgjTqSo+J>FWO!OLIjw1Ns>W-FdN)f%P3EXlnRE!*r34W2$SBIjJ}P82 z4WWknm$zb}0EwdI3t>kPuDpMD@ky^;UVd;h4Pn1fskss&849NDI1& z=?SkV6lZPt9>yzQji+V`WA%*Zk!o@YK}YVrBw;o|K*B3?WW2bi1CRlX4vs# zT5c~ghw!y?(A1+nRH`~x-54M#hZG_N0DEJ6}H8|;Q`^CPq!0xQ1j zM>X{74levsPM({dTz@U}6lL)A%}k+vp($*_%wZMhQvkTS_n@+JbnC5VGMBW`d9<`# z5Db0(J!>EbL~w8-#xV4@=k(OUc>5OFD=L;*e4AlLEjWJ208wTB5w9Sj=ioM!Q59; z%}J|iMcV*nIc%^Oe7CV0tNg<9~Cr6jj&&T)y&>~y=y;wtO;pZR3kEDu-c2@`qr z0z-D1=x2tZMUWTsNDYXP3v-F>1xfN6Fo00JN5NH+<`;a=L5g|DJsx!52H*>nLjkwr z-G-aAvWF*bhdv9h11TYd>e&SX8C&N&o>)fi31S~aGACEKgZ_( zCa@VOrMwh;1wI_{;AEV%XZE-fJ-8ZZ7^42$&ty5Vr{+}APBJrZyZ+64FoA6ryrgx^ zpSV0=YQ$x*aT;8&_Oo>L4N2Je8C(uf=taefac0{&025IA-3lQ&a3%>NXb|%Fk4x09&!4*z8VCm|0pb>rrD<%Bf1ld*?;)=M zR~GUD*f2hbw*ATtQD5wC;F`)?K)8$+$F}o12Hu5by4Fb- z-xk)&MHkQ^0n0{o+Wo_mZPLUvEdMgd40Bp}!Rg>aoUiX=$;$}r84H5AxsXU&1_Tno zlolvVGaE`c%gQ?vnhZez=2UGCZHpG;-G|&L(7=DNg}|}i94@h?C~RjmHhom{^8s+8 zA#e)2{3!8Rt8aXES&Dm+Z=jFd5*MKbkW;5>ICfX+q`sbsdVM17%EQ2S#+rsp-wz0>NnI7=1!Zk4X*@WB4)Pll^x|jP_VzJcjT&Rl^)9~E|VKIHD z0s$Uqx(6AMqS%>QT;v7IJMa0f-?+zrODd%%C{EiRvd>#&YtHD7v*YDQQ1Tt1ja(@` z5%vuF14}4Ye;eU}-e66XD6l*4IVM_s(|v8?{^Q(2=;O+zkOry(m$u@sR38;Uo!fbn zzqcukwuU;|c)?HxZm%(HdB(~|0OK_^S|x)S8moZl;Tvu2q1{YRj{NW+N?A0Nb%o#D zQh0Rlr;-O@U;&66Eh3Fe5{DZg7{vMS1|Z>(IJ7WIY0HBUE)Xkut--r_q?!gWrejmB zEE+7=`SnGr7_b5RX!K0-8zkjCWCJ@3ID_~iA=*xgeod`_B2oKFT-4qjh)>Qq4AasK z;?&@yOrIo!9^}48Jy!fk`rxa3`;aY>RCH~!eaf9}QBx$^!lymo69XL(Q}N*HD5fB> zTgJKmSbqzZH4;bb=rs_*l=qP&{RfBgrbop`kNu7VWK^%Sfh){Cl?h7aT)`F}R^Zg( zvCi>6E#_?@f%folly{&dE+I)j=&RjWh)Q8X z@aj?@6Vs8@1uzvGyT6;KCgx)!D9NrMJCUEmL zN}Cg@BJFG2T62$&jIZW=gk&rE%4*)4%Y<1s zDc1g%hm{7lrk028|GI;@Ki(!z569$o&r%msy02Q3xtQTAWZ6`yunnAC#5i(ij;UJX zyM`+P6vL3QAP$G=3;62E{oF*y>DSFi_!=+{_pzbl!H6`k>~BalVD1i{TI zhYiMO4$LV`u8eQ*wI5I9l5bO1qCR+pO;z;3-aGU!o+-YotkN7ysDUcL<~N^)Kh3*W zcG!2r!W}03&bVpLr-8j0J1BvsdppV}?N^Uyt0~g3x7%Fu&ocPdZAc(wmJE6HM&7GVjo2V37$p%I#u?26ulX^; zyQok?Ab?xU{aJSJkB~)ffi^DsTlZMO5#s zgRU1FE&U`~;b*EEo5l)o-#mwDGjp5RkBh8ZZn|zDV@m&QAt$ycHLEh^EUACk-uSNN zda5&~#8AFbYq7kTJ-Okzzwi-qzL7hBEJ6_SW zK-v=w@giFprzlvAjdz7DNq}4~R1OiG(I$Uo$&;r5HxY0=rivWG4YA}^OMn7U000UE zK;>CmXYXGuP=C^gXUz#}GkNk)eJSoFj3gEx_H%pVa@Csx?EJqsOjlZc-|k|Y$VTw; zKq(;vE=(t{hKwLcYO7h^$vvA9V4c~V!+!1#Z0-|zce)4nP8nD(8~bawm%O02Q)gm& z75R|W%#!@z#k zO@j-=;3L(f1EQ|6$F^Gd3|(vUDlfSSr0I`!@uCq2v+87mK)c3=Dqep{XFqqlxm_3X z0`*}pxCox_ukTs=V;hh919wJh$iDOrVP{j7=Gw0V6(3_L-OGU;;Md8%h?+f#mcM`h zdi{=-xsrT0Dzikm@N#C9IBU$Mc%HEyEzBlnv!7*1Tc)Z(m|gU>OsclXc9>fvLnA*hs|U0Ry=u{V z>8@EARD%^w)m^*wSut>)j-yRt+%!lvZ(Vw?5W>f#m8iR!j*o$C*wW8y^^=VKF&@gF z?&p*)9SzDQ;L65S*VDsKA4v|TCW@qo4p%-?(s}6dUNUO_{K+HtJQEAW_xCQ7Jw~MQ z0T9(9YT#tWKn&uRn7o=s@!m;c_enq7S&cmfdQ(4~TE+u!=fd$+Xe-rHhn@a0Bkcso z9rqsl>X@fefS|`Hi--=h58d)_e~mYNc}}g27h3c4kaUTIEJFLHH+MBTbi&Wj4bd5$wfTfJv&3p)Q| zXGk-eKN95l{pPJmX%Y7_1J=R;crvxaxZzjwurw8|hUJIxJG?K`q6OQ2dTkYj{ZIVX74hG8nq;^UmDTUp*etyG^9>|J^{Y1`q8SK+%r!}858>ZM9A`h z!Rk-#r#{BwFDS*65cbQ;j#p8+qxnBZC}Atk5dk3z9^e1*4R@!47J&0ENv6e?F&{_T zvghB`RfPFwl%!9RtAaofdy2Gc90AeMsOZHYn+EdykWdLkNW+kcs$;(@Zb0HuwY#y5AOC(B#kXK;l6Jx3}o!NvxXv|D^F!`fOnLqzhS~?`jz?1wF z<9WEwC}SQWnwH$EN}Kd}X=*y?*lrubVRl5}?=iE^B+! zs9c-fG96<6%YRKU<5q&$XhHP6E$3Gyg>Q>u`N!Yew;n@3E4)gz^raH`lWU?>z)-&+0&tHb%E>Of5;i3l~{1#gRu3WlWy7#m!Y%e$VsEkE)Twifk zw1302`#gtmx%ppY*X3C%lq9w5JH(5TCx|4l1KahFrM2B1w1tqE&pLFALw~q9!zdHK zsz&qbYK^#8IH393Xfqdk+o`Iu0ozl0MobKk679h2;(x3A0dZBIz4!{jZ^pxwy0jB= zUVbpCeL?FPcduL7e~kgY^BCf*?ckSBowHSe7!h^S2N~v)%9aMKe3#7+&X*1c!tlR_ z72;L@1~D}{n%+JZ{TiXOH7PqKk=09w5|p(bcT3PU%$VfQc&C`8hmiUJOE0N7;i-uL zMUK6_Rhi4x9UQKL?px4*t0#JYm`hC}E;RE6fG_A86c`P#nQw|8O?J1E^@JPDxM zva7qFFMR;<89B#yGbpCU!SmFa;@}80Nn1c`*^|~)*nc?g5Q-#7^4QyPZb=+y(fwsDE+z|IZ2YXqQ-~)BRaFSY4W)5 zfa7Iz#X?Q?i}r^q5apiXM}P7qnB-S+OO407S7e&%B{113^VpA=Th5Bdjzea3Wi87} z*O$wT^_6fZ9t7fV2iTjefbjTt-&OfXzdWa*{;9uy4dTfRen@2|H0SQS_yoH1JYmbbDKFo^c@r*_>8+T zu-|}Ky(9JTT25DPl2c4Nwdu6+vu|G)$~LYuUw$-(Y2zDp+`6fLW1G)d$(k8_L}oX2-JEqG1qJf9>}b1OVGc_$xJUwGp`Eg zeDT)u;TA*xV|qNluqtarsr@)zH;WI|fZ|G6SDnzp<10aXtbW4gw#aKbaSYR!{1Z|+ zf0-!jvX;KNgNGlBLbSDUQ8x$p=FS%e4J4KK|LSG5%tdS@EPy3_KW547-Y$f}t7u=3 zQ}38D354q9`JlXi-SWLtx0w41MHgVh(o^@vJR`1Vaf0Kek4#mms@wPX)%8;0ubxT%%tjYy*&DGo*x@7|4T&u=I%hQ4?pel>)Ty(F&dnBxT> z6_58-u19=V7e>Ue$8E13-E1zZ`tnUhw0?)WWOSDqE)w}eH()ZH+*UYYS zj6mTu}-xIAjP43>aa(y4U(^N1a=X2-1{(u|* zcp`0(8A&k}ct&ZYOgT9?=WL;>5$FyyEok>|hN9uyyoL?s4zvI8OUc|iCm0*OsL zYpUu8UR{PhZKE)$&DH;Wie+8gbn>kPr=tUI%$3lLzx9TJH|nCqZL`?EB7BY0-(OvZ zeAk|G?Vxm5ziD^jT@G{D{4$dvU0l|%-0ZMyBA<$pzApT$Z>LT7w8lfr*jv+@e(b>8%f?!C_3(OJN#AjoaW`eaLW z6oWeYB7TauZ$=c*eJM#GcYMBfV#}E8vcf9nhn95FzrZEZeUZDF*V- z(pvFpwAa`DeaytYtMW67d5rOWSnAPZM?w{h|45OJ{=Bf*p0iruzEL;p%{60Dv#SQT z@LSI?(UKudz}4Vt{<$kOX4j9JU-nm9G0Q%%m*@`_&Dpje`#I8STy4ll;&%G>Cn(gV zX6I|-=aC55QC2l3mJyWt^@o{aO-zxm%=Mfe7Y%`beT9c#e#fzpR(}krDE|%@@vGJf z++o)0L|84yqyix7b$d}f*;RS5nzKZSe8e2X(mTYoBw54h8dw%*LX{}a$}()*c`zy9X4Np;D4y{d9f^<@@p z6Mwse9A0jYnO@njuy?D9JO1UvJRG)L_~Zn!Rvy^Sor zzm?vIe*bX5QAARwM&+Woq4*n1p~*ZS9x7XIcmzJHcBfz_-tT5+j_!(=R;yf8`wZe7 z&y@)Dw(JXi)q8(;VAUf*FuTT8g`5BfEvw%D)rxqlmkR$+`Dl~E4;~MMzWu+U(C3(Q zPROEl0OhSxhX_}-%i^8&tgk<~{BNcH=vN!0M!o)p5tsY)LR`hx9B7$#)N_G3b}&aB zkg{6GN;scg;x@nc*}UepXqIcWP7`S)a4<3C1X)d%3ycXT_rOEBh5^dwRGyb?5eC@; z35r{s>G_P;WM1Sm8MH>F-@D1YE+sSyl1?1 zhXyICl}!Ab!o3wPnS=(KOJyu_-2y??Uku7Rw4$3HB&~!YX1ny$tu1YTm4v(fU0e5u zoWBIDp935w-(6Oa$d99TxLYW$E-2hZxt6MxAI)0jszJrDzR1axS9Cv=OZxDHZ}#eg zf*P9yit6EJ`%M+i64|mxD|dtJ?jI|wx!LFh;bPf!62W<&60be{<1(P+kW~D~f!nEO zFgCGc-0f5N%@-LLNbZcB=xce(rG@6H8k!cFBda<&b30;cpJ;f3cz%Ar^!nMkSI?H0 z*F&cdLNyw&oJsY&M|7>v*#6!8LWi60(p#uxrt+B7X^dsVFz|j>A2(5ImY!pBrF->P z#VhxJ0nb1%zjw~Dw$VT+%Jq?002M$NklXYW&=0tIa86e2~WBfp84T(rAd;`unrIi zSxj<40Z}Anb(9hkwTZ_FLuyzkU!lpMW!NH`a`}hg)DqQvDv;!@tgK5IILRWoD zFtcC~?H`uLO#n?*r!m(zj>y_O)JGeO*C_d;V8eP%f|J?}qNm|W#5q&eQBHUZOT5X> z$usD~>V)Nan07Kblfj4S+j7X5;D7fyd%8#NoHLo62HxTJ|Lf|}4WRA+ zT>n72)b**RpLLaF8hD30fH0yk?tkO{H@^PHrR94>8q|gE7d~{J52br8-hX0vQfGm8#gwc3ke@R^cji^lp27P^ElQl9k?I;^P= zF<}ek&=X(Cf5_N%U#+-N!CQ+}Ar=6#lq0egYSZx~T!EYDFfa=y0$`K=h4DyFWic4j z9Bs_bgK}ImI0R3)QPfe!%i^Ww()$;c z^Y6RAT>HSECSbJrMpMhK+f6Im&7E2{m@~D^o<*CLa-S9+-FDZ~GVi*j<)V2@%JsK| z&mSGHtUQ<1H(I64*>;t(<`&b+YU^mryVc`jU2=aZ5BzRvx%c{q%H3ByR2JT%&hsZr zTn%`Q^TgEFf;Et8W#SCi<$wii=M#~#kO!p#nV7iNxMCAOGh7l*9g_sKJX%;H4xhnK zn6fR2S=Bn=LugIWn3Er3%!rXEsD{{yv-8%gAc$42nP#^hy7jWX;B8HMh!%y z;ksdXG7s!dw=DWxaXR@eO`C6tfRp|>@{yujVxOd|VLHY+tEyi3QQ5pkvo?UDQC(UP zIq)G!Zk$PA_3dwv!DIR1sXvbYXV2Q8Y`Mjsmo;XsshwlBeff=jH;Gr#3lTA=4SSvdDl%a13y1JySIGy~Yp+56Ex2D!& zQ)^}f3%1#MD^nf)xzCjicX&w(F@4NME35frCeoR}XU>>;>GXR(hY^U0Km}?@IJg99 zL0L%x#)HydazmYNUP4U2D%N(P)Og%AHCOrT&GUA&T9y zz_Dm_(L{K<##*R=NvOh+;0}eb6aG~%QLzq!d3P3K7#kw-L>@MJP9Ab}Hs4rKAx&i) z3qP<+hal52=q$@6Ea(%s%<1!udubuQwHAMpRJJUAe+SvDV!=Ac6qFCX(NdPBI+Sp* zNs=O17CdPy+YVc65qcuV{&&29cB=Xd2U+o17wo7(ENBq}Vd|S%XoH+uRpUF_&1zM9 zqJN=-WeEq8v>mu@Zg^pj`xtz7df_{ktuk#|7h%MCL;+D2CLktbzIWq5jwB?Lh(?8; zLNK1g$`iq}4=4)el{K_StyiuI#Ha(gAy67wtjfV42yB*Mbdo4XP)7|-W4Mv! zU~TUvBzHPH3IWQ{$XEXCYvtfK9BhZon>UY|5vijZQ8ya2g#tFOTyM?tj5Ss(GudAc zr(0_-JhbN=_TMkvem?*H@|`>GE7y+<;5>Z!qqXXxn{7C?y!1J%mZxt&z06pZmc=D* z5c`HQ8J5#M@Zhp?{-uk{56)OrZoKu66Tn$*gDGXx=S(kiw%0e5rbkQD?)IVjNe(V_ znPt-Ncb6?GH=nVj+3HtNbWdd$LaFuG)5WrHU?m zfuI7jt!4c2mT~EcKx`PoVn~;+obc2KAvtdN>J%UOoxu?{+>xN|8$x-NEfZc!o&4kt zu+N)=Xc#}~&7o+XqhH6k6*9U0kniEK%E#qS)Ky-LZ#$}^mL{U0G8P}*-zI{86jdC8k6 z5X;xet@Q_x-}oPuLr(f5p7I&8G%(cbdp!P+?|;!9#`k}oHGQdYGq2Z2yy1<^8LHwG|xY1Z9!Bee3J3sjXt9Po8FAfL^+*1`7q1*hl%n-tZWqDZMNCk z=g)us^JSwNxFG;DRrAK!9p6HaEytK+W~V50w%YVXA>l7&d}JX3c^bjfAZS+SuA#R* z)>ZNa4*;|(!^<)ypE}qh$mTGA9N7@Af|BP6f;s@oTdi7yOmJvXW}73p5dj#e{Yev1 zdW$i1wyu(sbL_|#p6#(5bijA4{^1-NI9Mcje4eC~X$q!T^`w{VxYq+m8`)E3u{~Sp ziI}K|Oj+X+ctQmS!d#C|f$Osl)`>zOI!D$zddyJ4$xM|)W(04j37bM^vycMlLPFov zL5SA1I@y%qgcqWY*hlIv;>t%c2oRNmA2LH;#x_&}h+y}Fz*C-nW3Vxtj|0dx(Q%Zt z;^tjyJECN4VWy~%CLu7itRitb5rItQh`_nKiq*e5s4~DYLn|B3Bkx&-eltH#ey>j>bhsrlk zda#^&{-SEgX!}cn`+J#fuIFp$O8Xx<;kV>A+J0&iZ%CF2dziZl9o9A^*ZyoSZlj9Ag`2E} z7V>pfrVX6)BJEo_7$%)@L5kGzu-Acsh>oP1?}{pO(N!fn`&;>z)9{dOK~m`w*Zk9l z2EQ?o(E{7*72dRU=$}0~Ow!1rjKx>pK6SnwlpiA!!Ctv6iHs65LutaU0#?#Qi)-99 zk(GiBSs?o_jvm+v{F;?RDkqYp!(2u`&BPF?GlT42&wswp*IlP}z3QqMLRGchcH5Rc_IO6Q z^_KrBKRx*r{c2A?Orya)yh>+XyDQWFRZNV{7TU|F>pWWRzb*PceUEbMt+!NtGcauP z{^0Wao2MPL()Zs-%l@%^btXDgbkMQ?SMvF9-2eV`6dBpR_ir;^O(C^dGQ)JF!(&wKLIQjdx^n!<3X+AITa>ozzuUOA6Z?ifN!#FZwhCU-4~W~1de=fH@=6EHGiFjM^dgvoS+dFa(hVF$BGdEt(p7Wq z@!krzDpfH7a>+aNR$GcObMdR_(7FE*9Ix|;BtRZ}j-8Nrm z)X90G=ugPTdV(s_Sqjq}4tUupEQq zm_;!X=Hbu*{tiIVci<0&b%av?eX20A!Oywk2A`pUG_$|4CG0~SyiIHv{v+ioCKT5{ z;i&a?-RE%0#vCObtQ1N}Kst`?(L%Af=z<)AG_o=bkQ{4n20F@wvVx&t1XDm%HAaV? z;uH=wsmR?y&;fsM!&cf$WZW|LEoT<3ZVH4D{!d`oG;yaZ~68e z_k^s(3nnX+A9`4T4icW~S({S+@;NigYhE-%;*l>kKuKM#R_dXGdJuyL>XVEo{9{kJ z->YvbR3{tQoT;g>A^FsF{tO2L2sK5r@w2CwEnc{4kkf-xICSWOzHk>j$bpu=VIDoB<;f48;Nl15tf>8k+NGe2V$EAwAmK-fmd}8l_6cY-fl_8Ge}bXH z>)H=WoH3Bh&5+Jkm9izd7Bis0FaS1*`p_d3$$aP}1OYnSl<7*7!=OO`8Gc;PRX?B7 zpQ;uL^0_)Ih8Y=OmB=!wGvN0=)cwTtAc51>HKHKP)bSUxeWHrWcEUM*3r6pgDz7s1 z_$dbF!C3;3L7CL%vuv0S>9WK%fe%47EI;clO9jrI{mOGq@Nqb(`_y7bjgLAE$WOGM zu=-N~)n(IB4Qi%rmn6qieM(GVeSW0;o~Y)czn~+u*=M6vQFNLpzpsm2uUV8Ur(yet z$&l$jLd8nR7eD=;!F?Et-r|Y!eXXVZdWL2&jpaXH{m%pG?oT<$ftgjb!gwirBKw(% z>vg)X*~N?WqXJ#Le1k84X|#l2IH|+);5t>mR(i-^dQ{*?{H7}~;QNF+$s#`PsJ^*W z&rI>KxJp^_(1LQ)Z_h3FF1XFz=;8Fg%{JS-?7Hi&b=>cHwz}hvJIYNr z-CWK(>&$ZBy;>DilP}4d@2)=ye7yI6+Twlhd!H>k|NQgH2`8N3F>+ZU0~X^9^fBXsMw%cx< zF#fK$-g;%9efIJAd&~daQcnEoNsrm~=i8U>d*6F&yIxREJpOp!rx~T+{qA>_)mB^G zb;lidT)FJB%ba(cKgPy?#>02LOZu+f>wEd-(pO!K=Z?qQ^|$G!o0aE1Z%G9=m20oPR%6fE&ad$P|2VYY&tK9zo^fio>rUhQ|Ks)kPZO$H zA2;Lwxc_w*U6UDKf8*)ww>P(_IWD(UJ#k8|+00XssE2hfR&aqTf&_ZMq)ff%wPc{@qC^Wy z$W(?rJgf`z-~xb?odF)q#U6L_1Y4>fG3E|k8OVshSi}dqKm~7DGAvi9Ai+9Sy&Yc=Z)Apaj?&ZfgsM5zRgm`D3tz7bk( zgL$fhYfy%t8t4FTi*ICAUJZI@XamdapyVjEb(yEVX$5N}U~gLmsj8YEey@c1iHhw1 z$pT508`*)BG67l+fT7gkR3=?{2rr6l?FeQ=G{e}P-H9iJ<=LNTgXhVt9mJya`^q8C%nC)@spzH6<$mfPc4wHJXln^Nrw0*;UU>+cy_>GXmZ zyukYZ;Dg|ui{y%R2rq4%q-2df=Kjr;rJpMdB{T~-jy@-5@`+trxZH@C2#>*aq zv6TBQ$){Sbpo#Zm5IcTg)q+o1k!O&Vnqtg#0Mva?fAs$t(19rlcX{{!z=6iOAfR9w zAt+>Y2m|t;wC%PQ$2V>^+EIZU(IzJEQgGm1jd!G+EA!kI;xq{bY$@+=;Of8M>!dK> zJPG2!foI1V^}zSUAo+MdgrI`-S{GX6JbDHanBQg_H@z@Ah}5l65v}=)4z1xy2m!r# zUo^jPhw9KN=IqU1qTuaDgI0K{A2{epvOoRKE?Gfncm`QaQ}wVdosng(!ih7% z8$^Y_sici9!flMbhVK00!RNvj9^BLd7s#2K?$j+jZ!csiZ ziOCW6^~2>@4(!UG9a|36iW~I4y!pmWI7!4q$$AXIC~iJudO2##4a#g*BAHlf895p= z@~R3WD+lyIeWXVMk3iPFvf&@Dy{+8v;Nn^nC$k)YtXyGJebeTj-#DwRISczG(`3?3 zg<<*l6P)O{Y6}(IMwLdrpv+(RQ2Ae3c2)sOJ7`Ub0%9S)sYrfGY$2;{*i zv>2A3dUc|tTx$bli{>vYmmc##S$G>)$HPy{Z-4X(5B8ix*S_56jNOnl*)XwXRV$H? zh~X-OIgqk4%K_D~1q}8-P|`NbP#HG7Ft=oI$X=jqlZ@Szl?~*Y<6dw!Zz$KyY||3iX~ zR(eV~;D7_l+_`hhU3cGAKK02@TA#N4H@3bzmpg91t(<#aqc51%@OtWPaqds&|4?M2 z{J(hVOUqMt+DX;R%EvzbF|F#GUtav;7nj|3+s(Fo=F^`pzx&Z z8h7{q2GV4)MU=hKO-~h; z!mIL0(&3qrOV0Jh&K28kyNwM$rVHFK^y+yfX3YJr#blW$)CG5-fFO?E7x?Boi8<+* z6W4q+IxwFtdaHwKRy9T~_y_^AI>d)8eu(Yh0#%-~7Lf?sAc4OF4>SGiCiwMk##7dqYzd1tKeh{&@VoCW8PBoh7Co2l7yfJVAtqx7Uc^bkKtR7M3cw>;iK!6gy! z2tQdP!;r;lq_7EQf$KmC5^_EtS*pzdOZdYqxSm4pgLPzRCYPJm!94J#=WuKE*MYanlVifj;1I>#$YsWHH zQez8dFo6e^yMTr1OF2a^H2-nqot5zSJH6x8tCwf*ysG7)f-lw(E*KXZtpGqr5Ln8x zir^|(WgT#9m!$Jq7cDNI{8syG%dYleXSR9OjI#btH3}>H`Si{*Ifyn&Ke|~f=kC`j z(hFQGiK4=URtjF_Jft;4|%eO9=3q0Zbvs$<{U-M()emJ3EMs_OHXmr0pYJ{UgZq`qUhZ zeKCw+7EX_f+D3Nl5GtIqdZ?PQVPMPYb0&lq%%gLpqcoE=PMXPiCBB1j93+^vpJMN##RKBT~eW9v4 zYy!_--garV)okyHC!JJ&@r$3kHze+Kt-^T8OI}iT*l`E*`^7JQQBD%xKpJ8HLE=Q9Wr2eEj-Tcf2k(Vch=8-kd z82N}=S^Ez-;J~uw+_~k>yA-(j)Tctr%b*NW8}ytDCs#{8(cYaZLX{|LeJ*VGBu zb#;=|bCm%3PmKV;ygEnkU<6{Qp+0b3P@c(5zyyDS4jm&YIO93;8f*ave4*uT4ZMSD zf?QMFq9HKim&!WdZr;GKh4)bGpr`}DO?tB_?ud7 zgHNPgv=eyfMiQOvfS$a;(DKf&cBHuzR(+3;+&_2P`<<#vb42fsD;h5wgBiw22pvP6 z$Bxtq1tXXOj=39;>{Rh!&-ZY0bWXN1V9PaQ3W*mj=-9*EW~;({aEOvSh>WfNmVDvi z1o7yic%lb8%1IMWB=FCjVW+t>rJ-BFD`KQm$FE`wx!Q%Hwt8chUdCFU6mR01y)_zHoQphJ4 zo@(W{BI%FeXQ1K#CECgDlFw?@&8^YjTKq>Zk3%wrj#(N$SJw@L`|=P%76;C?;Oo!g zvbJZ_dyKk188bonRry}ytmyIkoGDdY4vtY;rakA5&k%WXr9SgRC?@Ue+#@=eGu@%b z3WP>}lkLza$%OpWq9v^P6w}fVqYE{CYqaH%wrnDw%m#fDSMK2Tm$bfaDQFDq1p7j& zysG@RwUc&b&ZA83=|UV;1=hkE=L zJ@P&O7_or%X%wulRjy^&6qEN@et-Srx7Jhx(^h11_F`K9^H)n;m|v+3pRb1u^5 z`%rn_bN46ws?05bt9_;Lu(YE4~IqR%j z-uAY)*$Td8^V!dSwzsG;Xy(kBT3vCtx6)cLe}4JMM?WIY6aByXtXYNco~*gX8ilRZ z?zrQ3Ub(X(|Kk(BYq9p)Yui7!-FBN-8~BD)HA;0juQ_{7%fC;$IB+HU%{JXsL9#Uq zTa?|c3GaMHfE@YjZ?K`i*TOR=D~9g9=WapaHke{%hQ4v5s`Is)!CPtx1)DbBWRtRF z@#1o;zW1_V{(@FLbK;6$Q##Nd*iSo?kiY7TnPrB)QM6d}tc*(7rqUbx@&8@YyGv$;m+$}bvi%M_*#E!z&2P$6pYjy@gKgEAgdg^Q`g->4+2+4s z{(X93Ro|8E?lbZm2|wJU08-~rL!-E=Y{&jZix-s#?tj4YW~t9@u)zl2evoU0wv8Wm z4UWHjB(+;frGVTC$Nxn1SW|S(ty<{g^riXosZ$ypC1dhknf2AbXRR?y{pa3ti)1a) z`v$2+Pagrbee15Ht5-WSZDkHRicyTW_A z#)#EsuI3m1)OVEp)mP8!ahA4hTvYD9`)&u~Lf?sfBHIR@e%X}^*I$2q|G!sl!V0oQ z+WIjlv7k?_{5iUgH`s6k`Eyyw)Ji5^58IUX|NY6?KLUxDNP zH|~E7M>)2Q$G`FTpSLIa#Ke@ng_<^>m_00Wc{YWZcJprn430m^V|iz|k&-e>acp6k z=iHD`KN+-#u04ewFlxR-fSC7$K{4RxSm zC=^Ksi=^>fFrME$5l;X|0EaDv;)!_?pwdez{eQy!WVuBy!biU@Q3pT$=NZv{#D27t5HPKs z@uI*tU}5SQLPf|RnDrG!w3T$RKk-V>A96T5n5BCDkOJ7Bs332pK{K-P(J>PB%BcvX z#~@rmydv~Bk|(pl3;AiQeIO>GU*&2)L|a)mgGDL0#c|$cpCdx73Mgx*194f((AkJ; zWgrFz5Dlt0oMWPa2B|A#L`#&C&d2EBJ>M&SPD)q-6m~}tzHu=gnrvj?1b`x{#tU=2 za0HIsVEfG6j&c;zP7K^wDZ~n#qOH=t?!XNq9_fmkSFb<29K3<{%SK1Zk*VhGOh7DM zn(Ly9jsk+6ZUU;6fw1B`C)k&6y}Nwt_Im|?W;c8+)BhzshT0$^lBVxlD z4XZ-xR9qvWlJc$#?Km1!?fCT*9w`5P+V8ijWs~PlFI&8D)f8sl(nc=9C;F%JpnQW> zj~2r71rWNMM8L3XS-JkC#pUMHf4{&Nx(p_KL_#_#%TZe1v3j>hnE)73)!?Kg+pU7n z9ZA+EV6YZwhcS|N7{9|#hRZ*%3_3WCn3W-EwC?mz7J0T}ZuCL^%U8Is?e$0nvrc7$ z1|&sgPc&dtYhQB7^Dy^>_vaoXaymK_^2w51Qh~D*7b@3@AYEWR>mJG3jDu$tpcDKX znFD+ws5d2JQE4VRr`Etoz!NqqA246@w5f$wSfz%`U`jrD&f4KJ@D?^IAF#>fCx_5$ zSWe3?G1Jy+N-JMun8#nUN!qb|JoR|EGoSga;z{GC z|3CQP1LeXCFDfUW%r`#z_FqSn;BR~DTMhgEfB$#cVv8-jGK9%&%w;uDt{MXHh zkDouUu-#iLe}RHw7yt5?<&;xTF)tk?hG)^7;9sVd85fi*ue_qX=tVCs>&}_uXAd`| ze0=Gpmw6jCf+k#{z}J|yMmge$BUD&c&N$;t{Xab_bliXc{mTwJY_Ey)JIk@h9_z_@ z{BM47D7W2yYx%+Ve^_q0LaK zK}tDY`7_TvOSzym(1*b?^qXzInZE0Iuxn2}?UZu%S?83Eq}Lm3zc};EGsN$Vf$I$FMqjLe*I1XgfD&R%ep4^@|JGCCNM^*1RYK}<>d0K zUtQAC!aM?U?^SL}x8f#9mX&??-LLGr>#ibysJ#Eke*;}9{GUT@{{XI zwy5L!qpg1UqaUg5ZVQrzcK5b#H}D4){J2nUcFM^oi+jo`%^a31wM%|NGx>4(<%FQkpq)hHZM%leivZ<$BaCE4STtdpYsM6U%ki zT~|p$KG(yc;`EmQ?Oar#5LDmT{hfcqw=OVy-BcT z<-h*xi{<88SMtfY|BbJ|@%U4Ri@Yu#ALB1Wqi)Y023L0ctA_Tc7!bQMmS>vm{?p+M z(1y=?J>b$|CQF?Mh?-);^IXY?#{Y&<9lL-)!+TN8ZN?e+MEN{H$M{!Dzg61j%SJos z`+Ab)`R;BmdyoU)VE4)f-go49&s$4GOrA>zbk*}AeAp34uR<~ZtoOR9^_eVi36SXB zO}M-lrlwdC?m@?3NBiejzRcz9A|wkDR-45kD{&)khG8Ko7{lyVj~i8CvQ< zj^IzwQpUzu+yOm{FR;P9f>q@a`kS3OhCZPn?G}6yfp0@BZAu?PbLDM!)Z+v94auU- zgAN^?HLl|j_!@fQJ9bequ*)#DxozxtqcjPBzy`eFiJ$m^7#Ln;qH-7K2xQxBe_C(R z@4D|1l8XWGm_fUQErj}9)S zBML@G2^wDT!db!-jXQzpt(5ej<6Dju-rBMxxV+re0_)2XmW9F3!SB z-YQMsxPkBGm(N4O!%qLQ#rkEpHT1IMhoF`mJ>AIrV( z!Sc`7>jm-mNbh~a8fBMlWwZENpH#{>Y$S$`R);(dsgxI26hlw^6pG8sBDiSYlJbEs z)n6=9^$60F51Lu#NWYLD9Un3DK{V^-Q>0uq9e&^#;s3j?SXwUo@&k`RtCb}|yU=r` zC|dMt26PE_z80G5o;7t!J{dtd>>l7?l*DquER(iH7c7dkGD*90!doIL6HdO?wIIN4 zYU`4f>H+t~?29dO%cRd|uNdIawZG^G7^j3h_k1!J=+r~1F~}+L18%0Rue<(N(XF;{ zfj<)Y7DN9J`RR@D5Hc!L%TX!SviK?!Zvy8c_E~ukzLW*Xi`z8qL3MRVk83Q*jnUF| zd6<)`GO3$|4#7<$nDt5gqzAXA1aYHRexm)tGmj)_&%=BvSL8=iJ|e5AuDcl|p#H^} zNtRJ+g#3EruLi=+$=ZUh)IA&|z0Xk>2$3Jlj~2!o9uNM+{^vRAwfp~zzFRY0&og=^ z(Zjl*Vf2hLb()?@boO(KuCwXWr<6;7bDdUD+^_rGl(L$>k+(=&t39~rL4EILs#c1u zp-KNOHIcnYxYK;u@@&OJT>KD4zn9WD!NVPLzxloY*+|KHyH+w$eFd|CSGnX9?} zcHQl1W#4`Hb(=bS?eEckz5L5AzpQ-sxbLbuuAg-kxOuAsH^sl^Ut1H*rl~9l+?@N1 zbLj+StF5-uw_9HA7p0_chB-yg9TKUVLsx@FbrY%3e` zTSfU65O$?}R{R{Ul}Xrth65g_N1e(q+h1Fc?XY86sDRPJ`xln=)?JSW++f$(&!j%z z^_Z^}J?2|+p82e2mghfzFM-gbNi>$y4cA>?HdhdfbS6O~$zM_XBY*D~?5*$eJl$+P zd4A0`<6 zv!t7nSo!g~*S=1^-CQMvHHv~D(4s|)%71_Nd*uoRoB}kZ?E17_%RUOQWV!1_1Q3R+Cc>Mv^ci8_{R`OY~ z^p!7vrTovW3J@Yk&RbWj@AA63QT=)|UC*SH-{~)cbI$2k!q_Fkd+B~JDLbiOmv4dHYE0dWr12PpgeSszB8!`4*A~oTb#Z z|M2)jxzoS#|ETNFymZL+AIqm9`R9&;XK+!U#{Rc2#{IAF8RP3u7X_D19Yn_C&v^Xp z#?L>%{l`P_z_1+sue*um4L3Ta`ldT)_x#h|JiAf8@*92sLt-M-`~>*|n#I3 zlPJ?Y|Mu)ER%H*4=0BiW?)^sy#(^+(Y`Y9y09?vx)aM0uP}NL5K{Z zRG!Fj5)TnF?+rcgd&rG>^~%%p*Z7HECY{4T(Gb{xi4NjV@Qrz7bTw4^I{4wqoKpg6W*UeHM& zV71NdYe5|I5E*=-#*Xy2N`jzsefL+L;}Ym=bpmc3@Lx#K(VSpb^$i|fOhat#XScT) zsqatO>4onATb)3iMXbEV8Oqb>H~@)C#;2N#LXbRu_1;bLeE0z~Z4Qbc0tAPovl zoi61GreK6Rr~cw2Op+;Fu5nL*;1Kb09>K~Z*PQ_;dN9y7Xd;?IhmkDgxuao#_<@+s6Sxxlq(f6< zszFHQ;hMy3VN|GG{okw5;P^vD(DJ|HQk{9SHKl|shYeARt1A0nYi+c@Y3VfC{^;bg zK(6G_=+!IR!1L;@e3D)m6CGuyA;b5alvmFlkKk9W$P8zo@XmavSIDOq+m1$l=VHhp zhm9Dx&sX`;|ARMUu5TX68(9q5d3iuiGUMP@0Xk6*J^_nj73!*hSDXRmBp_`w+sX_1 zHEUYiCLr)GfzT*u`dXRv6gwJaQda6~=ZG-RDKzPm_F>9TH(90RA({3$We|A4NV(lv zusWt$l{9aZe2>387+6a9E6qm+tSFD=r&k_x{^!}{z*qm9o{PBt)SK1bJf8R&hlet? z-TeFRFBe@juWY!{I^~|b?<=#k6%)@2thV9#h5OkItt4UP!J2EWu3z`xsR`z7^h@>G z^;t{fgc!#IuYy79cRUn+^_%~wz>R*r)%{buDR-3Pw?8o;MYWVZu?)XB-zpazfr%A|CzQty6u)*wN=uFr zPu!~Pw98J~{!H6*sqUncep-HU?k_CMD>MF4AF!Y&GtKX_Fr+; z73D(d&FYc$*WbV^PhwS2Dd(MkZaMMzlPn*lw%K|c2cY5wU|Biu-18hHV5QcUTW%RE zBed#?=0)Bar=4#3$W8e&NO}kX9Gq9%|JAR0mA)~uiQ#N>#tNc+_tWZuC$ICvX2`{ZeyV)$nbp1?8h3|Crxd)>nY) zjaoIrODN;O$=U+!`Wvp(JI2(q)z({iWy-8IXIVZ$I#yw!7pu z^rbHukDx3;G5o)uRtW7(;6`}@O=R-^^GdbnleXPXpef~cZ8^wlECMle)>&Jt`L^%A zRkh&$1?7uc(Q=n;f_`1Ds~Ql+{zcl7`P9=+^)<=669JXoci-LP8A0BUf8rB`U=nFf zZQFPFJKw23HO1da`pN(Kak);{<7@>opQKevdp-a860uA{%lo~}qF=z(|F+j^xEJod zce&w)8_RdUr?EllnHn<)BwqUK%gTu-ooJZbDRQ=-vb%)rkJQ_51nKMZO7wqUBRI0- zC5}z|o4>t2m$IFHM1;N$+-Sv3Ci_6PSS5gxozLOX zyrBdz-o==Q=KT!^$4*kbL&O|(OzPJFjW|N-_cz#zFBSvz+_wD#0C}nrf8KTY0g`=| zK2UwO6FPJ=O)x|Tw3_fCutFcO03B%~mrSGCQt1w^zr6|<>=A+&N{E;F)^k`KIGt>G zI)(jM2S55C^4%Y(7cpAWMKXcQKb+usd}SRM5FYlzg7;$EA-zZryj1=`a-J)kqq2Z8 z=g<2$x_~7{c}6Xj;hpd3eeeUT5K3SR`sxqmi6x+~^)XB08G66aYAM>;WH417)!2$C zaFC672g~e#>;(%^A=7@hUC`8ElsTy$J@`vKbnbR56A#1HN2HMgH!nJDSw_J`84ksn zdfA2_`k)x%5lv%T7YWDF*;!o=J^>Y~O#F~1Afj`HgQn>hoZfcL)NmFJ{;(6{46VBz z1C$cv!z!B29mkD_4WS`&!ddtYe)6yMVvgJFJ=g^tDfi0fuet zJVACN=sc7@|4(a`H8mgN3z-J)>-;X~z3N8V!< zCX+v?4vLaO0=eD)pIK$v%wA5`1!fONCc`QEru+~b{H!_33NNi#yik)K|F#f>nkLE* zd0Ef7#Ys3YbS4egtBg{vPMp9TJSH7bJQ-yNpW3Qn{$`1cpdu6Esw|wL1fPI#OokOl z5cf)W0J5J{08Q6Og&gXT^(c|;81!%e3Zm6Jz#`9Adl3l04&%9Bjp=3qsR5@tnCXOYpa1@3G9C5lRhY# zBNdHoY6fuK7Ku;KjWkNW$1znSllwd=vc9TQrG~r}$_HCW*bwxoCvb#Ue^V)>7}rCY!0+`7%!CHqrAmu;5}G+U zJ#6_9b@~p;Z`u;SEKfdcoP_kS?1yM9e?pm#GJkq*NnUv*6 zCVrlhLaeB{T=#RHQKo5GI?n)WYpd0bH<}}*A1XKAe0#a)t_QRxcuHBU2eOBB4eYqX zT&=p%^99ccn5c`8XPRl1H@^V-;y2!>vM%J6uz$Vv)-MO^$0~f|#Hsc_z7xVWMOSI7 z`B(`+;h(@Cun;p<8YAtjW^k}yx|Q8%SEer^7_-7 zKqs++=)LcKU*)%~0O&v$zx?2bKPnere6jGvx!TWa3bw0a{5hMg!G3zO@%g^ZVOnuR zI#b)E5xlYCD!+`N13?AJzf#-Mee+x2mKyP(he~|o=gn_^vtLwhy6I+3s{fauG5#H> z;M&}|n_K>=r=3>LI{Pf;>-ZKETW?l{X>m#wz+y(HxP`q#fM-`7f=VfpK|Z6^*FU;ImL ziT0x^%hLUA7q)JrKg0On|Kr2)4IlY`|Chygbs*qdD_{EJ7t5{so(@7o-%?(o@54Mv z?N0wY&)>2+!HoIUA1kRqJpa7&%1@359$sOEN4tV0?cY$}X?f$D{>JnVJg~4FbMzPV z?WMazSoQy_U-O!>^;TP3{(o!hzDs2L<_c>48GT#+|IM$XZ-*qYl6+P)J$KLNS^kfI z{F8E#f-7B8{p+=2X3M#A_06L@%O^h-{WARzAGRgjMXOurfB&1nO|^eR1xpDSkrpbb za3QU$74{3hA*qo4pZf5Vz|HuVKJ@b!G&D75rLq6R z599tvr=T;1KRCIMa8L&uUw?Lly<)$Fo9v|V^_SyG_7l32deG4G=Xm__DASGC*`uN> z#r22VNcH4Pa@6(L*3lfi~~XDqPqHryeinb;8UAv+L#w67!MjHbcmPE zPz#8`xW)yY^&V=OHP`|}R;l!fcT&WLZot!zSmUbfZVo)R zjU6b~C@W|rWJAlGKM--Odg6D>6|DXI0hLHq1IJ!>m?rW!%lR74mdD0#K#W80noo#?PHcmMiFh5rf=L( z;6*-+tjxuXj=5wBoylrg>7_Lo;tov5f;og7bz+jCEYsF!UV#q$E4e_J4B0XVZl-$*7G&V2 z8gF(WfT3h(b*BoixV0|01v4mk^LpS20e&^Wyd$=RF=j`7)ay?>JSg0t;l?PhEw8^ zA4&uLbEq!lw$`N%vR4MBuiNV{Wzj@kSFG|Us3Ac5B~_lF0)PfD>z9k4NOn$F7@0{v zd7jK!eLZZVy|E|K1k18wh3Dj(=Z7udgjJuON!Kmx-(JxUo|%d5KiU>plY&)a|5(19 z^4RqM65Xrcc;LT#g))H}erUp()d_6B#5gr=`YH-^EG`#cbiG#u%voo3{VIMl;Vkhl z?-^^anD<+KuwAQI)%ZK@yoEmGJzYHGIg0+p$L^mI@#K7I6-&KHP`4D@F$hq^(~LMM-=_)Ut4Br(wp+J-}t%% zC=Gkdf9g|rDldKMOU?3I-~485Csh?m`JGNQj|PkqXcW$iiZ=pOu#f+1%MM=u2W z)C$>t{cV-BloOy=FX^ik{ z5e06zhQIRFuaxVxN@UpnLk~TqJmCo&`+GpFWXbgR?|F~DvofRHa_g<-^Pm5m^wIcF zrR|9RzxRt?Sf0MSwmehf8zjhI+4k@JVy=a-cf9%oD{>H!@=ZY4+EMNTMmrP60)LY=Glv|~x|LMbC z!6F7n9{GObb0C<*wq)qXcbYC%K!RS-`hU$e)+oE~qVMAfi8f``SlTn0|7UB(++puL z%X5ft$O^r#|&5^FtrExsET<3ZZVr&AH9=Syz2<9LDsA7|Z$a!6ff?pj zc$bSgnB*N6Oi^HlIcI)!wB?qY`v*t2X!n7on&V@N+B+%0u3i+LfOn%wj$!?zzI9|W zPa=4ybH?*-3TCK?eE#D^{<;+%X3s=mt#>)}g^>A1^p5}oa)l5FGRmb6%rQmC#_yJ5 ziB9?#b4$o3U-b?a!~|+!O9m5A2#y$GK}Lh`pnO$(9u&1>&OT*97prN4g;&RPaAjb-LbdshzE2%*PS4ZR0RuLGY-K1FPs=B56F=p!BuM8px1!-+7 z;hR4|D}zpWT(hR?aM&3-rfw*qWdEQE|7oxAgM)SQDar4!RY!aX3E1qe!LAj+!Ummo z(TW={S286Iil9qOj-!PB#DHiaY)ov;s>7uy&Lg0M00)2&r)U~NST+=qO%ru5 z(KcK4m=uD*K7e@$z!v9Kgzjc-MfUCwD{vFlQ1nSKY;BX}Rv08G!d7WB*Fz@=07{DT zX1N0S2sR#M5Ziys!b-&lw3XY1ABnx=!5Ae!E)LgTR99IIi|=_mmssj^qBp;>{N6{MQy!WB3EUj|`hSmyPQ0ss z`TW5{7SAphTsW^x)AP@&+FF$b%-ip{d0B1ds-DcIbr_!)>svRM{OU#p6!graXCoda zciZhre*Qs4uV@xxb^)G+zVNlbi)Wyr9$*}|G&vHj-nT!Kxlh(=g)N`BWtqF>mfE^) zma$By1HU5s+SiUPH{E!nDfiju#pP*F+szJQ@|j=ix11s7m;8I|v4{Dvbr|1X36BB_ z`Fu=$BTe|PzS`=tf2OuKTUFbn%_`4)hE^>o5x6=2M6Hm}4TL z^@$a%wg|q4CeyuTnewdU`TqC6uUti|G7YHtuBpX>m#+7|Pam-t@UlxUE5~U?N!lMb z#PIdI-u-TWxczFaNcy^hR@AX&)Dd;X4S^F@zGTY44bPh&`q01oyC`XY%74`>wawLb z+j%>;qdxdSSI?OMF&wxO~SkVo z9CC;PVA?8=?*)D6Lmv`E*IpO6(Kl|+zaX|?tL^_11sxm+k^S%23Kl;j$$q}SwCk?B zn*Ap~{i$wSF^e@?$D#94*C=EE+b2F$e}${+Q58dV)s>tElF`Qgmrw8nY25$tMR%! zplgK7L&@WY5A}KxEUKam0`qTy3B~f#2t0U`f@xfpg2A$@B2(*|tjTJlMZPguy45k zAyvRmiRNIQ7(X*DmvhfC*XBz9=#4Tz>^l4%Z_#_w4dt8K9$G)y^Bgy`+TQMrd1$?- z<@R38yE$0EWIcZ}g*j}m0MR_R7aAB&V8q&po{4(402c3do=~vpI`F~bY_^ym;++!y z;jNJ6po1W`Q4}#B&$z_=I^Tzng$O2uQswFnGxK5$(_@$P5*@hM#r9G5yUNJ)Dmm)H z4BXfkBXd?+|LjLg2rN}OVHOmow%Cx( zvE?{rmlq$gj7SlJz3j&wh8OgRVxgcXxKWTgF+f#1Q{Um>Drdq+lMfEE2q9P9(C{pu zT1CHhj0=N?z;WUxx!yXBtv}2ZR>Fryf4nTv=}|ipog$nCIf0^S3K*fAomU$)aebzP zDw=lH&%dFq(hf5J%UN+VB8Af?RwVpiw%DNTK6|Frkq&k;Hh@ooOvR*8RdN;8nM1!0 zs0_t8mGkd=u>AA&xAxVhi^CwVrlQG$^S-}cqwKt$exX}=;w=P*$LMG->fly%Sxrzo zU_iqz^ooJ3tRiLtUUL;Q_4t$J0^3X)l;lyBrKS^D^GTAZ4K>-UPVjJf z5I$HNtp^73IqOif^!x1Z*2(qYfQ6C?X!EX)17K33MJen9HVK*0Cap_mE%Ql{S14pM z`$N^0<-4+Y!L>iuerteu*fbq#wi|bnpz#^w57eX_V_i(zq)8_Wm1|o6BAM4%{$%ZM z_t;_KV>``2<#hg2`JeAV9CE;i9DL~>eD%m555o^>yR&JU*uLJ+R8w{Tx?exac+&Qp zmRYk_D@zy0vk(u>Y&~|_rN1q!&z!DritrtqMP;X*=E^u8l6gwfGfvU3uyl{q6OPYc zIQBgX66yKu_q2bLO*Sb{dFoU2i~3#6k3MizNz>>f3LkfiR}BH6{gJw`~P{`>g>c5PV_awiW_g0CfuL$Z5mJNL(sSX z*4u3DkDkNs6iqOn^Ru5zbHvtb5mb@Xlj}mFo@(_X^pDyqP1XK>%JC=gEtHAZ-(iPo zMUMhC*Ia$IRvR5_`D~TOiW?Z8ak>IG3Q}eNi@?qHUSajY4@FRBSpNR|zuey-S)x@~ zA2{kL>&4#NuhRBk^nX@7{o)t01wsyKgB-Try6cy>yyY#XK`!z^N%=vsV*7(8ykTZm zGVJGjMQkqz4#CGuesu}iuKlrptF5+jJ*!VxS=7p3Pi^-Wt(Jo5ECt+7*S2r?ITATl z=-=A2*DCMen<+|{{91uGt>D1^TycXHANasg3S>s0aJc`y^ej(q=-UH?1uP^}=^_z7jPuE7r;^}(uZbvn#zc33`D zo9Meid%a+$JtTrK%KJ$2`@m#$@RxoDv1IP1OZiYu>DkoEL(n*we4KZv@M#kBShU;ine z9%4NB!elxAr_Q3r_uufj-7&HMg-`KkI!ta;wu9sA5#!(3|Kt8gCvo?v;}5;a$w1|F z9yR_1QKhXUWQg>+=)^wo2m} z^O$3_;%0lTxY3_$&_z1M`w2A66%$O+Go64A5;z*d5Azhz5PYh(z25GLn`^t;`^pW! zy|p~F%5=|R6SRS6(CH*P=m}slcKk5$>mmmQqZGU5YjIhfgwsKe{T82Ar; z@T;)|`2yd-BihNNwh?~BL`aqk4_jsKH5Wc~z3{La{!l?5UI==$j1)MbFA#JHIo8AW zC2H7~zOt@WvSGWt_;4+Fh>j5vFrtI{HVpOwum8=4PG-JRE2EVl3h2oT8E8iu52t9V zp>|S)g+t&gC+d%-Nj6wc#8J7-2@y8j5jh&22@!Zpkp7{kamBFnFNBv)KxV9vzTfmzRfb6QDFHvC9jkrUA!B7Hb zY!{TPaEe0w;w|@-Z{5yTWRE<(Y|okHwJ*|MWVDON0Leg%Tvkt&Ihp{;O6exOU6!8s zh-6PIkDXsXVPW~+X%9rjBRp>M-05YD7tS!}VfjqXSS!i5T2%&W*^e$q+k?>iUwu}T z*Pr-cx%u?Pk5ID}k>QY(4Q_SN^2m}T&qKHa;DJIQ(grD!>cNx*;l;!oz!6IAmIL6> z9SV3PA5h4zOscdiLSI4s=xU(BKXYg_5m%5zm{^%CmTSzw^;cz%BuF{Kl~wM@>U8fg zO;bibXptrobbOV`{vTNN2)v;t>vA&9%8E1TX;}1dc_bmsSA@8{`k^`u^!PJU*bs1t zcBr;5E)Q?0Zh7)$s;etwkMVfAx*$E#%T2^;(@2CEf6>BeEPwL$$JMwpU8Nk}`&0UV zi6*xH<_#aQUOc3t5r1gOvk|{TnYsFOJ={OwzziQ#Uvu_qWt(j_mD>HX?0Hw{7whvE zm8tr!%}zUQp{koLH{GcCc)c(J4;li>& zA9?2&`m6@nX6tRt^E@WE{V{p{x<9|gAs(#8_&F2IL+!ui+%2?fK`W;PKmD}R6(l&b z)6K&3kk?d|515r1u~pi#a)DN6uqBjJ;zp^kjT;}6zgmGCR@_j%Mh)Cx|LJF(8LNu~ zhkXPccJNA@53-tulsv0^f;&5CJ2keyJL;$ph;B;RR4XG6KKNkco^|Hgc=Mnsq+6wKSyYERg z2HNhNbIvKJoO*Ix)7Adu%POO{zx{2Zn^G?NU`3W z{FnXZUz8o6@>Ih={;`j1Tef@s3&z|6?|gmx=6Kq*+Mj_8SRKhXW1O@yMc>-lOy8^F zh5M)ven2nZBfU65{uY~WR$iyz3qe3S9_B3==-Z3R)?06F`RAQ`zWO$+$*NeLVym<* z%H0Y$eNtPcIb~a^5P_y$47R@2{)5y{SV^-~ftwFF&?Kf+e#72d7w)tZfvsib|6}jX z!#*pjd*9s?-Ow~MbbC++6&er~aX1<7ag2aNh%t#`M03nNIZ@OoH;G4c?;q!R%t@Y@ z7?R^rauWefZW4#+HOY+=P8k&hheQL&;E2pJH$A`i`}wX~wQKM9_r5)%AiKKXT~({r zRI7%)cdcL5{$Fod?O*AHd*~sD#dmNjPVd}7J&vb)%2S@w zJ?5knyTcAYB3`~5`5wpGnO8&BY1IBvKEMAhc>f=@|3dRmm79r4{>*hpueE_g$P2mbi4YE#vEqox*Q0G1@6Ss}|a zE;z|*03KvU%;uG)e8u&hJ-I?#2$HTYWEDEIZ_|*pyo}Ial24^0Az-12;>F~5-TLE> zH#IwMj*#Of7R=QLw7bMRI$_VJskUQ+oa!>)|@8Zt#adaMKAFUg;3w zy_jcfj;D?_{6ZqSU<-E714gukZI2pCqc@vJ%#)W65k|ejCh)PXqR7fvmm-7r=l%BE zSG&YFH##66` zAM&ZQxyrDH%Ln4RSubn@KK;c>%Xgaqd*XA?HEwM6fkG9+JEo*};n--=s9r>XIUNqK zfE7{qkpl+0W$I+{Fd$+v;Khp<Spjs>(qhH3J_sDhKO4)^gK1hgw zUXoQNvve#_)~1bv-l{i4PZsSqiR|2KZ|J_UanBqNN3C1d{pLAqx>YO0wWu>oK3eCm zWvoATmp-X~*g0#pq}#Z8uKT~vmxuYroQ$GuSFfwrF6|z7&c5AJ>DSj^To#aT-E1MZ z`k+q8PW!7XbpLk#ecin`(KqkU5E|{21W;vC2c_LL$P^YepD=J+njY0`Y$DpNWjaX1 zD1zA(nLykZN?DK50*X>035upL%LFpxQdGgIctb+6l;@DB=p(eqwv2m(potnALq?$A zROX;2;}N*$GEAkUh>JbLxZ))yW&94QN-l}XW}28VPyP^)=z$z^>+F$*gHF+6MjDx* zSeSJ7kTpOBLveuv!8~~3wP3UuK`IIkb09GRIHAqAd`9Wgj!}P=4eTGB`fKt|NGk)_ zh_}&F&!ipU?5=#Vi+K|v3-C_)ZC_H_yQWMQy5#(8{dczhll%vS{W&V_mtKCJAFSB% z%d?9vv6!iTu}sfN_vx4XU%%!SKOb@b-=c5Z?7Q#E?uc~ukfB1)g*xh}%K7_uL{qLn(*gp1= z$Ea&B>As}J`A>i5Q{9GpHpJ{88T;zkv|rP4WQ_mMfBsS}Zhzdv;LyXg<3>k15vt>+ z)>A;qU!?`)U;VXTlRcLDn;U=iSMQGkh}!u_a_U^JG~*Auz3DgJX#C6NFsdK1AC13( zwgPpG_r|b6BOVC;!sfEPP;57TEe^M&shtutqrnu&sYrFTnmm}s1 zZLvR?$FD!Gd(n$t?D~IHJFRGc`u9)2K#r}GPcpj;FTAk(?svayUam_?QLSInPMNjq z*2w|5v3u)V->MQFDN(;GKDZsb5H?QciOsi!ErqPCWU3(*B|+3>zKD=jy={q+_yjdDLEuJ6lD7LzTL0>>aUrX9XB{Ln);vp zG98t6%(2}aa*qD5x4%Pl(x>Tv&wDOAgc`>ULKQq7pYmj}nkzeLZa3WY1&8!6{vtbb zj?^x{4c%LR@Ar+vxH{*R@$INjeDY#BL@zNP#$U>}bLSkjpVaBc9^@h4jFd$FD%J7m zqmR+Cj!#luj;=TtUU)%iHzSHyp>67qE#Nub|MKl+*#6jm80OnQP!b;Y44NdK?C*Xy z^}pyA)A&<&C~wZw{G&cG&A$(Z`%ld9?fOUDf6Jhb$Ty7kUI2JF{}0z6eT$Fj(U`ht z==p^dma0 zd&@b&a=5Fa1$E;>qJN@RRhDY;9xxjaU?gn#PO&WgXv({f3JG9O>mFzLoTPzhs*~Md&OX>K5zw zO1NG`z~K@0U?rOXUa2MuSqrZG1J^%t6hqeqy9jE#U{^8(>Zvp|l*Q>1(N3X1yn>%; zP*4H8Vxb;KKhzU!-NV-E+pV|yi1P3wm^lR29wi3OGPno^Kj7AtMkGj7=8FabA~Ooz zKSYOZ;t!2L33}5iUAUQ7!RTRT74`@+ED?3gzR){v$qX8Ho;9R90H!sssX@uQ%+(7$lk2th@=7F&w;`*SI{@J)T z1{XrW>HJX>>?4)2lVH$VM`3>Ij(fY``}S?7+SAKxUbMP<>J#>blJpN-Xj_A7)WglZ8UXSE9M^^zAo~Fesw`^@Tvwh8~w$ zRBW2rVQi`)sOCiIz97J2Xo+8Nh_b#(W)%`|6!-WsVg|H*VNd0bTC$5VE-1kwt+fz= zuu@hV!y`%5Cv6Y&Wqhls8ak1BHb&DW*l~@UUcku{3LmieFE+45X7v9^=a|d~03(<@ z=pqlHfx2W`NmL_vJUQX4FRs%FR!fsG%gHC-Op{*>58A|S@qjC2QRORGWjVIj4Ei3~ z?0VwVvlTLfUZCjWfp5`8zV3=H#6&&cJ{f2Q85D=;XVIz&$(d`CUyRg84i# zjyQU(hSiep{qNU@=C8U+soDMSth3JQ9{s3CyZ`e+^KX6YTXN()zI(oorD9zE^@l## zedVk9G4!UNm*iOf8{Y5+)o-PD2fX$7&+|?c^iBCEp2#;_e#TX(ztoqU!}L83AGf8F zPin`_XE{2IelZ$<=bZDZ?ht*8<(_-*>E5BmZ;rdl+0#sQ;rl#?9&)hkH`jei-}K-) zV!7=2#y9KeWeBXN8_Y5~{T~_Fqe!uvN zU+9ilyH<73F>UPjk^CMBNujqZ5hc0~($(rj7U6o~aV@pMBct z+PQ&4u)oIK#h+V# ze7k7eu2KKzKJWR}5%NEN^UXz{Iq&YFO$eX-u5tcQGZ|G0ixYP&A6U;;)$hi>)19qrEpGVp#JO@!`Z>^v-8e7 zFN?yCVv+j7?aeycO(d58*vCDtV@#9#@Q44d`+~lSR0LP~{JQY9I)-kA=B4Yd`?~t> zpSwP}lMVS7e?rHg`TI4!Xi_+C7+2IE$4!2FDCJ|ES@*v)PCr97dXnir@{tdBmtTH) zVZ8JG&jii*BX4VlNtK@NzYEzv+9&(1j99~DfBJilXUx*)TRRnlP5p1){8!&UrtzoF zGkgA<#$Vos%49vwKg9xjfBvPfrL`?&VDdqx!2_Nl=0oN|Ld=b2E+jH)gI`&yu%=1q zehk2{N+=j%oDXQvprOyA0U6~bm_KRm|B7H;69O2PwID<2<>!3A{`lhs)%QW)`Of0F z(VDQ{tzeLA*;(gitTn^9edS9Xb@Y59$W){@o@)x^;XnD%Z1_k6= ziI7mlsj4WZcYd476mBEez3@Uu+Qqx1gdTQr!n#sUu=XL88i;`QCFXzVPuc(?g>c-c z(@`NhhZpsgX0ad~B*EOsQWVBpwdi2)BW%%JbV^tal;hW?2r&=EI4+>HGe)>5Q$1hG zv%4l5hAQYIx!Z6OVQdyfisuRi+8{Z|rIVYZ2%&WyRK`&z=n)*L!(4auXW4P{a_f4f z7BO}=9HkEozvbAq-J0d9l~~)xh;Z*lCc1<@kb$Qc`GJR`g@{6hyHwvdTz6CVtxbEj z+a|c_Z27gzy8r%P_wUxMW@3^BbY`0@F1eB&%7v;)V60M1xq?xZM)SMw-QNB8Ke?y- z&P{u^+s2G_+3$#@-O2xD-)_ZfxJSTR?gIn)(QjJEm(?%!OS^C0FxP$cPwwkB-0V@5 zEcbGZu0=U>?scChXpEW&3&3ZAo2FuDxjhi?I#>C&Msn}tfoimW0D`uamWatG^T`T$ zhNi4ZMrqQQ*ySZ%l?SsQjlrTY8sLEE=}Xv&A9Dt9bA>D$-*rp5C5A;{DiRE1I^Tn1 zsHS|u4Pd+wpiz|Fsi3)tOFKAHehY)xa)oP^V4wtPLdk|+A(~&r_@-(ErNLpyDsovg zo=X`go^KV!ugDlXAnK2pOOZdWKBYAnSGlTJ0kpb<47l=605L!w1QZW&lo`th*S3PL zgd%RpTV*MWm{7)h)Ga{$wU<@tX4QW;<-1zDDxb!PCyp?K>scz5b#lE*Ewa8@smv>$ z(}}jOl-X~hcUiY-}qobn&&8X6!2`t zV(~lwjD>S~fgBdD|DzuLsP3$@USeHtzWJu^J=#fg*PVA2Iz@CYg=3CBMjwlRiFxwy z`UmIzLAT+)4c*~~>ANbw{L8lgJ$K*Rz3biYn)gBUXFW^17TA>|ULXFu4|iYw*Dou* zqc@|t$L)^ z<>g4Nq=PX*`CoaRj!GMUaPFp_2y@`qw)9R7r$6L!;UlVyWaI~eWdl;}2?|8@gI`T|?n>q@g z9Z5g`(wBA*Tf5G%OVzhO?!H}^DtgIFUQ)jmbpHA0cemZDA8gr1p_q5voT?o+!fn5C zbJ*dB)$bf_mZOqgNw-2<+MlPSm!7TNJjWjE_W$R9`DZySKW+QhZ`_Dy-A$7+i)!iI zLGC9$sbdPuH*S9B=YFO;>JdkK9>PX<+;K;mQ1O!PfBW$t@1FjQr(0jf;ZUa`$O>VJ*!K->%cf0Ex=b+Z4||2*)f@i)ysn%1ZJ7bC=AXr{?X3VuJ_e|To9 zY-NA1;Q)&}UZaJcqlD;ZtSlrm@BK4qVW86BLxObDMYb0LoKOiOJG`o}SpzoiJo(8$ zlwJcU0*m~4l}df8d?l*=vk)yx+J-_8<>5I)K09tezuyFI>v<0-Tx^Q^5O~(rBvgsIzT`giO zrr@x)0x!LiS%}x>QO7bR4W6_!y7+1hN?i&JVvY1O#ED&@cWqzn;efvQ79gN~kc*fo=UQn3#rVjGvaq2YEGjRI3cZ|e zMaM9eD8v{0^3M_s!hZoDY)zj?oTv+kf|$4YsoZTQeV3g2oY$+KN-#MDOHlPE$A^r_ z0!1#IMWtXB%+S~8|H-(N>3=v<&=!MB0K9O-_!u?8*v=&)!@;*|$`jxfo=K77kP#m{ zaZt2$QapB4mWswPY+IytX)rfL3=%U$zW%5Ua<2Z|UlzxWcHAuJxCva-FLHVI!K=G- zAAV@mQ~Y}>D%Iz55}ERvGtt5Gs}wQdWO-n%;zupy1tRZH*OBs;_r9;oU>lenybEcv%b->q5F{^)1o;K zaC(S_4-aa{;9O<@0!zGDTo$;y=+A$>aoiwCe^k6gWC=V!y-qts_TPVhqwt*_7Q1h_ z>AT&%cW=-)T-J2QKJt;?nZip0EdKS&|Jwb3fAcp=2g5U-^IRQ=^hERjo))OT^u;fB z-}%mW{QVae`t3ZCz{OuF2@DWW7;+F+~;h>2S+@fZJg|GkD_-Hc0sQ)PU-yopODz zhZjeF#W!wV|GL+ybmTmdd>`|rW6+TQyY(A4LPV$ndgpg=wrtZ;X}|pzK~$*9(Z>Jz zKmUS{|1wAu;te<6Aid_a%VwR*<)jlTtl%?r+!SDulQ@C~a)CovlJn-D{q|eky`CfB z)W>fB-tFD_YR7EuoI(Bw`Pc2|7lqjHjnISc=p83q~$A0X`-N*P&%~$^I zE8Vxg@eMm2kJqm>k2?Aom(jof@PGbKzZAM}pQ^sCK;Qo2m%iw4{ZRiW$%%QWc7i!b zFFPf3_fkN+=RW^A-KnQ&Oi82bMgN5_d{IX^-0U<;{-pFhygrth5b0Kk+FYmG&=}C?#R)e`)_igu^j~ z*#F{BaGcubgt5fCqfXZ@DeQN<__BNLh8u3suA_ar_3PJn|LLj!$@a&Y^m{tGjuRUk zPy`}{CONPFrF^66lI;)Oto{dl5E|z2AnVY;o8%Hlr}Pxe=@nfl)}{@e{b8m9S2 zv+1noub5!VwV7O}`FGFmKfD@;Is5*nM|0n!v38m|W5Y^$3me19*T4;y#RP@2OzSqb z#3DaRJsr+#fAHdM0W3+a@Bang#K4u{=I#VQONbl%BJaPDCGPP4@0_{x@`Y+SCMso- zj!K366ONDXX<*$CjPPIWC@X-<{m zU9B$ayPA4}wrF;-@Qh`k>|Nv{6FydyW$;ut~#e$p(-kgCEjk4yV&`1Cl~; zbi(z+HZ%(F#Ra9<0$oj_e8fg1S!9PpBMPY}e8`19NkcyDhd%KK3*?axjlw}fF}Cf? zksVly%_rhUDZfWodhBJD#8-rowiV&3zoG+W_EXS5;{DAn!(oO1 zNeeQ|qE9KWc3JX-(_g2wkf@Jr!!Os!`%i-HOi>515roFMetg81hOksCpaR56Q0%f1 zJJHaY@ibZqWC$0p5{nWxgj-*#$paWca!C~V(cuj+4@{B){lajfQKx15mJL9fs;YrF zj)cVv*F}Wau;XTMR9fgAMojJrOGz2ehyUDR2XwDkcQ93tP*Ie?Nkx5CNJl3`GXy#l zCS>or@s93&x9|(Lc}yT_LS^2-GTD~(>7RPq%I>9S>{p}%r;$rJ@@W%|M!bgDlJ?h_ zjbPYZ_ZJ_zulvy7Z|vzx@i6LTR{ln4;X?{?M?Q5$cgz`jiBDq;*+o5E}eJI!cGv#Lak2-(n{Yax&e<;6_>K9kkizLz;@3l`H^g zk|#yb7jsj}LsNF@0SN z`g-8o!cHDNLj@~6H*KBk{_Op~Q5`pQksJ@1ZrlH1I$rCAKl`&CAB5jg|NH7!zS8}z zJ`~RmXa_Mw557l&lLo#q{-c;HGO62#KJ+1dqvdPX1-!LuAJ)B8I}cWCcg?K+hhyRh zec*h#b|hWO2i(izHjBsSXz`!mU;VRqTq-!0zfRvdVMhcXO()E%{}o!;{_DT}Tklk& z{ydj@$BojL`AD#jh(DAKz0&^1&4CAW*Is*V_ZK=Ujc~vL`^ypbdevbEekb~dY=!&-bPU`7{)@lZtu9VB3k))^V_wIuq_@Mh#+CPq)(@|-9x4>pt*-4|L!B=GSe1zOO^yX6IPafS>6bZ~Sg|_~C0kM*STn z^=+36fx0~EQIGNtH;FO>G01Uj=BW!bgp|Kw!#&+a z7rnc?U5?glf1FA_22IG`ag#?77WvTE_EWmzD9w?FFV{F*x9$knKjlG_GMNuQrat-w zIcT#^l&5^-mim)U!WK7q5j&K`xc;-`gJ0>JI!*GY`~R%@Cp*j3|6=|bj2{oaGN2Sq z<1Y+CUzzp%lk?Fu|HQqh9aGc%yZ7hc9G=A4=UP~Oksp=w{A2%w;5_ouoncVNH}FEE zD3~j%<@5S~zW>JvsJheyEONa-X(>?GKMGFUSCWjFU>&7VJ|FhuFSU%dq>vu!xM8zsm9ykVxIdc3N5jlKV+XimE zS${6;(neBIaLTJVV-G#+0@)@;yeHam1XJ^3{XG}-3%)luX!Al*n)gfz3Vbw$PpOBp zAwxXOQvBJ`!ZF`=GAYj*IqyW_ph8JiN}a?G96F1FTEMaSs&c&Ff`{&{Q!49&?l^*M zUht?6e9%)eGho}`oiN&3bV9&6VX@+6EY-n$txBVhnSn!Hz(Iu4@G%c02tP>dcfgrM zS2hm(i%#eVnk9-pNVMiGKIsSw{m@9kI8h#HR4koBdbqC((LNCA=3PyqK|*q;uGHAJ zLuWV#is4Q>)l*32Zpq`G{hB!#lfl?@6wXIxrwakc14_s4mN3j54jKQ#RQScy7sADy zGQC9Mm_fmC(5N!9RBq8iGb#mN=xk_J4CP7V6rzlP5rLZ@JgAg94jmR8Y`#rLin!t` zF-&C`#Ev8CMMjsaKPSh{%gz?lCEb-*TwO_#OD%k8>+Yh%TVUKthrqCv$MofJH9JtIZ` z4rpE*`M$|Ppub96%m{k&cUl>6_#Ffhk^lfe07*naR0B=`B!k!jz|_%6C)|1&Ul+?F z)?XSq<%=}!3L8iWF5o?5R3RM}(Or zrm8U`MtwpX0gHU&2ru=TA#NrpyN(HA0t4bv$f6Ng*(_nE?#YLGjG6ZNq%q$?W+-WX zQO_eW6DQ+@_gW>Srybx9GHuO*4yryVr$%Xp*|7fbBABR`*8>A#AaanIE zz%c9&(EdF9zW4?IT}r7Blx^nhj7Ucd4~HCU=4UH)g4mIxnN5}1XXP@L>7iV^Yq$+y7Rs+($cLo@eLF%9Sg_ zcJ8et=epZ<^by~gxs;E@yT1yqkoM=eu4g{;nH}HQ2zpBA?6CQkc2uxyO<)d)AOUAj})lKm$XCS)1UrK_scqlZH*iipS$Fe?&6Ctw!niA zD#up|_v7Mwsq}&$p;0Yzvd<%qe0cY?r$4+7WzV(*w%U}L-cj+anlPQA> z?eWGp{x{ipS$B!#enN69UrfP&^`R& z5AW8jS)<(&_iE?OjovN9?uOUs+a-i>8vVUk?w$GPB|5h5k&k?&?f*yT|B;U0x^10}d{OdRe1$xnVN zoM|da``6><#TWC9o3tX- zb8-|tPC7lQd$^oiyzj8P=)6BT&y_sm3>}@PGIp-~mh?@^l+U}^)1Uq{?aGn9+KH5K z#`4wITx0n+X$Oyk3+LpxJtU5W6Yygn`>4kIWiEzy();MRb98i^Lc2>19PGTK9A7%XBq`nF-^BgFhP!&4#`Br`qCQjj_?0{7*7LUEu|Ix-_pv)vc%`w?O zx<~CN&QASr8h?A|{#*N14!G!Ubvm5J-!%TP0R1HULf(Jt%{xrgUlXx*uD)oTswkuW z*W%4D5|x2{Nv1R^^!!`6#-g2AWodGaym5!1%qfNkcrA6+)} z<+xF}@ST6stvl&?dQ^&cF>}*%1R+UChZM9E)CHl7_0{v59vX$y^WdZ?)94+|i}&!5 zjC3Ht!ZKl|XDLfiIm{``^=qEt;B7f}kf^la84>=%*F&e@r9u{OiQ%m9oGeW&7pPty z<5)InE7o3dhXLv2C3$|=6oO5`t|QekbvH6H#gBJY%jek(Hr6f5a=p@qkb{ZmYTjp~ zKHx-}l$Eit&>cR(OL^%Wr+~>$@Ry*a?oapzl$Q>C{tC+#t=Jl z0?D|D2Pg5OZb6G(Q=g1^FL!;AU}F3qk|#KMjs@qm4brwPIOxZP`bAXB<8(1>jx12H z0nRWsyTr;TCkX(f&RB{v-ZPe*a@w!Raf7n#P}vrWXwdN2DHAYp(;&7I@D@Fb9|S8ZdRI_HQ4x5>ADzlNBF_~tnJ&&2!zQU)|FE^=IzuzRfpn(3`MG{dXjPK;Q6#CE5Mf zF71wd+CJT(Cob=n>ATE$*h4qOD(%&gAl#cksz2wx_M%DF~vh zJ+P5aY4Spe%olKp!q)K%hrobWGa3SqIw+MqB26x##E~;d=`2ln(vojOjNsst*JAO4 zCMfmC4ha#cR=;5u^bH{K6}S4ddPi-cY(mrj3~h^tj2fbalk@fJ8TRsP?P`51$AWIr zRX(j0tyL^v(Pt(q-OSQOfT?{OgPsgCUW7$0nuVJ%V!~KXK<8gux?-UDNFzwn^x&EH zuXQVUV(%`IWL7bGWt@fc;~eAFW?4m{PV%E4hi$N38i%+9C4bQNpVN;;PJ70$XmR$y zZuts1C3sd*)8oAHuZ`5m{P@Lr!Q^jj?kmqpU>y+NAZ>8Yu zVNCl&iJI>ScisKH?jxUmTeqACIzx1^iL&2ioQ1=foj2>&t<`RU{d_#r%{Skod%kX} zh1p{LkLNUwC|jZL@@%?qV|S;Ht8&66v&wf{;vHV!;hS+{bSeCN$QVVy0@?+NdX5NP7y|9jN02 z_gT5h&NYr>D}$@VXr!S2n)2PZ^(`k}*uJM@=Hi`(4!v+_?ayu&<^+CxhU0dz@mDz( z`7|UuwQ%_H?sliXU$sT^M(A9z=OtSCQ5m7^#Q0A}$U9*FHJ;yS&s~{+;IXIjTl-rl z&mTGOWt`g1k0<%Q^~f;AR<>W*X;=DR=`vIMPyMfSsO(6@3x{d^P2+EGKmWx8j3TjQdZ8 zY2+yyTyG$`%fF$IUx+RN6`U#trXV`d6*%HE`YiSQOW@CeNx~m*(hd1urcN zJKyc7L+selGb;G#>#9ZCeDq9+zP$V8nl>>q`JZ)-#s7dOE@eJ#Mp&F|3cimUBab|u z8F3US?W5ZCgD7+g=Y(EI(H}Bwt^d@N7gSh*@AX3Axc-pJsg0JfYsnIW4*akKlEA^SBira7c$P)VGKh<#f_$-|DU}X- zIhase#rOrn5uz;k=mrf4{Ff{NLXH5mV}|l-Eu4hGl)vDGY2YbOhGFy__(yrcEI7gx zCH0Y=?R4QizqG%38qq}5Jsf6G1)cjg9Bf;`=tGjN-sU>6Gt2o?PJ69dSj<$BC3>+2 zm>mSgc*)}XG*+aOmrqK#0>X0#f~k#!X!KF3ULwRyyd+G#{h}r%m+6Q#n@%)zZ0dnQ zV!IcM@EDYi5FV$P58x_PS48;s8NxbvXXA*KagY_A0iCIA=@w#h&86?}&SuAr!d1m_ zLmJwULM{R@Lc(X^1O{>g5eLpwbdLQ=t5XfF1?g}SHG0~_j@;WpTGOQ z?z;On4`j~by*u*JbxfB!5+D7rW!GtxC%wSg++0jG~2eSv*lC)E^b-&_yua? z73h$xN1d6%ZiJCGDQrxWyi1)1#SM!VEpdh{GuLAVq~xa6A@BV${z7lh z9J7pEOt{zTKgs{T*`H^OefK%ETmR^1c57B2s4>KOz~QLj7d~t?=NZKh_l!?H(?q`0 zcW-#01+-Mhqixdj4@cDQQ=XdyZ??1ZJd@8un>TOhuDtq_-Mt%cF|41v7y~r^)c+og z?to8~yCS_dZ+HV$dzWBt5r zPGIdF0@lS9ysphD1tLm40xo(wSzQEDompeoJ12;&H>(iM6vbylkm#38MShpmJ7qW@ zzyiO}D2gA33yL1FP$_kWE`C5Lu-;F@2Y~ZR{sA8=hfIR5qP1OMYxhysi9BrCITO26 zs5AUcY<%Puheid8!u2Y;IE{YjB!7k8yU{OsTW54IKherQh@gG&Um)M@s5p>h2bD#g zaD|W$-Vjn|UR6KpfXczA+SEwWOKpP=mZOx!TRyO$L@cz?KFBKs*0HBGf%|mGM}JBs z`4oNQX1l&y6T)er5Go8;7y(=5&Ep(*8rx2oBE?=Sbs~OA>F?B7L)s0aNeE6Bbtv<8 zV?=|e*V3I6JjufB>?FYH6UU(8_-%RK^f+yJkfSWry?gwqEZlM$dVb%vItZalQm_+ zXOMuw%oVrNxI$iOYg?F;OQNjJ7djPGQ7W!!88~i6f+@|M$ov~Y89%it7X<}Qgp9;1 zdEr7zNtQEvB4Ks_&W)Lvzo6{-wlWqg6KSE%8y*n&EG{3MmT#NRvebRCvc&Br0_k(& z(N@nTMY211;0|>GR@%n+*pWb;C?S`+0q;u_bCTb*{{zVWJVR{PFXXpqhX>Ch(R6LA zM!WJb$ll~=*?yc*%JWe?)kNFJD9gSP{i8hf2th9bI+AU<9_BfAjPYH~G4;QJ{jp|0 zt{(W~?|7ZR{h}AWNIL8IIXUt^_u0?+gY)e8;E1aq{gMCJ9d-0EuF~z=)$#VXznuy` z;M%|6alPfg=$o@z_TAz9_tQW9g6=Voc}%xOJ8pib?6`rd&i}Q;yZVA> zvx|=hScMepfVcDV3zI4l>Ph}&|Ed4Qov9yiIWltCP2+Exe`2o8IW+E0z^3_kXYYS$ zyPR=zluh%`Lv#M&X(q-|c}{8{Z=!R=bqCM??N}@Xj^b%7qy*d#QRVpuNXVVt|B6na zE#dtKKB-`qk>{N!7S$JDClFdpqKcCbu!ctkr=CyfL zvjtDbis)GvA@EMcpBxc518}(DfM9Joj^@(a9P81=QDN0Y7CTM^_xeim$vVr*V(%Rv z7G;f#-YT$YX{fdHIEITFXUm{V$PazNhd{gwFJ(}`s_;%qDeE_}1`m4F-;NEFvQvjO zarC1sr9r2(mF0Uq=&e696Cp9&@e3%uU0G%u5kF{@vkQzYblMO!Gw))NUJiV$b}1ok-k~r0u#*Y35)KT0 z1}aKl17!SROYnnE5c5-kf_bPc?94b35PsNSeaX5QlR8EooUlt#!ZgsqFPvISo*>5! z6=zX^F-CRpqUB;AbArcRYG5G%6$HZr#9{&su?+{1ym8?K+NNz+#j|Hx8a%c}MN@<^ ztgKkM^9vux4cwO%2a+8yQfwK&LZzZ;$beGik*S_-7=wm-xPz*O7}s@C?5e3FU3=MI zX~)gWjn7eOQ7kbugh@dudFJ9Q z3Lz?QX_I5>MZQh9<(W=~;Kh6#CBT`piBkq8v-p7`9N#OzAwWX_e`mt|Am3_-{I&*z z>Y$nmeGgLoqm_UO$j#WuEp^ntg}`EF{f#uqw|R64OJJ)u6Z!AA{rzlGo;$Mrv;Vt= z)&B8(!?RB96-Dv#{G(hAGx~pkcyy(E=&HYn1*pcLQ2)_o>VLhZZM+A^_&e*Yv${tg zcbwXE+^Dp3!0ynoRPTM?`*g(JEpG1zTKgZSZyLSwRj;=FFaCsf+~`{~yE6a%^b23u zJ?5m7y3P8=P3*X#Q}^|EQdx&VMi5Y^{y&ZXY5sdq&VMncHHa6P{{};TkeSB+H2+QW z|8)QR;d}ng=YQr$ro0+v%zrU=Ht*j-Tu7R=13{8k`?R^E_s=SuM0FMwXqABZ!56!4a&0+@KVkb#U=w zmkVntAu@DG`C4>`$UOSp8}Ncp;SGYqk~yt8$#z~Vm(2KYEm?S`BZ^HEm3N^vy{N4=Y6&M`!Ou<&$%uDnBM1i@D<})g+`z#% zU~(4<_QQ^0Gw4uSdC{U9c$C8gdHh*c$(y$52wLiyGQmwBgt?fPL`amlRli5r0cF8T zTcQWKtSc>3WMGIAs53qk?+hC77lM_F4J}I^ucOjjfnr5(-$GNdWh+l?Eefu4a@AD^m)!o#{wic&=G`HyjG!nR*IKsl;tmX$)JyR;*i%rs$ef8hNbf;?@lEBtaqV> z4^AG=>tlfvdT`Mo3{FaLym%xPuKm0mH!puV2;G%eO^%ze%5>d%3uF%?-i;u#dcR2) zrEkJ5xwq*=vovL*S0@H>52@*fQ5pLtkIR5#1JC5Ryy1`XXqljllQaved?8c?7~5ms zmC%VwX3Urkm~q-*UxqK}Q4}yCvJ$f-C{Ot%ZB(PBK7~h;4q~vGvnu0Ank{ni7qBl0Vsh>VI`yG8{aL>bRjuGtxt3{GFGGNmg5^Lqc>nOzRuod^FqCgmz^h0& z!5BuPKoJ#j9TZu9WgI+kRv4$DHC^VF@$-KHdJPH^>6&XEJ0ZXS#?1xVadTSK-y*bn z&52R)GC%2OeOL{_Q4%&m9-9J;W}QQQybr*M>8K6boitJ)+e^SIc!W?}S`8z7SBZ;5uK|4^8da=18PJK`X1eIe-dM#DG@(3~5 z#|8;$LfuWCt3e@$s(JSfZ6SWqmf*`K){nX(Gv3$C#xf`c4xQ4rAxE7|2zD zwi0L4Q3vn?2YLLZ^C-G_ah5fXxW4Y97X#}I59EqL&kcD5^eK4A7On*e>N=cy#_RN* zU5+PH=fM%8ju1#u347A4olGG`aD-4Pdle;=d@91Z?%O#!MCDwfqlZDLs2fLeXn?K4 zvoTP<3|?WF5aSu9oGYl9&WGagr#u>7V%z|dMFS{}zQ~6zy_Hr*z-vCwH*Q`Io9>D$ zuhex4lLdCh0`wR{^sM>mfGl){8cM>8K1ElP1Urv)Z6#eMZ%oy6mYVSU6f ztcW#xbz#G<;Xxggt-*@a-26l`TL>@V8Czgf$fOl6)@?c^*=s>TgsfNQYn=70fRad_ zj*GGd_I;6G^a{O4@}&o=)b3aG0#uW#f9#q9D!2;h&OL&`efyVejVAf-|C9acH&g%f zz$t@^IhEuO!}wdaVp(^{L5FzQ-+AYq-htxGH2$aY&uftH8`JpzVIBYV`OkyCxlH4K z8voPypXR@5{(ne4|MFbxyS?UrFM}FTRsc%jV$Z+aK}?^x<(9&81O>SsQNTNV|BUz5 zeExtz@PM5K5u0}r5KrcU1#T23P7^~%DEGO@G}on~k2AU?M``#Lo{QBVE&Poe#TQ<1 zLAUP2)59KeBA{?ADMdQ;*Sd<>vwn<-Sf5r>3otC2vwj^5^&%&LCYaZgz=yW{qm?Kp z^8|IHJ8XJos%ZJ}T24?FmVtmJDc)SZ7i9^CpC+XX8e6)F=Q|JX5N8<-ak z9qfj5*ux+FthDvOnG?HVi~^R|^%LJv=t}d`>QJ0I8O^rc7gtO{E*|L%+?P5iCaG5shY3B?qg&Qp>9PH$dPHS;fS2;r9 z11iUaIa%bXPngzO>HhfBUkeW@9LJmmnV8BEf)ix>R-8F93ld;x?6sG&v~rImVG+7IF~$uAvXFBqSWggpuFRFU*`0XzGKQgB;x zICzpvKJ)1l-FQWwu?MJ$1(3eq2bYxbYPwo9U?6DnAkK6mxA`WWNn+c?i6k1vgCdPe zjX~dFs~SS^_=XH*3Y1dhn}cJ6iWMl-A2)9YA(V;J*<_)(vZbIwH(r87Tk#s&td`4? z7DCix%3@k;@w2SK1+``q7rZvilCN^3>k{&llVTfB2udP9ZWdrGU(g!tUcNC*7QDe9 z!Af=zC9eTc8O_v%4;X~VlL{JU@g4@8Ff7YluS;O{*C9sadOq;$VZ-{|kMeEz(AiSj zHf-xCxZ4DUQBJDX`b6WopsxXl!%*>)0r4cij@iln8f8=etNnq|lVc|DA0AQD_?zY* zb&TvA<>slb!P`Vk&+aFqOU0k&UsInm~t z2^yuac#@);y!SKyRm7#i2@W|oWG+~=a!q3{loh#-h1I<8?23GjN@Km`q6^>Y9XHh4 z3;w96!1^+dl*+#t%`&7#1l7&*!9_FI)TPljl*a-QOWN>*4K=`M{0sW9kruoQT)0{r z&kYPFGKnd}KweAdTQT80!obuArv%!0eO>%mg(q)0ibGFHmO^1kbVMi7nnzGTQwS+h zrd%5pVnRcA$rcmG=^TM4`jiUejwlQb3;#ek9}3HmQtE*C2*svGVy$1cW;2OH;|Gu& z93mn&f6JAPAVY-==wzFrGsq6cs`5=>KE*DsgDiw>+DHLw;CDb5+SuPfvNYN*oLW}K z)s_OeAQu|B2tQ!zkeZ-3GN@++l~5?2;oOU?>)|>}6ETwG<~7m}WQ;DQq$f;JE_So1 z;^+a9_&KH%M9-wh3!f6`qa(&lU@hb0L>?q`l`w|!tYzfk;UF3Cf}N;KB||S9JQ4uZ zWzi9o1=ir(yCn?3sTaKIWY=8!KJB%dcExwRF8!7hGQ$#AN)y(@wt7?{K7073>>L3^SL+4szm8wapwhmc3 zQ`f>V^eA(vV9bSmi24L1I3wTf(<9Xs%{IRdAps=op{(naRGIJ5vcz%f9tJEt1{iIo z*k7RN-IQfNr;J?7BXS7`dx()VNd+wyf?{^a5-1{o-P(5#<;(tqBbri7iFZYQ)}`-b zFp=gJFr)sH{K@_d^aVne>`eck`d`c?b-3B4)A*a_AB`eEKuq&5^GQ6D#LTkL^G{Ak z)BF>bnC9Q?5eq+mP4}Pa{^Q<})2+MAbpM_1zu6(C`!Dy?@%?w9_y3%6gC=v_iGZ~4 zz0UTRV(!3_yoN!OH2&~exo457eAABmUtEJnyoHB0G4od%G0pWFYCG)zQTtkl!TWD; z3qCz(^07t$EbHCMw-j529XFI*c)_29e!tPz#cYKs@$ z%_(FhEmFNE&cb`)X?{Y;(=~kZlh@SEO!%=VA9%`n|)h}JX+_qF{;IP;R zs_;{eikwCScJaEraMF1p%=qVaHo5R)Rg1O#Wo1_qZ2+cqvy9llv0QD0p8{NDBHx$7 zBlHEP5K34Fcx6wch$`aT!j9%ByUSvl0HXWh*3C{loPYy=lP>8VS^Y`a|f2 z4CvqwC}aTy7W9#Zf55kB*xp!zN#Dnv{_45y+Wr)tBm}`Z5a=KX;#)RZ z9vwo$^bZ4s5o8RUFOV0(FsG5WYbzF&q;mEu31&m7oTJ$+37SG5&KA+y%N7b7Pjv1S z<`3g^7>R>D$k$^dO2<``K#__`o;}S*B_N8eC11}`!sT>yaVMK3VtOS zNwfC_SgJWNQM(f^t-k{s9(_UNPsfHc?G%ELRt6;R`Ipjo|X4;9kv1EPoN?4L7`^*pGR;JS}cH5U*cyh?{DC=1zJn<-R zVVPH4-~UJpjiNya;LM^zaDp5+tdm@H;RW5p9`hWn6>E_myTS~9O2@*wU|xtX>(?qn zJc6^F)o)gD>}V*o=|J$Jy4IY%$PRze*7Yhc)WAyg(6QzXEAtLP@q=B~$oXUm|212p zoBnxiTrk$sg8`JW4i8UsVCPO+Bkweu^R^-@yC7@ueDhfL9r41BtQ3Q zSe`3{J*1nCuXDA)5kB<|Zqg7(nCLMEb3U2|FW~V>7S~PkAcQ{bN)|^7yj&QvgkyTw zlk(taEYd>7M&7*?#IASf6+4sQ#%>wR5so6{Do>l}zc-{vCjJfEMTqdE?GX@1*0BRf zoLpDRs3W=n3cEyE+D^2TqbNA8Tj(CAjo}O`Cx}VTGL;{7)KT3{H{RH7*tk*0rlFYR zA(FmD%#IryR+;7U@VIkeKy>yO9MiJQMS?m&WI0mVnkPTMTKzP z=Req;efG-?z3Qr~Oci{M3gzqo^AeJmvsP9q*ISv41)_*-Boq@0el1J8CSG98zfSV2 zO@6TUr~j9BMWfQ5?tE_49#-3!1f7zYzY@7`kQS`=6PFIUQFJN6vkPccFuY6{Qvu_G zye|9~KZ}WM&mR>11t%yW3YaIGCg-HF!GS6>+9(NMAofC6@-n05GJ;F~`s0rCE9XTQT+ppO=`^h!Ygta~)?nIU zpoJAX8LI4@^#ss=*6F+p1P_KXd=A8m{NQJOT~Fn-HtltCt$T0dTQ**l_Qg6P4_++h zu$jS*81clBWG4$8wKksXI5P6<~693i4lX>U7NfQ3NY zAsia`7Xl0Yp~F7tZysg|#=^*Yz;iyrQ1DE*rX=tk5ElK%3hSVtr&^^Oa4dlT9HU_YLX4cJ1NaZQr}C z+qiLa)B_y-LvPpg@u!_Lw@llPwy86P;o!R6`S{2Xog)|`C_H5w5qxg2=Vp=}-8+?}0!M`k@XJPsfg>!GAdnCO z8aqh`L?#tbksUWaDlNWo16e78+UW`?1;$Ytxfzn5^W(BaQoJMDN&bV;{_0!qTyzkH zQTsEsX1mg#=_|GGC=FHg%^uHPO9gy;jmd#PWVmy2Nxo4Qh?RdKU_`qAE05fq1e1-& zRMjw{8B>~i#neVgz>0KbV){TpDFms6T2>fYKb4iN6W&|p^T8Qi~}0i4@?|dU7|~>ZtTFY! z=m*XCqJK=|Pn~0$f9f+zJI7D+?{xps*eG|BxS34%-;o`dL^G6mWP1LPL8j*q_X?R| zdj6W8zozHUJ%9clKchrG##hY1G1BVdCct|0qKp8b;E{DQ%K+pW4~xiT+xs8ogb|Mb z>RR}kUBStWZY1-f3*Ols zal+~SvWP0KC3h{A;2H@!s|Hl-(z({+HEZE|;UBLLxLSx`D#r=mJ~3skw@6+00L5%@ zz;Qyb!vGtXwRYAK?R>BfVQDB4i^C_@%>_|;tes;^bds*YQfU%sULvyaD>UXOny8&H z-A3Vn@j5+g_dRZPFLF zL#*42NAUsFjT^!(H9&Ry4uDt}WH|vtvIb|j6Sa*CvF zkOhGqPt?;aOa-gbZs=XwN%gP}pftGYHwoK>OjyI)Hc@?(2ZZPW+3=XSG)iyZ zzNK4Mj-&&ewx~Q$;Tt!~MMqJk=rtH6J8en30(pB1r_Mi%pj%Y_#XA9@mwAC{n%q~hv&SW}pGHTeAm9hxkr^@UaBv^ zNOVPBBoX|%GQVK?qFv0~K}i~T-XY1Rurj9@u_|SR9!II*kZqHSW=tu)BIFyl$d9y& z6#Dwo3ri2=24ek$Ao+7TPm_8?Ex<7)g-)d=C8H=XYJH4XV5*zdsFdQLDp$M&5NGd( zp1+h?7&ux8PGOY!ieTNLhVqkR@*u`;#Dq4VI8oAH7lJ2!*vyWylwa8A__Q2l!nqRi zgDY3;Px}nzWG>2P*=3TyVEbb{g~|R+|DXEbH2#?H%lsGf3)gA>ndaZ={xjWw^NGW^ z&iXVmJ%2DZrsuEd72|7v7nz=aWsB+gKi=>V!Ch3C z#UK}3VN?T<1rI7h!7W^vMLbbQVS$#+yr}R=1v2)0RrteRN#6|2E%H^Yd3qL7svwt` z`Y~+{aZR90Xj!BfXlgDBgX)=w3Sc%AQSt&NLCRYw4)*;OybMKlX2W>M6(l=zi<2@; zP%_rBAQ6@6zw)e!#IJy;OOp+`0z3fZyZzJtspAgnZaOH_bmeSeo%+P#G-E{ePN&_k8|ccE}^TCHo)I zEn9tXH@9rxZpl9TXfbG?XoQ@fnkK1pmS9Y0G{>ONwz#Az&#*`HUt!Y7o8(XSpZcH1 z#duuhcq5+1UvG`EopLTwyyNGu!X{~yeW1@juCDa0Dhp84R3|fzDOAEl^Xpn5reS%6 zK(x2U-;Uq^Ewb0SWNRJJWt)zM+Ok>Sy|}NNyZ5$k``x#6+iw51N>X7e+Jstvt)%$* zTQ4&_R3y`4kM+l|Hw?$k+7q80#jr6hk=AFF-mbOm*f|kv;T)%C`&g{jV}wI_WVN=e zHFKW%i8jswH1lE;a;_O2J}N63S7qXP>ra_-o9g6_g%9UpzRi6=DHK_#(_7PQ_#VaK-Y zWFFLlpsNt=tSDK;<0tUngptQqBS^#*Hwk6b%y&7L`E= zLmHgUB^`I+cZD#I{1UF=PR)}7dznZ_P8@q=FfOpWwW=npL95B8EJ>=$ zOm2`Se^32b6yQN|xry<*F6@ryov zT@YSq0J>ZklqApxG61T$3CtK;=*UNUru=aejd|J--v{~9(p4$)tt+a}kYB3|F8cc( z1#%mr&O2RykxueUHF1#@GsYmOB&qYF1!11M(=e zWlB%&KlQ(9{ArBjSYo&^MoRE-DP!vX9)CGB^A$PO@LE6?N-x^WWvO!_QYM(`iOK74 z5NAek3U)O9K^rh34-di&`SWlCv%iky5Aa#o-L|QlyYG%}+nqOcTW|TA@^b2Ag)OgC zY#=|^k%~^bEv`TAc+0%#!V9`}C!Q`bqJtje=npmcaX*z|U75nj<{~@aSP@*naI#1@ z50t=<9UkH%MqV|y;|0e6n-gHG)hn%MTM|eX4m;Mh z(@A9taAXs3EYHtj&=bNhkvzYB$v*Fcm#wp$&|8stQkt^KMn5&5>fpKl<1;E$b;p^4_?8!X>8=tp^!MI zSPf(ck9dc-lZt2{35SM@?L=VXAW9v@13rSPX?4|(o6A4cz4Yvtnr3p`$TU;f4GVY# zh^~!;O+qTud4O7CawbUqkC3=cT$3P?nH3lll}Ye3>HxoGK)Q^rT8Cr|JVVkn%&m|v zsdyEXI7UbYz0PJ8WhRl_;I3;+I;tdNn{i8+Co1nS%s0WTm)r6jrGroKjcvz;I27x7 zWGd;&H#nZF$@9lFqu8p9@iPxzn}$Sni26Y+00Ep#XTE^)CI~oqX>Q|gTjVFWC9g1m zDIZ{yuOb^5C@qfj8Re$?kBrby9FcjD&c92KIIdf+zoq*g9M4HRXn%Kx zGI!QAiL?i4$_WV@|YSUn3o;1XSgpKm%Jx_q}8(5PxtF~-jx|Ky5V!|Xp>@c#2ZL3Qzy#$i-f_W{X z0MdM9vutJ>-~btbLc&J!U1lYm>MyfkS=yG3)8M2m(v%YtHqKKd2hP@;uhQSu%8l0_ zSm(|46c{NKnXo+JgyX&5a^Z#V?AGe2v=rm@Ze>`9VG*Ar!B}IqlOPv)(&&DOk_^F@ zY25{9i=74qUXQg>86>uU(J6Lqh!$sr3cUG&#dz?nXy|LXK}Zc0kfYr(g2j<*0iBbR zX3hTlb+38Vf9XE@k-zIM`|`hcEB0As{e>(!QA3+iw8&YuGExgb%%m)pjmJH$C4i!=GUXP_&!5v1W!mIEW|hX!%7?wI}^4aDqQtsl>Z}wrt(%c0@n7xz!Lx{4Y!uA&WMwRRU4}0Ti8< zJoYEfnX?DSYq@he_H3KCA%O`Zw7!@bjmYR@p3AD{q|M z5&mN3v&v?{#xmRdj_?;NZ_7#tb*F9nM4L|h7?9DY1E$`oe+Ab!fTUBo$3y506pFmI zlexhI`6(|-d@T%ur7{{5F*yX+9<#_diW% z2PI6aOeu@8O&)?$ocNXpQ02hJapJ3J(I7nQVjf(A6|r-=v}#pYmKV8M?Tn#Ml}Kku zSoDX|K48Mwon|PXzQYVVaI>M4(93i^sK4i08P4p4Q@dLV28O7TC!N6{U5XmUqby0= z79PM5CY5%N;VA_Kl*>#+HuJwEG(JV$^KLSQ_s-yk-{91h&E#;X9@s=XZw94rt6` zA)GOMoS)GqXEGvk=Z0KF-e+I0VjV2hP@;zSeEK{>yb8q3v+6ob~*_ zetqn?d6#zF9C3nqp(~udQWGaD|cPsBVoOnw^jI> zhvKBmTdo}^TAQZaGQoha7hQni2+)cTYwKFKj&HYI-^30*Y(q$+Q zZ)aTwFZk!`u=&B4WlkDO^1@h=x4}ho-4{O8ovowN;CJP`qtcKt4k$^;GV+-QzF7Gf z7kom(lQy73z6nd5l$o?UQ$EIRY2cT<6P_|MPnaC&QU2V&F$=qEXW#ey*dzJpbO z?|gZd=8KAr2Stmgv`PvbAHz)BO8@n17eI zPMdy0YdY~BBp2hCWf>!;P49u&O1c=oEX#P3KiR+S3$+vNL1Hm}S(fqC|EB)e_Juv@ zc9nE7ep#0BL%jd-9h`02d9&p^U#{kxZIW0w<06h4^}Na=oxFCQ3qFd$LT`KqtgW+yW={3lD!p(#fEqi8 zlmMUgcF9oAb?{mrNW4J0Zq!ogvr`LV)Rq zAakvbN(;x$TzBPFIxn$cKpE*s^;fvUCBv*dWi3wPHnA0%MeBlsIE%+ZG|8KC!YtY- zsl~Q)iSYYgV4JmT%%VF~vU=@)@{US67OPH83Sh7(f#>3yB8^eKx_E%aU{f z=3pRziWOju7q%?Am|>*iN~5gBCrOrMJ`pXf%_yBXmJ)n3S-6(0CGq0N5?teMkbNckNDG_BU)m~cG=Kif@s+ln=AUW)Vbo;E{y{$bNcO2|{IzpU zSZrvMJ)eJ;AO7fW#Uq}u_)eQ_teuJ52HhF_y^S-;AHI<6ZTs$s-(>&E{_O<6qyDnD z%cuVL5bA&9`=2_~9=5-C-hAte-PT*LEzkeM4mxB%C&$eReoJ`Qg%@^*AO8%kO)vK% zIP1qW1bZ}MJxNzBlIQVSc|2LvK=*kiaxFWYA+bj8-65!eU{<@z`V0&CUTaW6Is)Lu z?wj0vU?-Ab+qGtHdE&tjm08Hf5yFNFFYK4K?nt92rLq1EPo6?tAFXXze;gBra}h?- z9jA&85p$hY5=$X0oSR;>O0u564BN;N!uN7w=MHv(79##@b=_Wz0HBwTCWDh`;7G8; z1Uk`#b0v;n%iSa3*iMRbw-LM@AX0E-y^50uK>8t+w(kOc4UW2)P5|tZ5SGf|$e)fH zvt7}fwy_UG@NkkqEgb&2UUKvqpsWA$Sr*aZPysIrou+?S|AJS`1-E|$21?WZ*_M!7 zH{j^(y1^Lg(9`_~8X%89?KNr(93T*s&Qm%w1OnSARtC6mF%pW=-60CIxJZVlzhRc3 zgMp2NKx!w1$RiD-7&RJ<#ui?{aonu10|=Sbi6erLXTiob2g60FIBFtAW7$b zeBp1pv(MI!8!6x&H$}GT^MdXuWhDh{V{jT8c&}Zzwp)9|+HTDOYr2*DtPGEz$sp_l zxQp?sn7bg~G_8KW@IvbEc^Ngu7c`|j@Mn{V!Jyz$1cTZ7Zq1zu5~b*j%1wLZ)B z0W9NXb(;DwCV$L(9xi|}uLL#rcUudOHgtXNYUmwqATn@jWfk!OQ^q zNDE%G%L-bKqtXWw7s)Sr@mUQolA%Q?Nz!J66^t}2arOKcwEx%LpZ@J}G z%RKz>BMQ^+ul%7MP+`9OoXdM$sv2#|gWE>#SNGi0-F(wcx?kO-!k7s6w*7hFUc2^) z!FXMs`EC6XN!Zi&?>WGUFyH=-5SJURTy|CdRvlLx&lhU1o1?wr z*=_I3NAI=k%5zDXUze-BBBbVROv(LQ{~}ybE4LZz4>0*|ugw}?etx<|MLpe&@w|` zq||QQe|zS8ul}|F>sfNuNoRCR_@>RQAd&m8-oIPD|7yR3F4Nq|uUz@(cXU@=gncEI z!7e2z>1HRpTkQ{F@@wlq$)D_BUS{35vYXV72-IC?>VIVfP2*37h&j8?f6Oh_F41NB zYd_xvtk3_j&wnwB^4=ZyTPFFKiOB~>otc%zv|*Qo?(Ol{w#=^2|15@YW9@SD=I-8m z@9FNj=iXGh3=sIEyLjJsTetD67b~k%p&SBUGEME5bnDk2C-9OE#|=Afz+{bvwdz=~ z&wi7!Fz9ndmTjp#?~W|cVO={h%6(Qq@!=}IoGe8KW2+n%;SBo!*?aRi&91WEcU4d6 z44uwAK<2R%(j5{7J&X|o0-k%p`|$__62#*K82}YOpL?%xuEal%A_y5k@hTx4=A$B4 z6IAdZ0YRCPbmovbkO4AucaomF@9+D2*0c9|-+HUMs=B(Mz!grd2gOVyJP+hUOqUc`ctWDU6(yFo545ohHZdRN$AKD%3mVyg zIrU}dY3~oIMG|B)*Hr>{4jKysV<}Mu?PVH1HFm zv_HC}ilUKQAPYu*C^VnrY@)eYuWO@&f#;)PY7m<@ZFF9>hm9cd!#;{YPrpQj7Y*@_ z?|q@X;SF!Jfo`a;N<&>|0FL~+qK8pykuKu`i{#~}EH8@|Eh-x&%f<~Gg`#B|6)0$v zGx3@jqCh#pARWTg`FBi`NGredWG&U(e|n{i!jKV{9f{?VYTKGJE!M(J~H)n_O059J$18J&v$z@)*0 zP?zk+pSJ!gZQ3@|gi$+#MtdeVT3W!+W87{l{k-&IW{m4#=u2WyHbuMaJZh#d}36Jb)QZv7AO@?6VuhlspAXx|wc3yJ+Hc8G{iO$9w19f(Of->IAK2 z!|4$y16iZ_fBfSg52(rbgIev_H8-VgF_q=eIGTe{U7(*H**shLs4{xo2>k(^BL7EM ztupPUOPBiUpPk4*TSCuVv1#zfMl4u7UopNjUtP!e{+J2%Cfq*z@44rmWyNyMbIjWt zH+rsPxe;p=8@yLx8us5_{kOONcQ*f6ILCavNcF{yR=d8i5vNiA6Y0O_o_mz#%U6`$ zG`?<7eQnhEN|#`~+Lij>&bB{&YdZQfW-)KmzuNkG;t6hyw}1Re{pnxJ)xY|6vF-yj zw)sZ3_AEDxjMp|YQT@BJk==C;()RU#DC`XWUazwLUa&}G%>p@b`u;JS{D;Rg#x(AI zeE(Bz+ZYe^cZ&W!BMH%0UZ3rlimHs;TmKNs_Dvh_=8wmo*eU$8{a3Z(GE4Sfc<8gr zf@hvyNy7=7>Z0hvMGO6)9j{1P@c4aY-eV7x`5Uwr(CcKziZ-{w!Y|(dVeJ5e^m4}zctV^`PrQ$8FEIm-knpyw6?+{p;KNUeH|J1cirS10{&+(tL z|6Kc{%hGi`chB{|x$$Rv#$Ruf=7?LzU)FgVnVsu5J85hmz^k&^~iry_qcXut&-K!*|iQ&RZlL z?LY3ex1K~eq-@;lP(Qf;zyl9ze^u*#>sDohmzZw6=euRo{d}){I0%mU%HUhei6`j0 za7x&5v+PU*BX>AQ;$DLF1A34TEcZCxM90u<(7RA)RW#SKH_pB{-&BW11n?TRP%_Pw zCG2nd0;LRYgxF69UUB`nMEv73A~**E4gup7kZ5*{kw18V>8&a^4s5P8P5^YFOknJ# zZ?26e9x&z&S%N_t?X4qI@C%yWb2on|AfNsV-)14-|3n*`soZM;6++AUBPgW6CE}Pa zx>|1Q6g;svw#fBs@CcOf6Hphx;zOwI2a*b;vp#87=xYART48__stcoTg(G^M55lx5 z2e8tt{76$DE>b+K5ukz=9j#&|yNVpx+p~;xav^bYiNcUcATm^#8~+4#7-b-fWrUg! z0pD{A2H3F`FMEsHi4b8(;}imMpPK3NvpkIJO4|$*n@TX5AkZvM`W z8ye5eH{D!w0}j#z_z=L&c&53Mw});{Pe1LnvUc4%KUD{82Ff!%DxP`6*A}1nWc;(N zy|(zH_%GHefJOR$?KRiVCW1pk&_D|hC%@=t~Tus$vRDE*VqMAsI7 zV*a(As&gb2fQ362*OK;wN55u)|5* z!E4Ij=WYW5z!szzAxK!+27o9qgeH4L(jfU0phLE;Bw|7nQPZsqvZKS_AsHuA@-tpR z267UK|W#s@v=4C8jK2E`Llqa1!9O! zeH*1>C)vD?7iOG11{nc=&N=5autU-rK9TY|%xqNts663KkUdPXOAo*gBs!4MM7Ng9 zFRzZ91`_`6N6Ld*8*J@XeF__vwAiSVie-c$pjyPh(0(L2v!ORr{%cmRGXK5z)}oiN zlljlK{>)XJT)Rf|)nht^GaL42lhgCudiB?JaOa?!>vg&( z>Zz$DGoj9AfBc)S{?TI@6dNWy&?N|=6 zd3M%A*%(AT{>S={-POVIUsGn;(vAP@v)0{Q6` z8*iRdB&68v*Ht)n2smF-;~dZ*`Oq@`*!7QnYGpW2Wn;YhOncQ>jm`M9g&iTtk$9p7 z4mIKj>|QSKCg|#b)TUi6`}j7>$x? z2xQihqj-(V8)i7H&v5xv)1!Ee$_si~!gXpPA!{EThm;iE5Ghq<7$*@2Fap{Gn&7B6 zRpS)HWPn+gEkS9IdY$v^ZLh+tCHG{%7b zAPmrfZf~n<#(;@=Dh24T4S3Rm=h$z)9lfSCbGJ#lHb38UmR}7zmu2MClmM z1Jb{grJh7Oqcr)(-!}itFTcDZRfcZoiq~YvAI8a(vWzQY`6wr3zVXNN@9H1>*QqR! zD#PvMzk1bbi?R1o95*|k|Blk1*S=i+y*giQhy7WY(O)-g*1Wv~?7yS*ce85SR>s9} zS89K$Kd)B3`s(j_Dc7}c)!TI2KUICYoZ`M&OP#l){-?|Tsn-9~{xN>ZU_;~YMEWn# zX>6|t=@g^JUq+QF*q^z|^Px^_8)1t4y8(AQ$G-s?N$jHh=j-&%)!)taH-@EAbEz`d z$U_Fv*)`DxAwH(r(}w z#vz~o+H~VS-=}Q2@h6a9qilwFTlhn`O%*KTt}+ z{B=!vYTmLFP9Ro3df8>=;AJmydF-Lc>7>p0&6{HX*bWWB+2_Efyy)@PsBSM=1*|*Z z!~S#}aL_#2>{lRy9X2qG+7UP#`wA*Vg|MBH05eB>{VknE-*5n869HhCkhO9407ttp zGl)Vf_Qkwcj+~Y$BnbKD>v;;v%DSL|r*2rk`%PC6l+wWu-Ib=ERUgO&JFb?Wbj{3H zwWUnx=o2E{3VlvX~Ca}f}-97vrHgI8ImNZ%LV1rPZS4cMVF04 z-@Hvvd<0;gl}1tBnymZ_LYJ!bn?BOnu+GCC70-+1mgFzg7rXOYOlrw*8>jE4ucF=^^4^AND!nkwPAe`VraUg*4 z#fA%_RDzhOGi=d&&}oS2sM%aUz61_sFo8A^J6j-y;0UScW?da|HWk43i-MGPMai*b zdB_tidDy@d;Y(+rh(F=n_1*ukoTYEvKx5c(W56l=9Hj5R@GXm{a=7ol`^t}h%r_BA z`AO4f$JPrir}nbR7*#OZIZb#fAt@&;X&S1#fD<*N;UDzrE9yUj>A;f6$SY7O)I=DW zpKwA+W!mciorD!GBT*+1`8_?4EM31QKg%0@!^apv-;L3zhZK?md~~6U)8VHQ8dm0P z62ug;EK=itTV8@asD2}(l-#V<$(ATLsZ&xPDW{2CZu!70Z;n z9}A#VUTeVsEQuJhJG2%)PTcfGeJqq3pw$;fEcxcODliVGD+f)bRy>J~gU$k9CoN67 zd2RTA+>V<{sw*em@OOUSzl<)31V>EfU($rk&xocV%{y&DNIOnuA$IjYL;kB*uQuBy zoVcli>`eYUQvdt!yTAPCARM+2(8`Rfy$NvMdxBADfGXLz#<6n+PF@Zd_#{Y$fpI#Omyi5&baFNSt#J%*o z?%jX*&9Y#_8uvRrUmAD3fNF0>4*_d)iS{L(J&wj=Ip#m?puSB)@bk1@k4Gl;D_)tu zRhv`Z?D1O0J;BRGQ&OHEsul^z%<-SIKkdQ|WUl?q^}o6CXQzz64EOZAZI8b(@=reg zYgW*F(U1Rf;4ptQ<9~PmrM&jj5Xb@T?Ehn`|9G~(ZlJqVas7oOqo04`1T@&==bx>+ zEiI2d<7dlb`hJ~X?F$btaz$SZcvae_d%ow~u1KW%`;W1L;|9K$eKfvtyCNVEsXDzO9>UcBVusE|g#i6}s-PkYSl#Tynk-E`ihYijGUZEy@Q)4}?!0d?= zgnjbPhKdCb)u85JWZq(@l`xsJC0m~SfrUxwN*RgVn~(V&owe`IKD*>LKlbaZjCMFF zw{vC)-%cLWniumtvNQjqlI54+IBtMJY6?Wtfw&tAuoNShxGI}Q0G-WS;z2GS{t!@n zItAG)IEY3N5A1?Jpi|Ub0F?$2kRzN%HP;K^h=*SACtdAK)G4KfYda~=wsBeLY9}0U zmRWLeVhuSEwYCAk?cCBec`0g{p=(uykUkB3DmIZd0I=#Iz*O5l7U{qru;}S_Xk1HK z*JV^gtvhV{?3bUb`U%AN08%w1?;R9%2t&{nYyr?D9VQY|m4$w=q%($-26%M@{^%4c z_dDc?&?pex0#aFCSsEWIoSZ?LkcAGC$In75%Otv7Q6yfaCceVs!$nj;din%rKISI) zJLS0H8#mCuNv}$qNjT=1WAuuoJ!gWt%i!?pnLF;d!}9#3>9gaFtVZSF7CgX?655t~ zXj8&*ReA?S0aHN$&CnG9NkZUp$&_-)sF^JvvMTKyNR^{73`^Q0Y%NOxx+xc=CQz<2 z)310*5-5t>wDW2v`Npdk!$~v78pW++3>->SK;uW5b@zB-#89i!2*vXooC++qe$wbh2poVleDq=}eaz9#IG{8E+8Q<^9+$yi#!~br7n;NTs{)WP zOifb-Orjb&J9<%WGVxP0cyguY2DFl>)MHlS%IIhiR|1$GJK}HRRcTFm57mj%@gt{g z|F*4=Tbh9tIs6i+e&^UWZW+#xUZX zL`q|G!gTbXh(C@S!jiq0K+*Be^5c+ZpT8OEXGiG&n7(s!`|Y<&tF~<<$HD7F{5{X< z)j|=TTKZF+UT|)Q{?@y;H#fvtZhu(|*q;xIvcA}!_D6l~p;uA5#-C#PKh^pl-;uhV z`kKP{J8mec6`$+KiTdBpY=67D{U3X5O}XRFJGX26KYD`ukU9G^$VDs7@rU`t_d7dj z{2S(9#qqEk-DT?Y&u%B4S?29?NDSE>p;GqUci*zdhKI}UKfbmh$t%vd?`Ct1mAe+L z+HuoErLpwT;uM?s=~&$>drb>A`d2H8J~<3_I@)$V$NbwJ+hhDP3yLqoXSdpV*6d(H^Up#a`6 zr4sLr<4o9sekzU-mV%}OB+?1wi5FP$!WR5hd2mGW3bYJ?4jdxjeDKWcv}HkF{-C3B zYR}(}H=>2NZG|2C;*|RUMa=W)LA?pd<>+IjgzCLA^Mi+i@@O00)7N?+_SIF-?D2z! zkOm8#?SKGE`Rvz2ARSGPqmS1dREJxls#7#9yGcRRdOmO<2-Vz%qS3Y$^oi+!iK=0F_Ad28ykixCV{3o){gh+M)-<$cSb{8#Sfc z26c&;uxq~zelhq30S1S_gH&)!qAk}-vy(m332Wrakg~*8oT$NTWT@B_vZF;J5P*}Y z?tjh?GN#hfplnpS;-EXl4vN4k<9$gdWLMUyP{9W-qGR7i!#KzWCl9Z6ys&CQ&MN4J zDuJHhabR(8BEdl+MI4gKB4l2`_0W-T&Z40dMZ{_pXN;eSOcY%W(ol_bP~x`@U3+Wr z3=`l@JrC*tjdOTaTE%PWdQ3Ny$c_34f-M{%$i^H&EadF%L^-LXhyJ!RkR74EJm8aN z;P!N<&i`ZWiJM9ITXy=HgzCgmrfuqL%znUGc7Bc2%NWV3e=TciQPC6WZ}2JbU*i)u zTjjV}`lRqj&K;%yT78q|`?q|5yX=45@yBW2-rZvogl60RJ5v9AjX^8(uGaoq{nxJ7 z`r?*b)gHpmaYcHy@|xM|GOGO_fBXq$vA&sO@F}!^;C58|d#c%gy5rBfwd!BDM*p%6 zF(#H*B~8`-%!j*cUCc-}UH+r$f4cmK>!0!Th{F#Pnfc}3d+zoFUeKIs``cdro$bPs zO7`u4-P(2Kmb(5915bbaKjFCJ%Wk`?e`xLqY$T5Ou3&%Eb=w)CKV?|M!9dg3e>&se zdfo5ba_cQ(w`AK|9<WKBP_@T$8Ce6zSCxb$);YOsxcQmC`<+9H$U32~+$1}V3d%gZKf8}=bk0PFbw7((2Vil0{ z5BxQ+nE#ftY4KrY^}Z*RhaY~J$;sSIQ}L}&JY3daccr-@;o$lwq&VTkaNJyW* z^aKWacEaeIVC-Lm%$_y0*>~r2C17vjKm+^cR3Jex;V|fVL;+=Rqg+?&$2?$;+~ViO zQ=q8%K_=wh;2veSA*Na99F4z5iZMDj5kvwXV@MbwJi|NI@HYRjB{S z4^L@jUf7%vHm@+G#hbEl?tlut(9dl^pmu!eitnO_LwD4sk>Ov6Ln1CWtDcVSZkvUD zsT(XGb%7NSq}mLA)o#2+%nm&3rF?-|HhdGZy#uh|SP$iOviEd?kJ7=&Xx7a#LDgvf z!De>cfHdqh@lh`ku@FLr9&wIMlZvJ&JSr*$1W0;Aiw=N*J^=$G6}6{sloFgO1LHu? z%IWQU!m;VBD*`A&<1-9G@K1k&BcG6+#O)Ojl|irfnn7%9x&6C;SI&CFS(ZHWQ&x2gEbN57Q6BN}IDLM=CC9KT_b1CEO*?&jskCMB3`)l=QeQ}f47u(bRPCDu2x-L;&J;n5=bcC;$0y=7Ou_!151V!Ildb<@&wOUtYwx|>Z`SC<#l833Ta`)usG}#R|L6L9 zd-yM-f3W_rI#2%m)AoN1{bbjF%YTz@u5Y}7`yIlQU;iP;)Y{+f&;G?y7RAZKkUZ8O z2OMxvS@PgF%KY_DxE1qWilB&!(Xztfq7@>G#JY!o{z*rlHdeMQ#l5tgGi;QZ3Tg5& zB0=l@dELex_vgB=XUDB>;L(fb_=nAGvZsOlKm4If+%$gct#6xae{=1BuK&l#8AIkS z)BiPuGwx4m{MYy;N6kdzKaQK2Iok0bhkoop@W?~p@un&!M#WaD}KP8kG^x|Xo+8f7_ zpt8(|HYa7kHBa-Fb+m`RY2yaLLx{Ia$!2*n1(ML#AN#i{vvTpB*ycEwpp5-30&;85 zJWtH<9=mz^hERSV9#G(*X$KP-uvVt`)OAXW*SO8Ar?r5j%peIX@Ys7tKy$A;kq+C2 znF!dzxh=~&=(R8LUOheR1-uZjUHh! z#ppezL0(F1omGZhdR5wadfoVvQ~7P?)n;UxIV9AbL~Fi0jojdvzS2=Cp?+`yHjb0^kU!#{+XJ^fpK1{9q%F;o8FDU7p!WKZ_najYb2pAVEQ zlGZr*VTG&crkoI6IscOtL z$vS>Io@IGWE;0HeXvRb8F|g87I;X=8ry6SLPf)ZPs@1=aquj zUAMBMiTOIab?jPZHM7ZDzT%V}YX2RnfApKGv2>b={vhqh_Sfnk^YL|UmW7@U|9)M9 z-f?s2THOiypSt4I^5!?c*-uijFxL{b{MBFmWx3{>Ypm0*ZvT;8Vv_oIeO<5m@`OFy zxu$0S<;z!yZEd3|K-2$rX8Swvzyr(v`yXI=Qldv6eYiY$|BpgKDsYy^-@(RS4KRWJ zY#6Zq-k$OQl)Mi~TkpW}cW3v%!DckI_BWaRqkXU3Y2)9>Dw(AJ8QyJW{NT3ur(drP zfqbwoCW&Yx?4bM60W z*Z!Y+Z{HL4uV;kfDJdOX%3Iyg>-O4MB>BRN!<)$ic^C<>cGuCn7X$elc?=ua-wVJg84~T(PWwsXXg;}w87rE3fUWH58DSHB*Tke z_@Bz%cipWM!*}SLSy~4e24S%~^n$;bh)!Ig;>ouIk*Gh7S4$2cwgTI8H&W#;B9!FMEs9(O68xf|X^OYQ%x5$};#}XvVDoKgz598oH^N}kQ_IM-uu#+6OfA{m{jc`iuNB(arX4zR{ig4{5>CUNBvV@)$|N_itoJs_sUnjs=V@5uZ;1R)1}(T{Nj~Y zlq;^ha+mG@+gtxpUo#(nR;a$(agP2ooBe;P^}lqVrRC5=4)y&4H*Ji++^i9Q;K2vV zqmMkIoYB?_iFZ!_U%9e=o5XhNe_F{VYyUZ(r7A66OKoS(Kf5~r!S+2`+MQYdeJks0 zYZU**&(VX1+VG$r3E9UEmg8p0UH{~JT!u!rUA#GfYF*GK6YXE=%=T~wG*5Zi3{VW} zED3e{?3EUI;BN8#H?A8|VFN;F1Hp{v_&?q3|L4_l^PA_L?*{X9)4%HjbM1ew{(pkT zU-lGYj;Z%9b^O=J@5zDf+6Z+fQu+S+-rC7}qrpK39W<~f0R-Frpwt;g#J86FA9%3b zc=L_rp@$!Fx+@jJg#0x*tv>SQ<$(ttsQjCYgj)BlPgc3BTrNh3&}W%mmBuFc$1c09 z9JK7E;v=~KF49wmYHd?=KeL3#9V=UiIH{V(oEm~A51gISy=%PTp3*u?#3S}Z2z5sx* zL;S@XDLAO1SGvjuaq0zoBS*Bpzzw}oqZ-rBCiKliDps-b%0nhNy}*xq3fYA31erF3 zkeBvAyNEiDwuRmVY=HBII>DI~?ZVD70dzc6KjBO>O8%Gz^$kDjlrXkJ-?$+aj6_AJ zWag`~ah_y@M!wCPI6V^$7C|h43T#9GOfigTBPh)Wu!!3+gy5X)(c;gr6tU729JG)Q zY=lD=@-fmDy(Y!{To$+(CmOB{f}ymmw9|+NXW7ULdhn(>&6DTxwr_u4uS)B`aRbai z$c$pNpy9+Sm0-236=(s=~=9z~bW=Gq7_ucRB=nTu&pcs7|?aY_~ z|LbtvWJvjR-Cp~rNCQSU{aP}_!y+*D(CmiFa?mt-6dSzzsU$HDU8<6(8~6-`X+bcQ z5=`A!G7S8pq_3XwImskS+Fv*jS}svePLJpA9tF-FhHuL&Sa*TSAhoWjiG(B`55%E` zcicqu(-BiH#$Yz-Tn+FzAZ1Ke+?CZxyRIwjv3g#?LJS@?f ze;jzqO;3Dv^AY*X6AGA%kf60kJ1?8wdFN|`WTMdM5=i<@VqIB{WIC?`or(SfqBOLU z|H^CYeB71QNT%~T0e`Pc1mmWZMi^k)BpO=De=7R3o@JrGNlyf})%YqqZeF1YxUZQj zzxc&+#T8dHOiNj~aG}@9ybidlL?A451?^<3kxb_maK&5x71MRNBlS<2;eTzOXzQ3O zqWr1yA9w)hNz#9hJ@zPv9e#x7!mWNa+Tn*EZXNE{H*Ss~u5iyi_m;<>c-;A|{yW?L z?jP7mVJ7uIux@YKQV`THd4#U4MlzjOfy{)zY3ENv%UMrS{iisi`d>K8Bv{ItS0U}n z`tKpf%~tN2heGGLA>X?6M&}y?K7CJ-%Dlm#2P>h|oyu?Y4`+^mD+&4nQRu>%=c2ti zq;yx7z!feQpb!5l)=tF45acZ~mZ_<36YE-0s+x}qF@#NnC^n*OgSb1H#Ll;K!V%nL2$>fhb>-dnzR z^)<2n2Dp;w<`}_5R?I(ZaNOwOn{h#VylcPxNo5DOKq8)5V`bU06I^`RWgjgE9{&KAdD zv9u4)eF!9=!{+^%?oAd*rj7buD2EreC~vc0Qx*2yr-`=!abG>%@-fS zGoEpXzFn%l_}lN4<7P3wq}aQ+Fd;(_L1ye4xD+E_9O|&(%8(a8a@YZ4G2slDB-HVlM+bYxXS|8Ewz?1D)ocUJj&cRQ08(3wvvZ*8-E)aGDkq~*ZCa}WkV`9n( zruFq?qHAWZd<5K;$%g*b6Fyap``{UBh_kaXse8d z%W)^sy5qZFC~r9H4Q{(P-FOph9MBD}TnQO(ujEsnPZnkw`5DhEc?8lU!w}#^{Bhcx zcm4%sFWr!`g8sxOK3Tr`jc-_vmPE$$nmkF53@XTt6>b10;-B=AP79Z1&?mlhpMA(`HD-x;iywsgr#+U=G67B0&YJ{?iOWB_JlXpsfb(gi+?+bj72 z7i~DpM!}Ou0A^%pkp{*GD|$+gQ<8XxjNL0A=W)$!ex%99%nN64U-AzhFAxnk}B4~ zMpcqekz4p$RwYcx=Bkp074fL=o|uP3B?rKSmTd(EJajfx2cpTGYa5badu_`FkJGrb zH)Yuv-4>h?f|v$^Gz40{$-~8&sMkzVM%+OW%jmOUxes)vM&VkxY9piErElpI*g|B?Vn#_V}kM`}%{=?D4-&jsT>E z=79J$Z(ICV$kEEsBr>jSQnkyv>7Frdu56i;|52MHSWy zMZ^OwBOvRal7Myb03s(5`m3_K6R;p9J~)I>T9H~!rAy02AH3M_&NiB8{sNAhSH425MbPzH$``NrV)=)E zkmE*K&^q9t1IzhxrmcE(Rr%0|KUCH}v9{+o1^zqQ{uUwaQDvU2{jW^NO|`%0U*m%u zI@{bCcUe_b@pzCyX#@57S;fQlpKbjYEnHNNJnAUlaXhMe;k!Fyy7##8mYd2x zdoL{qKSL*Rjboi3T9eAy*7@alJ^i{&Pf8zk#1Uo5lD#bdnl+D=d+xr+-weIww(s*C zr}JCq4)M*^CNt&F_jK6M*{XZ@+_116wGE&W?=d*yU0~&jr*{j)caHy)Z~qT{SnD6v z({JikX$=zTq%wx* zpFNlCSzh@3=a)VA+_UNMZ4@M>>jY?;IWU+Qqx{zL*yB%>uYK(sx~>U$4f2N7+|Z8y zpsYUXWpdo;RcVYbK@bKCa@_pKCx-F_5QKD<lF8Mc4!F34ju@DgCyRp4_Y`n()kguKGQuOgupjS@UdXz z6L18GQrt>HUn!Nbuj&I0l~*_o;0Ym_N`Ra!r=q+ct|)e)(EH|9zDTn#9((5T`ZBP7oNzvgw;V3>b&4nWV>fX{UeTm3-~tc!_i@zVV6uD`O#Hq7E+>xgw#qTKdGmTX z{T2($=eTr*RJBcBMc4;7uwl*XVT=+#RSw%hIj&9MweHWjgbAB;Xc8KA5npfucajWv zuz#J-AY{hhAdrA}47iS%BiSCv@B9()tzfW2RO;1^G}klrR`mu_04a08Yu`Za&;Aw> z&b9-|vE^sJMGxZ8Si%7luQJ0?L&N18GWCd$42V*OLjpTvL_myv#K_bz7;s9^Fcc4M zaoT{1I0#Oq&~TI^9u~6Fr?NJ0=7UT)YE+{C$YBepwL1^qTD`fgiEbK#3O1~8x=Kb9 z<@3E9J8pPYn$T~&sdwC1DE)+Xk;-^p$t9kSj({4($-MSDjE}Apg%eA>AxQX*I^ACboWE^NV<$H z4S?fW24Kd4@-SBOC`-(Sf6_{lfK3>C!H*~*S)UnqvOa3 z%pwaCkFI*OeCm^*(m2LPrAs*(xYrAApMVRdW8PT&IF+>-N~zn^ye?HIbg_Qzup)qnvbUoIzRT~p^ zZjNq}FljF#x%)Ib5`DYbs`^zs_|&J$^=bzu3a_kx;u&BrrmOX;Gy*4XcmRXr)P!2> zc$;whd!6*!S9%E_xrYODwpRk^timzr<&ROSZVayVkFu>sd8I_L-yj2fltg z8`bzvDF17{F+F6Sv^mDe_yqbhz9vX-v)Qr#?z``i)2$|H}gDi>XJQ8;f@ zKW}-OTvFDqmGcJG zq|>(gU#Hvz`cuB6^baBR>uwtTZ@|%JC8o!JU>*4+=zq+y$CO1{gFf`o!{x_6e$e(` zw(LaNaI9PFA1G(r0s9?LHt6*FZFk&0p#OkPW}v_E>(5l`-;T1z{?p~(*}H2by#!O? z-!-l&wm<7mqqG7+;B3!(*a^kL>Vijc~9-1TR$<; zET~-m#s}(V%a~>uIR_qp{Bifc4eK`q;4HWQQSCd#m1I+xe=L-2wX?^6zbcKz5CNMY zuA&FaakJ!(`l_@cU(irQD?^R));JafX+#k)1w053 zJ^WC)@*n@X+@jZ-kj4BzPYxfy>m3v_5v{^2=CCdPyXi^WU-~bv@#e^_x816T5xd8&KsJ}Z{+quk>vS44 z>wH(z|Ih#IV%Pg`o?B1cqycr^R{ihF_J6YLe~!Pp-jmq>o__Y1#+^q$hVsemkHdd2 zIcv`Nxfhk)^r|b*7fs)H)B{$%XRPyoOc%`f;s;XB8-iWGZbSLXSH4=-=xsu+{aME_ zMCbVT7>*mgW^EuqSbN87^{TWCvHpovaNJs!op_>Ye~c41C;XiEmqR9rqd5_|{0RK%PsJPiGH9-{Ec)02>l9Eyhy8e;j$zMT`0Vv>l9K`& z5aeolGCDc@0N2%-!N?GtZ4mr9WMO?MmkB5X#{DL) zTXNh0RFQ}Xz+NT+!ACi@^GIBnDiiTBFO3rciCcNYgCQ6i0F@}3Rv4y;ptKkCtk~V) zMABe_7ixSPCvb9Pu(vPep@P*A)MTU4I-kl7*^t>me898(0PsK$zxuuHJAYTs(uo`7 zzp*)Sli*Xib~j8@0iGeuGvu^kV<5cQr92_04I2aZ+;h(iDUL@=N5^dHvv~31a=11_ z<}XldP*vceW>aJRL?>^?i#6k%)Mv&7CPk!0MJpPAod7W#VRVHFfQGUwo9GL*PY9&x zg-SJY(C(ESo;(vGsJAKNF(^hE3{$rjE=v0{(t`7dR^wE#aY<)LS`BPN*64tAArk<# zA@ce4a72+3Ce_f3K_kjqvvgu5*@g|ab*OY0#|G4*u*J*xklFl%u|U)QrfGr6Y-qS( z{LgzXys+%2O>_7=Fm&l=k|B(zh2QnA-?w`2dC!H_Y2YpuvI+%p9(nZ9@~+>1m+Suz zMQA2@HqRds+`9!QoXRbDw!c}J*IIV=Id2k98ll!fi)V^G(mUVz&OS%X zyzm<4T#c6PyfYZW^{mV#Dboj-J2GuR5qR$(%W*SF2>A9F;5>0NggC^Xkc>)&_A9lVPTc9s-xOzdzR8o^sTgr3 zuyx!RwjxFU39J_P!VCY39!Xz!{dMI>Kl*X`nddyW?6KGGstc`qYkl2u=bhz!?|WZXQ`cx_ zsy~Ewl>W7+_OdEAZex3z{Ku^$s{wbG{zvN6!1@gv3a4!x#DCdI%k)s$R&6}VG3&{WuN&e)Z!{>i=xi93s0dkYfz{h^^bEr!ZBpZYiDS zhk464m&}0xsGOOPzG5KTH`1(OoKz9>3$Nt5^Nu^^SPSP(%?{eNvVbSwnA6Z7dk^3a zP&L6uzDUm|e~8b7e|+NxOAUsD4?d_Yx%;2XJRN=6;zdJWZax(yZi$)2V*PQ(i(XJ( z`jQtr{jk0<@SX2nU2gmSZDo}n6yb2oQaR?1J@%M#`f1ND2OO}!>+Pzmt}0*tm#=s( zhc0E!^jpeid^RJ^JbPEm@i4p58o^{nDoVFbZv%%ku z%`0fpQyXQI#e{bO{%8I2YyDau#?3$ZllPTXkFVV&_5a9+FH&ucmACxX1=DJO(RZUg zx;}R?`*&W>r)m3})8EbdCv5y-)EqtkOg8>8&ue#gVEkF2&uE-^=1b(f*HS=iKZ`N%T8RTU%qkkSLNUn&ymB^fm2z1X}Za zKWB=o3Va&Jd+RkWI^N?KWY`HfVF@N2S=iRAz^b##Z3F15tlGmmi6>Vivvs9orm>H6 z;fF7R6y>6A+f+HiS>hbQ^dV$`UdW4$`LllkFsF5ew0S9t+`JABBPyU@`Wny?Uk0#J z#Q8iJNI4Jk(Wb!1(0Nz|SlbVoT`?gKbg8J&$E++@_-Cja@!>zLPJP+ALRSUq*Mx28 z5HgSH;AKpve3VCc_T2g1-oRU6oG?Kg)22YM=PBw`fa7EE;+rU3qj3WRb{Id53r-vp zLK%A%B{Y8s08C)u6%#Gd^=TXBVie*wsBD4!G>qH7E60t#aRcg2BTn2P>$bwU8`Nzf zOtbvZLk}%)!)e3Ob+wbV>(-WwFTQwIoi>P+8)37pPdIN5*E<^*h|3l^0JoI8b@FCM zJ8x2-X_|Wm;B?Z70&Q}#^1yT712h9DHJwp+WdV+-7!dS>I#fl6R-=wVxFwo#uHz}S zr4essPXT+0I`|f>%M`o?7~+$#$~GnaIIAU}G=Nbd;|HA-IB#YnJG2P^q%KJ#=amX# zIKx)ZE<+K)m;$`IeCO1{;05Wf+=Ek>azWQ`0E9niEso+71t?vlK0O#hiI8N>PlOY{ zSPokcSRu83RqqxhxSg+8C}EO|F8ZM45{)XWK^g}6jf~9q@Tmmpl)Jqq>YL6v$5F}% z+3xZhInYRmgfe*dlcgPhmr%!j8xQ_aN~v1vfte+F4Q|ut|1qDq8P7kKFg^84E|&cz z(Vzb52lQUn+e0!HcL!xu8usT#cB@{WbOAYrQ=|*2|0Sw-HVV!?54g%-^kV*_DQzuB zAA4MR`#au7ak;?s(k4(=_6YuLyb%12n@RYCkGvn$H(FruBR#>icH;)m(NKrKpK=9I z!S$oLG!`W>k9Yh%=A^D@7&Vv|o~&hq38BwZI}LhDDjn;z(fVseQE3H#=w4gDapMyG z4BJ1}17@M0lqu7^dTY58;Ln7Av`Hw3{ZBdR#<`ZHbq(_*u&KYF6ZaQ)}22#3eN zsq)9!)rVa}|C5&KW?j1STI5~L{@3^$P*WfOhTH$Cdi7)6Mn-*ZYy6w3{s-)TKsoS$ z17t^9PAhLSC#lnH)jHodoCX_T|7?@c_o#^R?N4+$bu5h@U$ds%^MfCn7wu`P?QdK9 z^D5<_H;TXVBo{WCY5U(6|C!oIl|tw||A^W5i@pMTlQbT2orT&369 z{L`1d9Cng}W4_?|Wbt(Pr#$=WKH#f8*G^+gx++kO?f42W8tN!Qs$M`d6|D7@Z)%m;`|3=S${rLMc&-rOR^mLf3 z$NLca;eIwZ=;{B=3Cs-4iC#7+mARZG8ccYY=G));4~_Q98!`T` zIr`=0!3Xq>o1EqZ6=6$xf>)(AA!O(?PCQYsN)zJ8F8j-J@Ch#wTgkw}U;lDLoD~h@ z7<-qTW z=Q^}fmOktt`Qva#oX}xG4bNQfm=E;0K~iv?L&Ic)zsp#|U`G}fg2j2oTd+L8*Tt9D zkAi_FegZbJ5b%JFfRQfM+N%#43JI>zfWT^{54+j*lW zAm`JL)Ic_=zIkoh%$+ymdGu07S?bg0&t?oB(uMXmGW2zmF?aF`PM&Xk-N2nvj;@Z< zFKE9cB0JeQrw$f9|IjypI> z2~ls`)_?WtHSUT_m&7-2CgPvp+!&&%d@aiMw*32sZMZ&<^i(Ly+HOGIsQR=V*3kKVXGcA;F}O_NJb$8zwn1G zVOalDR;<`A{>de%mvZ5S?a~gcDjtQlb%5$*-6KA+1YRGer~kzBk2ITt{fG6pa#ffRbI|_R zUUzK;v1K~_gATF_3q(an@gH25RQO)`K& zrpwFZUf}hPin9K(kJlf_M_-Y>1BxEQ{TvYf(Jym~>O<=vPU+ur%dM$+y^hy^y7s^J zI?W#ps_+y)Uu$$G_Ma~QnfCuZo^zH&jk&oR!w=x^%)=;Mwnzw*YjWZ$iN5a6@=?$h^!tYGHJ3$umA0CZsGSLcL{jy?A1a`suT zb6@-9r-gUZ&5*BwT8}YsTl_cY`c@2<>Y>En`JFs*b3^&u-+XRD{$XcY419*e%=mk+ zL3XiOx1s;e=KqGXURzG&dkoU}kKX&IeuW_MT}}Uw=o>f4^&9%e%~aZ7TmQSV{fFEC z&aVGC{%Tgu_%mmJ#^D{^|26OWb&=!8|JMEo?7v@m$r&&5SR|noV*KS{e!f$)pVrmO zPd>>dz8BP7

    3n>9R_dEN}=s6qzW)&d$1ai8?@Zf1+Rb+52k70|F&VKDZ;SknfnO2|L92oXVF{Ojo9dH z`2?O?0u#tcIueko$g~#&IOyrXm^op|N`9?QDdI!m%L|qGolY;MD%v%IjO9%S_(9)W zlx8+;OTuCPL7QOs^Kq6QuLfCR{&BsD0hQ0B`?6a{AoaPy=tEFy)CE0Q1pxQw%5tSncU&nLC9(%D>xZ$6aJ{lw|097q^EX|h8=qQa# z2c%?~V7?vWjO^l(Qjx#5r>*fQ*j&v-K;h^E8Idm>^wfNv_c-q8KxpdjNY;&NH?iQb z_V;gsp;5CEpTB+W=|!1J1d{umCIXMRLYJI0W^I3qWr7`Z)+^qik;v`XtA7Rw#kG}0 zE$#C?v#EpG4tyeh_P}tbG7nN`a-(`r$s%|h)(uoDHJ$j9;Hyx52s`z%zv$UnIQwSl zI%=n~n{wz`-F=22W<-y=sW z<+bkZy{coiAEwoa#;?4F4_2!RqTMfSP#as=7hDHoe5Uxjww2R<;^7RHD?EJw8V@0< zLw#_C-?qRJ_<{v|gt@&UX>@y8BCJDcF3aa10x}ZZ`x3$+u&^Ca1U@WQctUE=QdS7h zX#5EusO=V0Y0Fo*(>hyA-*$igDtDpKGSX-2uDKQP;0ar+{O?zSuQdt3HoTIlC+hYb zw2c?N$NHF?8@y6$AKQM7qUu|1mg8Jq(U`jX-?y*N4}{nA&31@{1hzso8kHZ4zY4gI5*#7 zq%mH0>J8{9Gb8raTAC)|(Scn^=+fhfEy>Gx(?%Xxn)jJ;aZVi>(M@A(e&J9XU}_PRor9D*fuG`X4)FUQvubJnASK*KSvF;@VMQq-) zRnWKg%yVNKUa-))rox*LTUX`-E`)lk%<$Y0tAQG)F`CKL3+OKy16Pk_0`a;nc=W^I zo-q_~dlx}RFnGxN+|LfplU(~*$I)`F6X;Q~!yNBO7pdEyd4@$ozAoT1QI~G$HQ%@Z zbr#QnuGoUiF=E$HUtJuhLoG+FPjv_xDAb{rEM)*K6~{D3eyT$bVplVwn2m7eM-9lN zOq*q8NZtv>1RZInr7&Pu-{XM`_-_Dz66%KYakPwWFMbfo$XdwwkqGI)AFn!xtyiX^ zh1@9P=EU9~kNZ!H2YQc;pYiX#{;ZS(=i9-cuG>#5{c|+8eEqp%TE#JY`ZZIL)tXfA zKN+(mK0@8Zv~{@G=O_lFi=W@rKI9fg-R6#X!g1v-Q;Y>!btzIqxqJx(m)#dl+~Xdc zTmxERE0^hBO=DZ#MuRU>tADsiDE6A|-pQXv(N`yAjU7ER6q^iEKLXbt_|vk&*T3P- z9|~b&aN4uKt*1_WW|{moJwnQz9;rEy#%%gpqc>AzAc8^FY9YSyYPsvjvVp&4hE6jg z+v_)CS_9vtXRYtWWjKwVs6E06{_`wEYqP$2;tEpkdvj9so9P#P=kA6u$D7NqyrOnh zEE&6OG8C_l6A+5}-)osRP{IUq3(4fMY%$5XvG~kwDx!}(OF+AjtjqEnJmCBT%#|mV z4S3PgGoLsy{mAMBUA1Rtm3+qm|26gI{N1%xWz2tmfAKFxxO=|(dBh7|sA7&j`BPU> zp-30$YF9BOe=CDF06G87X`cxdBP%2>piZ3BVL;tY!P(%=$DVJWr*=PzDfV~GW%SjT zHS}(JyuT;}cg^@~`aPI%*&nu1z6`l^X}MVAzFZ~e*re!Q@oc-h!)5Uf=J{QLPxtz< zt+$akJ(n(`1d zPR3fbd=M42B^F+S@3R!Fo6tOMlbZ7RET#zPh3~}SUzRpN_oe6v;P(%ao@lr@M>{}P z3$kY|di0rH)j{Uk&>)%(X2(-IG)ES%%gai9gWjS3q&#IATpFI6SK+DzK+c!PLkm)=EV?lG>HsqPe z1VEt!;6-*8k_zLuhhVQHwLs|@*y%HC@EjztWrv=HeIVs-{Of_kFLq@ZNI!*gq^t=) zAPlhSuAw8a+}Yw#YESCIhawh~8&E`7Qwp$n;vQxNAW{3ofQ2;_u6-Zf35WwxTFLKzwE|_&B0_)a}=xr zClfu>r*kJFR>5Ykzqf{Ev>r4d8{s?K2$gXOL4rApw63z0%{rvIHdPPk)?BD&iPCwb zXyx(aWb#tN>eMw@3ck**;o5}fg!$(T;~IeTB(S-|i=3pTQ*&}bA903%0rwM<48E!# zkZ1-4^(6wCK*!ynsxOq%zI$*r$@MQzGayA#2pGSch#a^;W`k`k*2106bxQ!r@TmZ| zOC&_eLLBn@YXwf$GMLPB8RgF+CQ*IpOlzJ!zZs#ktVWV@Y1*3NZXcg)tyIoaD73!} zS?>TOe|_CbE8}9sddxhJ!AIaa@Fs0b?=)dvvQVESYZ!iJMSm8LuozEzi={lekPfrc zOCiBU)Wln6>Go_4u05RaSTBe8BMh?|orI#&4g`>$jNUWP3JBsgAz8ksW!Qr4xA4*ja#d zE0~i1Rv8Lail(zZkVoNVwmCPX6p-ODZC z%kc-{wpG_&tM%w6c$>1|>H0+3@fO*-N%owt8+R1b6b!v_iRA_L5k1Fi)vu2DDW zjbG#Wf7`tMLa`YpDkYj;FT43K(28QJ*w8}9hHS)uYYhK-Tq)EK0)b*EvuK42XyG<$+5%^ZK)bZ>}>yTGpx%8a+ zR(1zQDO7XqN~k;~ zR>0XrhIm4C`78B`*%2nkn-}pUrLZUqV(x;e2Uhsg#naflm8cGnZzX<1$-egjtTSBQ z%zMdsuS-rNFgxgfv&>nt->N3gprC~bOYI~69QB!+@;5R@i7?#vnWVMk)U7eKb~I^m8v?o8%Wc zaV;;{mDO+m{m&2-{f4KQGoj5!mNZM&%#(oFv$hxUcS?$siG^(Sr|kI?uMRk61CE~! z&IuS-1#b^rxuhI0(dnhnyndzyq4N0LBJO!WS;{iykvQp*}UjTpEoun<@uReLD(QjH%Jrl7ZeFsbY`wR<~*kv7OQ={=E z-m+!kKm7tIn|e9oC13T|3OuIwkC*4+L^;w6D*g52%FIqs|4==Z&b&0WyPE(mJ%5L3 zNLqTSCEM!5^V;)261Q*hp8fKytM^cB<%9!apR-&XR`1Rb-ha`A3?-qnft4gi^Pjjk z_!G`|f!sZbF*#11;HZ<=5?j%>m00~m1nC*?1-@tyq3 zsT9%#+HqU3TgtH)vQHc8;QnQ*&tQG3G4E<>U4-6T_`RRMyWv;u#j`2HcqwBYFq17b zbFk%t?>BfDj&m5D*r;EG4<9EN{FN+N-~aP*YJ|o?fA8idzk{6DI~ONraw`b7rC?j& ztmqdYyKcT47z(Rx{4>;q!{cH|t~jbzxIt@G5!)rwzz{_{k&*HQ1ErT2JZ zD(rUif8f)9@06z48I`jA5POz7y@Oa}LU1H}A4$6(>|E zf?NL6lKiZ0AuaPwXF9)oxkW^NUWR|q8|x`9hO)iZdQn~7WuKobn0Mry8QwF7)o`zqmbFA}Jhw`AaKzUfQG6WuAJ*C6Yg--mk#4wWc!>%5vl9hhZCHs%&obt*h zu&v^8Ts-MYCVuOJ^S#!YRs)dsvevY>{E33xFrphb*2rFQ!5147BoV+=`@bu>wB8?TzD9|Ny4se(#_w1 zL3c#qe;k?t6G@;U`63hvL=%v^2P^DA6-)=L0xLBM!t4PturBll!u28h#na`Z5g?XA z0MVc_91M+L@7SaX>z#s{Aq6-~beo5a(-`)w~5NXE_sB$Q}FdXp@vYm9vqiDj0O38XP1*>z|Qw}t#1 zLzl&k7tY*Ke++ZcgqW*~S~BEql4~bY9=;JI40sX%P5J;=yTWV^v#TASX_kWQfHfeq zrV~S3zv6+fwA41h0lcoE5fczk#?jEiKvTG>s<}cL9@L4!ciPHv?{es|VhYaUu>Bg( z$=^pRI*wU#lCf07E!Pn!z$uD?bpszJ!Z`)nx|7_5*=0Vaa;v?*Ja7cZ{>V;@h`q27 zVpN1@!7|V>tZHo|v2E8rdemY#q%H&Z#sJkcL*i%EBg|;v26Quk?mdj}`_}>*ZjuZr zeRsi>c|aTT3P{O|08Ya@Az!@iXK_R5%+0%peZvCmh^tR z0P0(5+B5TYBlA{?cu z`c8v={BS&a*At8;0aU9qGBj4@$ZLzIH!b9FW`-TOU8J@uHiK_{Q`D>zauTF)buv+O z^A__9*P%4nRT>IK?W@fOfx?ey=?r9S_ZbvTmImJ0A(cb^EQs zm5rq7QcCF=%>L=ma;8e1*birOu1O@`%egm<6v=|J^p^ps_7i@!r6)=m(|UTr$Uv+K zk#|9Vh;yygx7h8~-5c*MKVNoz=QDNu1 ziBh$hgkRs$dr6ckwJ*20S9@}2$H?n(=8<+rsn;{0YUZ9UBil;-Buu#@6vTq~buhZ)+|Zs}B$j>y(K zj{GMo-#tR)7ScXn;G>@;;@xNJOXzX#@3=Y%0M^gow-wu@j|s{pXuwwWGZv`*(2~I= z>+)#hz*NT;X%9K}B;%U0G+s>*WggfYK$(37X<+wki`h&NSCb% zIZJ4v@##jS`LXfHvQ$TYeWsyhF#wF*aoCfX|ElW$xm~iFwSvM(T zlge#A^=YM=o94bl(8*T5(DJ$VV@k-62Z03>kel`B*k(J-}fx zZ|0|aCkQGGcA}ny3NN&I(BkjWT5`P)p0gox1&%)p$4^XpX8h$*)W4*2+6Tilr6R$I zBh(f>bw{mD@Q0^~RIMx4=-(DZJX5&0Rp@-Fd8Ot-> zg$cX!hAQmj!$aod33Pkzvhy)KE7jwQ%}Dn`h}HTV*|EymfKc6g@S3Qmh?@}WlIfY? zooPiZTpT-aVmnF-A#HL*w@2{(ITG3o7KUG@#xPFkumUCLIT1|23ajYRgMNqAv`xE3n>N_(g-wD z7S0t)0vg0)?C~YPvoAYNHHcUH#52H&fWL=jpWK|vt)fjouF$;8-dVPCS!5Cqv|jI+ zD5tj7R(BYTKM5Ce&Nl;GeWv~L$~k?KciJMcfHsq-Y*YL|Rzsuj;W^^trbh)@9>VQm zF{7)$P_yoyqu=b;k7!>tGAu(9vG=IZzGs2~wBltk!Sf1J)}x;9)Fp5?{9M3yuSX*L z8|eHS(Dlt`@i|jSvN_CR--g?)(OsERXJJ(wSM!~FZ1$_&#@Fn-`Q{{YC_Aki`Rg~) zqh@Q$=1<#C^)0z3?slAs%gm&wQ#evnWLV={5_7AI$80|{*lCc@=lj}RR!)J@B;Wem z9~NVyNC_&Bon>LO6cSrGUupeSHOJlD6qo*z0)JAXRowBUk7^wKW|0fF0HC#I9 zv%OZ)HyaGvO|BKiDhBL678o6*RF%35j_miY$LoV^f$ld-_D}oi1VLqRJ~#jhB5Mvl|L2Sd>+Z@YehN<6A%<6Pv#Jru#O-g z8R+Wc_1g%iHq5D?5r7^~2!bxyDwp=*HAPuAupKWaLO~+iZ+*%HjBXFe-mB1Vo4opzW=7{vlF zZXZD0;S0-#Q(!1hi7@x{=``WQeDZ)(DJAQkzph$6@cdy$tiylbxr zu+qIfV6hJS;J&zc;f3>fXARVn&6L0S>$PF~@et0`*! zIHN)ZM++Yca>V@VzII+qLzGxTR2p^r3OIOV-2GT4G-rAM)Q00cMsM07uMp8hx5rFo ze1LLI`tjjj;V5CK`2ZVW5u$;&Xrjo)u@T&LAiU0`SeyJkk_tS_XwTPE8BZ#H+_=uc zKq4YWf61MiA6~&XiOw7J=~kS^8%oTSNhR2X@>4-I`@<9=I%6L=g(U$z|CiueoOCP5 z7JiecA3{3Oh=(33iKSu3v2#5G%8Iw~%XR5t4?`~%HxVDZalfZf6@+d}^Fgo)m-s4he@@yb8Z(q8CT z9JW?r5qoqzY9zb)81iPElFm_i14J#uO59Lt{Bb$(2x_S;)Aw!rvzhqS6q04$Pp^^o1H3UavP*-i1*thWe?9kH)g1kfntGe);A84a7$%L5vVrfYPA>~0P)Zp5sQ95Qsc!DOD;Wyxnb_O+5%E8%P9xIEorABe-qO{d#4v;SFM(alyzDB_ zck-|0sH?k2&YfY}w@dVNuThWF$kU{lDv2HZ3~*rUf{ShHu(n8*-)h+R3Elbrk}Asp z1O8~OJFb3ZnUH+vATni3sH2yb8ny+jMBTHzI@b+jaVaT|$QczZXn%*Y|FC=-l6j38 zo218|{_3@)-;!C)un2_r6terO;ep5_;tLqA&!K)_i&Mvt=EwW3wUjiB)f1)p6nj52!xa zrLdh+Y8WVJ|b@t}YAyi7X+cNqGqg%-GFBOszn@`jg=Jzt)8()r!-_ zrTC}(3-9(V_^l@NK6^!Ds?05^kvRiZk0npS7?^lpaHp(k?JMOA)}@;NIpu|( z`%9$E(zA3R6ZrCV1>h*)=*~{k&%&v%Lvgc>%&B`u%q_)BrFQU2d03<4+=7i~M}_SO z*=w}*&wIL;-Z9uaro?V&uk{8Y3^N>!c(fJlmj!LO;9g|6Qa1R{*vzgKc?jG;2g|Uj zC#GFXta{*cP(gU&In=i+MXD=RtmZvLpSsyoZMLGD|1trjqM1`tsrAZ9vWM?ZX4P>(?}$Cod+g|8-0$A8%^dn_{Pe za8EH@Kkw#Uh75_+!7AJrNkQf2KXE&ok@@@@eV<$Rsrn6z5n0$3CZTH&-6f?)z_S=} zH9z%GpR#&l(B}_*o8C6n{|ZI%eD8T+ug-^?FxIj<9&h zE57GxPjc?(r^lD%?oqfmm^bF?J!)<)aPC?<($hV^1h;Muv}lX9ba?DF-9f;EcGP*u|dJCO}VN zx!iR|Kc~HKH}GWFL=;|wGgh@;tRUmPK^zr))#{{|)<;xBWxXMg=! z8y+1vyV=31mG9jwQTfZJtcG+QZmo8$aw;tob}{bsy!d6&{XgT^NaW2|$?pa>YZPrf*wgw94kvT80sQQ#QdK{;-=3zUz?2{HsLT(8&Q7VJ?QoEVD&al-Xq zyByFb;^e`ufEI)ZNx&k9dU9KA^Yq%#N;z{aCrAR_pM`IYLqahL(y_o^M4oaIv0>W3 z--?7mc+_Hu=k_o~STanUqfu2jgc3Q-+R~*DQHsH6%6YCl0p4(FIu;EjJcMMB9?`*p zYy|0oTbUaTuV488EC3nDuN88|@^s1@DBzscS9DadL{brvGwG-YKag=QV8INY=6S(s zGeTIh$D2_O3YjOK4^o#~G+8o2JCE@(8S*ip4U>$5g0V{1?7#q&%GZj4-XX8i?V17N z@$W<|62+KCoIx_N(N&6L!r`z{G+*djd8{DQe*$+m4q`0QGRO z{36vLy9HdpcAj*$c6fvwfZh2klXr&5oH}E!k`%ayI0Fn&Shz{_f4pEwd=^bcML_K< z;2Tp^P~I#kTF#b(FuFTx=g}|u6W6R5xOh(X4Q&yv!Gok0sPys!M0Ow@d=Fu`c6UmZ zQdNu)Q`iDdnE=i{JFmG4UVU={p1RPR(oE1t((nHl8_v^J&Ow!3%WD<_r2KLtUiWglJ+>AYmxC=C3 z@fFHW@{wNIQ@fc=c{(l{xN@cuL`^SB$C)UV&aDlV;G{zDGayu?yuuOj6X%+6anC~s z)8}TvrG^D8oy@V5=8qym$SZ6sz@bAKD+C4!)g|k9H-;-rTVMArfNDu@bIt~wJ(b~1 zvhL^pK`)k7AW{SleqdnuF>qDw4a5uD$ZZ9VD8mo=telt2JX{K5vw}U41!t9S*Jnp* z#zP{knO{GS>>4b)}>0xW+4QOrILjFbB84dQHPlHhF$Y{1*D2+iUQPCPVfEXZQrl!Vj$*(Q(-V_L*f zF9B@eyu5x^8^IIhz>l@_WW5ZC6BgjcDOB@U8XltvpbN^}ni(DLh6%38SL7SS0~nES4J=d9i>F|tf~?dc~crsTd+B_GPX4nG#) zaJ6tuW6E%WW1X1h6;qa0Mk_ak9&yj?z7qKb`ltQV8j<4eC!Op#h1`|+w@$Cno3PZre8rsNmuygQ;)E24}JXXL&7ck=gF@(bSi^A!)1 zP$-9?bXi@>0sV-ih0(?Ys@cPC=CVXrBFpz1wPnI==Bejd!V_w$GIR?u<`iNf7kOS& z4q!A(F#M@ML~gs&Jr_B%Z(e*S4rz9={32{#_coN}A{L-H>Z-v@b?93dS@sV$_)hPV z9R3{h#pJN_-ZRxWw!uRoa(tL6Df#3#p9dKi5#9P{@5v8#f7Nq#PDDyiXTBfPI=L)# zE?Xktc`aKv3Hl*k|5Jk%H5D~IW38~2X>$J1&-pp^uP#z-$~o?k(VP`;MmK&`to)I0 zko>LRDA}&Fg7iC;8%YlacMu0#7%d`YKyTG9`SaeIF8y-LhI8$27X>DW^|fcVAK0W1 zg%0DuX3_j%tZsHyoAJBC&dP~c*-5jegAnUyPqC%aVKsweTp@T|R!x}*Z6Bts7Mi=J z+n@ig$~)&?qz8R`U-H@8Zfr&pJsl%h0*q_Q#OEaWgx zeyU6?5RMkecS$(bKRTU?%Gkd5v@B1-o^2!$J5 z_Bnk=%&TKza^Yr;r+AL}%rjYyHu_v-V1v`I43j}X!S7e>X*4LS*!aaXqd-1J>Xes6 zjm6yt?7PQWf1aVCc-9ODYjDcxoK!+D(5xK;GTO7ju|i`w+$jidJ>&}AlPNq2A2QtOStP^UqE^Illhj_;S@`^#YE0`a*lG zm1n^BOfq~|4X%Q|3B5YcE!dxhoM2(BN}BL^J1B+~mGLnDBhrj|q38OBr1w2hO8(RH zLDS{2Ov)mCpl{%h3nnI@lbJUDR`tV(U_!D(>2R%c87-jd_j}gMxc~;&rTlFA_MJiG zK=38Oz-#o^_4l{S)h5m+mj~W>K@jyCWfvJM1si?0h-_w@S?TRj!!tR^Us-oYrL5z6 zA0?NbqSOF~u;vf3l{u8T;{vv=#i!1zu5%prr6b0b<_=1!9;{^;04Q(lZes?{pO ztTMZ?!6l0Ii!x>_`0bt)`%ohI(2PO3jGySB@;84uhE-{4_B8F)Y%VR(yAVBkW=^LX zW4rB-y4D}byowrsZp{#yfFIf)F7IsJy!H0je0X$0)v|)KMkckS#*4oH<9t7 zC;y++R?9jxvkA?JsyE~I683Q+&g=i5G{SG)1a4p=0W z7#72l*CJ|tYtb`?MSX|tWP;;BtN6VlX1@NFfVl%4!b=2ouLeJQ zPd|W6*FT%0#0*iUI3g)4A0uB!0EZ-ocj~{{!NNt#MJt|;0rw-ZbPA8m!Oo{kj)XbQ zg0WZ*w&-xR_7NOqgyIc_Dz+tlk}Jkrf1>BVV3-Rq%o%8g6Vji~1T^3W8T29&rykiO zXt*`lWN`W0MI!GA*n;>&Sr$6*CBk5I)3K6z&tPcF*AT??2+F9sjy=KY0N&F97GQmv zLHGrPP#=7*-Hs}PHARTKI}TP+zKe$$$^8; zv7p%WfI&yK;1Gz`$j_kZ2%+m`%1GCy!L#=c=zEG2xH6h6S~9NN+cuOQL<(L{=AR9i zJOqWWO=%SCC4C}wdF~-@Oz+^GXrkGHDZSB<>;icT`33GD*vvKK>`apX^_LtC3?7&w zhpwT!W*BezghbgvJfhr0fwZKMuNj;~F-D-PB7;y&;iFzT4^({5irzq0-HwX@TZ;C> zDp6qQ2B+`TfCR0;f^*{58$5qd?2rXichf-W!#y$O>TufjBfum&jQs@<)Dk7V*`jV6 z>W3;?fRmQdKxweir~brXL|yBxB{$}TC{pmSf1>I8MM1{Ld78CV{L@M78wt+NKNGJ^ zwg)>2!>zMq=0#!?R_{f;)+Dwh_}c6Gs!ZQ=dFS~>Un}>b2zFPfqMnPx-1u*28^&>U zj|80zKKr?P-wqVBil$b6765-K#ygH&=&)T8hRJm7@~chHiCdz)`=MaRyx8>Z&bB~7 zTh*Qu@G}0vIok9OPOzsub`{0`Qd_8RjaXREmtd&L>EoXnT_)NWBT0}DJkyLG5LKhq6o@hvArF;bMkT@(aj_j1lU!dheV>rST6$F4z?kecvPm$1P-?`JI~2WggoT+SyPg-U1X;Pc2VpBo##gqkzF@_H z_P~Fp3X^oLQ#l7XllmkuFPvjNaxD0~0)9VQLrbc$htjIQUL-CZG(HD6uTw%@qTpT_9TW9~FooQmaS_WFru`!~5f)k|qK-^$NORnUg^aegHH}}-cy)nC zjRt?<_Y8wVoHoi%T(s=6f`Ht;Qih{o0a>td=0I04^!lCW$q9_*9cZzXaN%DF z<>OU_f8AN1yfyqBedF=-VzOlGABK>~j?v~E zJoHiJ#rV~f9bdP?u_McNE@3&T_XMQ-c7@iYhCcE#?wm<`lgV^=TBj{jni{auw$sfT zC1g)1HPYYTZwU)pvKoAsK;C#gz~VEVI%2K%v2b(c5ulWLG&LLKZK!*hkAG?NSB-{D z$vAYU3kM46`_@G?Zd-86+zOX7>AB9QC_x`A?-frrKbzdFr29b&?Z3F+?9Lzjrc<P96WGqbh<;VZG@)l|z9=Dm@CdtZBeEE=ZHOPefWx@_I^j@Hbi`&}Gdp+aaFK-X# zuqnsAo3BwAu}S}jv69@gd6c&B{Q{{t>vEQvkXHrgev2_>re4J32PeEU6b8IH&s5ItJbnUE6-;(3EXxaDVH1d6pb=`|lO^sk_eEB_0 zepiE=w@(a_N~CA~DsuMTu1%*HPP5j|m9zfPT!SO1TjB9~?_2lL+~cAf3cOml%a&06 zA$>$h=ME`-3(pI|)6j!!?V$TOAs0;{aT0HQl$arm9*+)o1{|={%^&N7`%1pM8W3+~ zbw(f!v@0QZHBr>tUn=>LdAZ{Ko2N5vsb|)|$31l8G~oL0XN1Lc){b0eiSXx_zF+F; z?Rd(W3p^F;0SCim?@3WU`WcFshxSA{EevJ_!CgDKS`mQnYZ5^4=O+9HXHptrberp7 zOYXnwlYH4*Js~gna!dGlNtvt9cMte|A+LoknXbJNBa<8_6S+x>Yua3Ll8!g5lia}@hnpW&2>HtBG8T`(ivxb@7V1{ zOJK^h%AxUPvfvbK0IzzxG&_!DMn;V>s~P7#TFHBm3R(DdH1ZM{`(nu54t}`)8imVG zft}LB`;a#xwijXC6!wI8@ge?7T@Xx}fP?}_oT`r_!u?tN**W&_25eD=dD&0#iL%b+ z29mC*S0_=@u{c)WrDW)@H!=`asS>4h$hp?0e9TQ^@_&Z=9;bbO9tNeRJ4RCR2Lm`u zR};Dv|8tn^(D)Z+CTayrEa~c$1g=^73LB3``^%l}0H>PYfi=us3SGO5M{nhfv;{y+ zznsb$)Mw9X_!_lxu9R9^9Up%G8KM~4C9Jc7RyC90Im>mrj=kY=`tZ3(lZ&}DHjW28H}bgX}57}8Q|U8mhE95x07 zx6C|994}{_PeR%@m8^;>n0mSSjqZ`*npq25 zA7Ei$6b-z>9V(HI_B!gNZ@+nDsds;3m z%HL)lDN0PU^!!Bsg4Q-U;BF1Q&-Ztf*Gmoh&1K45e=XIOu6>OYuGDl8nEq+#3GL6q z=UF$ap|lVsebn#{_sECKfdzderIxrQkeO$!pZCJBGv%lb+~8SP2zF5RpxmnSMvMkr zZ?NDY?Hy{)c{a4$(9rE&2M^xsAmN`rfrf)n4!GD@h_kZ ziCu$0JLn2s;wBKF^;7V^A6P~^x+^u#qp#NNa_-?b%<=! zsXzy;k@K)h0SK}C%&!NY%FW#NydHthtfmq-is_?cMb3|aXWUx){2U4>__z8u>c)SX$iCSKvcZ!boKGg-A3D~X z1wc~BzD!77=8bS48h=)SQKc7H&EZ%RhK_KTvZY<|+6DTmbw9Op$MN*3B8m;M}(@ z$Xyx!z+tA+!y%zt6Tbg0%7H^z=Shwb_YEjYTP3$s((}U)CnI(uUrB~uNEA#B*r6Ur z*#-;}E~P`SlvTjvu*MpRnbq9UrKI`71i?*`qY<5e%K_T2{t`M9lTpLp%gFh^m z8xU=zpzz-GO6dxVthwzVEgRRloL76VR5AA{s_og0UAEhp8_yp;RGG3v?9-9#2$SCP zK04_KF#IDWk>kN-UUb8owOishSiVHMd+kftX=)$g`gSwm-SdUsp|{6;!C(}AlEJ?o z)o!wwMqSX8C$m;ug)1#YV$nyz#DnycE@=DYXquTj$O~@1L0duRqoQ{c!0o zw4a~q2r8#E_;}wMj(#tyzvz7paZnQ-*51{%zQo50hY*~Qxjx6a^0*5BBCF<4b$jH4 zpx!3k9Luu2Yu*cM78Ne8>(^6sR||5JeWSk|XS-|F%D-9wNdrkeSc>fwTY1~m-12rAcpSV5$+y}>{F($kY zulfDumMwN0;Y2;#`Ls3g&(Pl**43a9F;e6GYCF+NF>D-?<`)5VK14wWc^9Dyqyo~1 zrCZ3Wh#I`N345)y9j?2=HUa5ialNtk_-xLT+_^PKWBn@)-EThXTVvNhADTf*Gx4WZ z1D>$R>LdZM*0CvI;OQve0h4e~=)=v}kdv~pPbBgsPuxCo!74I7#PE6cmEg%MVb;$3 zPV^-2x7lK+Gh}316!I~mnhaP4)Q-^7%L$<6Ba1?NmfO^J{Olcj zbKkKXtE_j(=$^0Oc-cYofl~6TQkt8**Rv0KV7_ZMlqz|TD&XCo{p?r$iG}yNIuC@~?FyXLRcjpdiQE zBQ-Prr^W3ql<6>Dd1YFYh$SP{XjxK>)Coh_tNtjFRp>9x#k*Uq&?=gk11wT$8=!-v zQATV8^@-cot~HW}8vy@pRSO|3PJ?lkCNcwEfKmct=Q8n)qPQx-^1x@8fE8Iw*k-Fk zGwm0}e|-$MShjB5zY=n@qfc5Z(rC8$ZPTE5hoC%hWi3RNoD}f90k>0We1-||v4nEC zg^9~u^)s%VJ9=jQisnQKZ`idihUZ=({niA4oGn}%DpRb!QzW&)X0C|yrmP>k@CpI9 ze3>hynfG}4@x~@DJ}V8q%Dbb|Pg)_r6fxKYs z6y*kZKI>`26UY?b4=Ttx|0Qo%8Q#Jl;Au=^ir5P-$P9ORAF}V%_HCTuXX9XCGZfFo z{|3LRs=Xt2@hFW*2nr6&23_qtz#-&B0#|DfI44gN1voNr^GpW?MJq(uz5<&dS_h(< z_1_n;H_4xLlo&z#Crpx7x&U_>*V>$cF~n6xpJapL(G~3U6(Gaa5WbxwiA_q7`!9L;S0OA;ZywKOg+qfz;<01Y<@x@mFhjiA{~loTq5}z_SN;!6DB^vgB|t zlM1!3X?0EG_=*Qw<>n^5xWF8sS6QEE->cvr`xjtSIZgr_M3!Lf)=z07^9qsQUEjfW zHBriLWBcG(Q}%KbVU6;fsYJ`hpW4kK zXzq~M1J*So)_mY)S{;?Cbfz<{fy&!gHABemoy-wzsht7;nugQJi1khAuy`b^X zcJ&8Q-h=;LnA8|s6VYN&UBuKn4u&N^dM!QmTR80SFZWB=W9N!u7wL9@z~F4@v}5w9 ze$XkNGn25=W;UBTTlJqeiE{9gF6&+V>aiE}Lz?v`B7i)K#6J0{Tl4v`k??_dA##zJ zxuC=#+392HZE(pyyymeuL;7I#SNK5mu6gM~%Qc~~qq#cI8e*FlOGo~++P_>b+8erT zG*l!o8CZ1GY_pB+o}V6=i%e1iF1?8AF0Cx-GFT1}ikf%OO3@Kqa~6Ni^jZ3`-9`6U z4X487s}qNHeeCEpkFFxczn{sL@TtF;ngP>gjyJE)j~2e6o7JvL?%@8gw@=UxEGexr z$dYs^tbYRgvy%{wGho)WdEHt$Pqyf62r1dZpZ!8)6p#nI!@CVt@~)PZB07Zb#rv_n zs*I_`#j-KY6i#ZxU~#S0M{~+gCu1?B{Pi!>+4{huy*}590G>?j1F7W)?GUNxNl9-; zGOrbOS#&waw51~`-ZR6np7tmyw_AA`*b&!lQ+a#1hg{NgME_@9Ct^e$kk*<$it*g5 z|3rKQ8%bH1#(klp(GkA!fY3M6?_l~5c8wAHYA9d!ggn3gW{)1pzbar85(%&Ltsk#i z_%>4T+oX&J53pxV{M|N^GrIm#^5&iugxeb!#=tvcta;6!<3B$*`&M6nu5=CCLz#>c zx1Aj_meoJ77NC!O*4@qhov-^RdilJHjK~3Xn+?Gc)k!*W-S2f7H}eL$3qy&Y1jRQy zIGeH{4BRB^{92#?#mlYhGa+kbAH&~j8Y*K~f1Zw7sTnQ%9ysF|1@pjY&*--*&ar;T zOt-5GST-DX^$?<_&nuNWLSVZv;)IThUndWq9-+~?4CXhl&7^+2x}|ToDSJCKKST?- zNtmO;L zFdOCEahrEKB!3}OW}(tt_iv2r6K%6;r?SPOZWovSIE&VE9T(*oTB8p#is3NbD+ezf zujY)*epT@}g~C48yEVcBpy2$wZ|7YM?5C6c{_rPopR8kbFUyDIQ&twmyPxXj36g+M zz6lM9xbhQ=XnU@h$mvNeKE!xcb3fz(4~R|RC&E=v!S-8iESdOraDEwmz3mr9%3TV! z2uij}OK6Lu?R1?yBb-jY71wQXHL5$7`bS*=mx0eH)^zH;B+-A^j|2)e=8v(fzq$n6 z)bk5Ps$~{Fz$-EN4A#i!HAxdcgG!z)P@?@ze*sXEPaCnV<@k(L%0pIQMy`ikgr9^K zox*@0UEh)^3!#f&iFQsy81xBnIyr?Y=yes8JEQ3U)7(x z<-wXW{yZu2R>4n11!U!VV9PTHo;tYfRnL$s8WkHonp-vbS1(bZyI44X+;w9jN7mMS z{sDEbN*0bdt6@KsoV@P)TYWa#z2hX}%f;_jMPopuL98GJIoO#kc>f~jnhO+Bst&IU zXfeP~BpM0PTn(!IM_x2>{!MoY2X-Un3Gpj9M%#VIkzPVC%|k&?moYJdFHKASAgf1%o@7U(Go6sxex9&Zt69TFMt3=eO{;6dvJ{_!zD4r;LiW%xOJs1|TIyA|xPw1_!CtPw_-6y9pAS}W~0V*h%@MFaNan#e}b)fHww zojab-EsFrzXmefW6fG#k`a)6OClW0|8-WwPqVeS;^kNi5iMIldJdSOV*tTYlyAk`EyVf*8+f{*#nRRLO7rT)@Gvor7;v*TNkf z?vSPdr{)C0W_)6`MBX!~)g=v_pm?a)?!Ak=3SawEaAe3xF!q<=;SR^8hHU<_m97JS zqUg5s=5y}!3xIL!sh`snQ6e{|l_HIWjV@pPl_P^#rAzb9&cd)~#+O)3qGvniSMl~Iuu z%>F(n0AVIg2NLL%zd){RJLq^3Zr4w30(m){p~IH&h20RD8MB9I4LQx5Bw=9Nyg~Rz z=3i{%F~|%o1>ZX9>X%C(pGZzRaiERtoEsp$T8F^038|uRm}tzSOoo4Y+B-$S zlP2$`?1bZxsqO9uIGD{Rejqy(_ZRUulXq=FO?3R6hL98lWluFiLWx04?X$ntZpbpa<^R|nK!BRFF_uCymC7WD5H8G6vl)Dw(3eL*_O z!u@2;dU3&4uti(G_F7t56U?CT@B;N#$`kZgvP@S&_7c1&$Ie9IOvRC`A@uHT2E!~6 zZU6nXuYbrwGjVdogX)^TxnMQz@Sj&$3wgSx$6t-S;$I7HDkU!l9g_&G!xZ9sRXqF6 z>Gt65J#zAgZn`S2=vLq*hMEaJ2?;%+1i`IS4`$a=dBj%z@T`>%0c$7GpyRR0gE+Nu zVP4eWZBTW7mawqR)7qMicX7<<-C5uAB26*ndT=|V_w2bm&1CgcltC;pw@^an^D>A8 z{n2pFGG!q=`E0IWi}fK%^1- znJkTm9-j8~_#!QNZW#NuW$8MPRoawMdMl|8SnQ?F2liu*=giHxI42x=%6cX8=E1id zDAab;vAlIxKT=>as^$+*d9h{x4b0RsYS>W(%ZzG0+?mx`lWX(eUN8TSH(&BHj($*6`!Eqw=dWd^)(% zX)9K?d74=d3SS-eRk3tksaG5w_>2x=8mY|a$mOE z&rT?DnOW%3;z0QK+-0Ety_a13P-)jdT0U^BX5rF^ue=Li&f{CEnXB(KGWvPfXH4yK z2zyF(@|d${Ca@$rl1UNV#)m^<(0R&RP?*M3S&~tPx2JB%8Bc_QVTeh3_l22Ajh&r! zQG3>xyvfM#?a)Ja=+`@m{)jVgsusCCwrXm{#h^sw{lU%pYXfUKaP+eFhj>YUx@=Es z)pJdqTO!*{bh!sZalyUG#ob3$GK)GOkNfIa#`#!{4uQ)VlgWhF=e#`Dq_t)Wv|V$G zB|Ns}{sif1B3Wlrk;nN6Yy!VYg%`5yY?DF;O63-wkj*C&xLIH2ir^Fw#$?g~O+ zqN?rtUP#erD6wujkKH!}tdKPJxx>uTpRi_TX#?B_mQtwNZZh|`LlnjjZO%g*)=21Z zASZd|jL8kteXo!{i-4JPZsWLIp;|NKpM$eNWRXMgx^U)*{MahUmA-R@R>3Itoo~bn zCNcI|whOOeBA;*)$-;2f%h?em1@rt!-33*p&r&9*yLPBt73f}~ejj=i-#3X5pv_+5 zXD$b-K*l^Iu6yUBB{kT<*Rr{R0_1hweEKP51niNx8S^`+HT~L%bp@6Zqqn zv#^cpGBdOAI@WI`$53W=ib_RqGgui>L7)M@KUq1En%S%so2;?*YciJJ zak?KtUfhB&!67$%HnK6^&xx`kknQfEj$NvZ^Wt$<5`yz9pd9CATdmx(_tP&Byn>I1 zZHhn(Xy?s~PDVhyoy z3;v)j!(}?*PWOfxYQK}cJ1-G;&2RqVyB3Oj&pbv)ZLx&kb9Z{69`CP~LhM#9fvcAN zmlKW8EcUXqPtjX;4Y4B30S&?50WBjE18E|SX{Y1~^)JqkBnnJ?m)z-^4+o!xPA8hs zkfl9N@g6l0L^HSuTZ8(o%y8s6Nyy_wdl{ZZ4*lk~REDFLM@YpQpPp8k zl?bmfI3NtmO1@q8r0o~aR$nV|VHO1v{mxF)bc}GFyZQCS4gK?#zps6bNo5S?_7IRv zZ&LxcN2NAtNwJ4pHFie;6un)A%Xc-0cl}QZ*IAhiguYP5eLX; zSt*cEQ#3~hX)E=(D(FiBxsmddFKmq~=$(XIOSFTgE)i}7HISU=W^^#ec_bA6F0m&I z1>QloiLEbo`)cTWI?fQjf{s|b6R$x%qGND;NPaB?i~*l-TfyDlz}9G?sMhiwn7I_5 zTlhB#tnGPD*^7Ta0-6zNn)S$QF4?JoGLL)s1DMAVKE^SN5Q(+}Ry+?!GeIATS;Z{t z0EQtW*%2~k==-Dzj|^Eu3m|>3>|&@3I_MJS0Mfn5DR1~t#)EH<$dTHiqRXa7tbHXU6nbU1eTS#Yfdm~*WU zOE!r6!W~fWZ3HTE=5QNikwjgKzokE)3KAAE`dk^C_h>dmmKgML47mU_aPdRPcC*o( zbJLWa61`VKPZ*5Pj2;}(M$*JqD1RWogYYXU)75@1feXwKX0Y2rX;i=xz9jd2zn=|% zKAtCzeF)Bg#KXrPCn+F9a8V@q{Z&%gtCSJ>1SWVAxee6{X16>Ig`b6RoA<$Akt)x# z{7{KQ23=V5VarYEpu(rEuHS{*b?;(Py%)SqoV~w7x-YA@fK~qmVJbgf8^i+aIZCw2 z>EXzySh`Con1ue>f?X7)iB3D88m)6ST9p7C$u(yvhl_!W2xpxhD<`QbR^_(<6>ysB zh8v8ry(;(IkfTw)YXj%0NIOjW1(dZuk6^05g{4QB8Hq^Cy_4C@tYx;1r6OVE)VMS} zueXP~f~Jo>;fBM-+x5-rI1i-!Wr+M!^q$M|&6e7B!5z>{-|Vu>zmGQ2ltId0Z0lej z_N#F#-g&Q2nikS0cJldhD9DpH+yB)5C+1j49(EKHIGKVQ6zZ@9E@P- z%KT~g;(RK+r09OGKYvweZRY46#zeHE1s#iw>`@Jf-RPRRfV_;?-z&(qp1`^_M_HW@ zuSP~F5xE-z{$iPB-bD4*weYebSemi|+D18oC4mu~w>bwL1W|C)04oy9Bq`Jb-#F5Wih(eX<7R;y`9XPJaK5o9BxchcfYw~#^SOXQcANj8{H~7`Yfl|g-D-| z5zN+3kZTh+<>x;QKll(y2j{^@!Hfpj_-Z$Zf@8>R7=gfT`f>)H0O-SSIBV(clq&$y&?j>KXHQ&+~!vdZoacdbABJ1N{IMvQL?bzUDXX zB4VUt-8JV&D1GFY-vuSA7ce6xeT2eopgX&B!V2ELOx0akseE);@~+#**-Y8zhqV_M z>6;1Sb;!IEXh8MtFIsgp**qLNTf1HX>aHwkc=+YI30~&4b;dSF9fu#@cj~)6ADmNw z_elxJQ`odrG%}NE^Y%l=NWcH@oWa1VK<9+Rc9hPUOSqvk@;;pkJ_d%A_~;oj=&H;A zR@7tG0hsCH(>g9os$BN=ylW^PFrvweh8iwl5=5>aZ>B7(U#$(&n*2%)`CN0qum-bH zeM^_3rNf2IK~IrLlh{3U@(VY31bJbWX-09hUG1w`132YudxhFO1wRh^^XHYN&*p}L z@ti+si_u^t@ext_sNQMrm)Q%;y5*kUIm5*HA35DF&ei+RJQ;i5!z10VpZVAMq6pR+ zu@KpT9KMi2>2SMy$606YUh| zA|u`^^3QO;KpJL7)E?h`m(GcIIyt)!dFz)DyzF;s{)Df|=y%Gl|3}lAhC}r}e7sWm zl_IGm%T$s|OeKUkl?th}3o(@>#E4L~lN4DeDU+mWS4m?h#mSzOv9Hx&>`P|M;>^sM zb3f<*;(6tT%XN7%-1q%mKHtXnq8p0NGh5J;Q&1n+WGRaz6S2XTx|X1HJYH%*W#c$g zxa1{i^wzJh1-x4IOrciUzOprO#(8H#B!;f32B3arJ3ue@P8HkgmW}v5L2DHI?0~dZ zVDhKZ?U#|mKNnN6oaXi4VpH?Cy}k}vKcVT>9@s3Zn=VAH>3Jj-Do^QaDvT*6)u9eS z^NzLEp$c%EY{3}Mq?ghCxw>zQ(FiHu6z%LFv6>?@-Du;AyDQ>_*X{Bb1ov1~j@44Q zH=lK`QQG_OMw!rsVMAPVzvzK1a2HwO&?DQ$cUtHQTO?9jNSJm~+uln5tb$I&B14jP z(#Mbn{oYac+4pGa=!1Xb3D!OZR;9uYsJ1^{W8n6JlNCe=A)Rm zM+Vvb@y>6`P81*Fr&;G|IJig5q%aQCC~!@WAjHK-#P^1EOh;bpUM={r9toW)oZcSd z`uNk&`^>K?>IQmBvSTchkUhEw&BnVr>M6h1!>BQ=0G__aSzrtAmz9-o`o!MJm|9`eYzndB>9 zygM_`Gxu#s_=H{vP6e?Km517_j*7 zNA5TIi8QOsy0~E(&1^NE!uWgtAExebA^U_FDlI!C52o&Q~4%AbK7cbC>sogTd-i_P3c081r%rH~a4!X#k z$H|=}HFYq{Cv&tU9^eb^X8p*#Dr(#TE#sMR=n_N?_Qt(u?0*5l8wWbblO@tD_Ys8u z!9cvVB>J|FwG-HZAFhdks}r=h@+lVMKO%R4Tp97{SX<@-ug!AXVW|yPNxjn~Pt9=Q zF#LeTwv~ADRLy5T9?yhA6xfmxiNmcIh&WT^gV#|?5-?`3&2hNrS=V84FhN>ape)wq z)=k)B`>gVkQ0=e?sj+4u-npao;sZEuMGxw7zf6)<bbf}bFF^geu}jpg){ zKb-`-;8Wx5mxKm8I<@Ir(=f#xRN@c1ahgOf?CA-N-0agI1gcJjt?Av!vvrLR*M0%_ z#k)DeC3C?!_yZm<7t?bPHNtb>2+@M%uWOWK3cycUati0!p*5fbnugB<`%K7x-IWeDZtc5rfe~IAE$C>6 z_UrX>--{yXEBTnb<7hBXtn^RYs+weZchT5-ixivp4(!c8C*L|T)l{N?GBs^lAp;Dg9xQtTLzIez)QX5BJ(TQ%ij9=Qa=8` zprs+8vwZ-j#$wMyFS7M)o#)tp@i_Yfafx6PB# zPpIc7ud~1PLoOUoF3W}^XjtZy_Sq=7nzZ}Q@1>ThGaX6DMm!nmVxT9pzF8+-1M)QP z-hRU4?X)Q6@9hR&${WS32VMJ?3O=9@-u!}J_`rC~iMueKgh|o~LJ#HaUAUQ)x(Pi< zogtwaxMqYiynb7$s)6=_(dGtZD~BOtN~|9X67HH~U7s2dN1(ydjFY}`{W zf8W&l?yQWWmG%YSLJ!|jx$KvB?3mc{@rJN(>x^sGw}kc`Z*jP-Sp|&K4&*PLRuozeTq)@$*;`G`08~o<*aMmouxQ-y~mSrMBU;;?>fNo z#-9e=h-<`F5Goxp*liNy)%&k-qCv@)E$K0t$EXu= zYDyvw+{F1rB!l>O7R3y9qN|11DAKYox!`s*6XQFB`3ZhnHGN&ZWH zTXE}kzk&8r&Bt8^o*Vq4lt4q&&kZlc4&3&piCte#>j_kzEdJy9?4loOApNu^Xuzd25PF364(V8|Q+ci}(^{Q-K zKn8n?4~5o` z{8M9=lyd8iKAjt_*dmXw4BPqxwWc_I6v|0oK@r>{ud_T)ea3skTErC(9C%7UaR6?gCMV!n$wjKnb+wm4v4%;s1Pw7s3`d?+H%GaG`GpCu$&BWj4jNzq2qhqBXE>E=wQmWKk zV@R)@Uu(h_yC~uq9&O1h@|Xqb1{@+OnrJ6JOXL5>G96rAv32lOuVu65+oq&(9>g9X z$?v)ur!9Zm`$vIK6>AX#kd;OlOERY6j2rf7e&y`0#M80XF%Bzw_3?82 z)uMxoW*9|QWTAD+T`f2{n+gvw+(l+Hr^5teT%VZROx6yt{NB{1n{QJ2)AwZcFnL-jGw9xTxv6E^xEDGB6Jd;)-RJH7`B+%gmo#wP>P0;2D(Lj+bCVxqO5%C%1}Uv79wVX`NQ77O zDI!HU@!x&I=k-*tcXO@(dz|_Z)05ReTurzUe$Xmj4BN_cg2ndxOgQZOL=SO!NHYol ztkge2B8(_v?m>jKdu2pUTy&Cpv>D2-Y{GD z#6pu6gmMRU=VwDzS`T^`W%3};12YG3ZQm!D-WPwV@9NV7v}s!oTYygy(OLk;T;9zh5g3I2e3|NRKyx(q`7zyHW6B50D9 zGhiVgTK9xQ3)(K(C+V#)y@|2A&U6ic(!0o3C0kbF~s) z!ga8BbDxLQ*`(f8s5=sj2Wtf($*{LkLz0=EMlyrBAK4SJy_ zRD-damsJ&0^|Wj5fuG22dzD^F#~G|$T%5{slqEZlu3m6?RkQ7fouWqa++F_H)T7jX zc$Y1)+2bdj_p&!7{qVhQinl!%dRkwxaHL0UdK`cRy($`tcr^d#PAtkb_(^f~+9v)8WapdoXuv2z%g)$Og-w! z*Drb}F-%r&6|5ap%~UPFGF#9Qx9WM(h=NBaBWPT;r8gUpgDO_XKv19O*OfUj`@2`iXI_fYwK5z3CZE2p;8IIK#}-A5h>d_(Ei* z#Y;m=*{^8Q8zIxuztp}}aQo>F8+k3i^C7i}&)|!?MB&18IAn@K{Gt{H8KM77C2!7Z zRahriLg6RDfJg200HvW#&i2QYyo6PYtDy5XdxY)hiA)%OzK$)-T6`&pthjx*{~w>g z=pCQ+;%*MWGGV8kJc9QX5Z@M>NotNLv^G;MH@e)cc{G+q!R~d24-_c0?u}bH!`_|I zji(UO5ykJIR7I;e@L%yLq?=ugmxhR%8d{PcbM#CJq_^IFcvLo^Gj^JJv#{KDm6YOdBxd-IG^T`q+Qlxm(tb+< zcaF3>sK6U9A7b?iO+A?~d?2JNZpqA__^fx0=ChU8?`WZT4D|PbjC3i>LEV-fUmmbG z{B51LQh4zVo?2!g0oSd%C2mf!Kk94|p&uMEP{*>5(G0TjfWuQF4=lRwv7CkKI{t+9 z{qb0g>dsqPv%ZYyvR*uy`Vl;qEsB2p-B`lWnUP%OPQmpXaxy0tmsvc7On$IN_9Tde zy1f3Mtw_dSQIT6~q6w(QnW*0#x_tKMF*R05NRKxYwx9TvHr>0@``5Qtme@C>*O~oR zFXfYi^cr4+>Qe2L(9T4-z=NoT9I2}F{iw2Mkg{u?zzqLDbCvDIn;E8C5Q)PugO}F! zL8;UNV9d8MOs%IOQ|qQzkS*Vow;|%KAo74i+~e$`mI{HA)-T#%RKhuny44h(Ho^HE znGkPqi0d5e1IkPwyq0dI&If%~iiZF`klA#kCxBrxk)}Pe?B!$oODwF^tL4fTs{1}{#08`73LBb!AEj@hp zgfM2P2h$x%BliP(Sr|(YE$2Gu^EVvx9Mh-D?CYTQE3wl8?0J;puC-HW+mZ2rdtJ9a zMzpsVzja$lA9*HS;Ao?6!~<;lxyNUYt^RA!P0AGwFFzf*)t8Tb1Lf$|QXAy!_BS3- z=*acHNa@=QMtRzWvVGLzxWgn%al-YwOvY#L*VEP(l~!h7d8fP*qku}Lo_^J_*Z zg~zcY<7AtJt-p8R{%gC;=jTAX^FXui472w(wYfl3(qJjWGJoYjyp{w+>s5Q`Ptt3> z-sWW%B?nSbRkZTSQcHhlBAYL@A7oF$cQ$iqf%~rHOtLy~LGw6ciW$^KGQ!X2Uy5Fu z&j5j9C0X4#^{O*A-8*s`zY7w{zwb3`fOQcm;N`xpSilo{tQ#Rd_A)r=c3=hn5-#Mx zKat0*<&%T|mHxmxG3sMjbp)&d-QZfh<*sGo;O5=p|Nbn*;!&%JvbTL4wW0|gt+5By zi@s(*{z%LW^q!&KKetQJISYO6%snslF7u9G4fpT-ee3Bfu_{m}>5M+FVLX5dqOL4m z(ut10945^~RUZIPz(o+V%4X%@69Ei?A@mis$DH_5H*AW>tMOIPt@?;7T zWPC9Qz`B*Hzg}D+?ch-_0y*9qJQF7+!WXj#Nx~uLww#Z2(6#EOHZDh!4j{M5E1&yh zgM$P1K_7XUgkk)1`|G>G+^ox14xC^qCC51idH}bV4?|pcw}H6-5|2o+0NH}_A?wjb zJRBcEJI7sR?_Cvu;4Y=o0d9FULur@?O|oa;FrdDp0HY4rhx20|BtS_Ynz7D-D%On( z$vfmW{07(Hz?rZIyiX;}&-6cs3226~=P9_SJUJ>^JE>&px%6`{kLr)Tp~&b*|KRke z@XA*r*)8~j3y)+zicCR~B+SIp=gwU4&U&P`O-I^E*y!4W?08SD$oH7fM#7cz8x%)@l^Tj50ID?hAP?h>zBK~ z=g`C#PJ+|2F{V203BBaHZ^;iBS@}`ato8FMXTU<-h3UE1^arDzE+I)A^?`5*C1YM6?7CGG0RO z^8A}g|IS*ks$Sihh2+V+aWa-)HoCc&l#z=F7Ka7KXjuS-A3RZvakk z+aurFH7J~lDr*ba{l#LXRfz-XaGr-cxCto1S-;+a;g6zw`a^C{U(v&>(@Tp^uAQ$L z+xK+nmGh^jd-6TkJfE;WnMAJOmb%zEJrDKZI&ZLEIKlMc%(auukD|x@{rt?PZ_j3v z1#sG%VegSzdTUSC?a*0Qvx;3ZCLDUabhyXcBX+v&O_SC*Q%6JD;U!o3u+rLVpM#vf zzZWla+Uq6DeHJ}`$}ijO$Kqv=LszLh_C2c~)m)fpJbdQt{6e1Xwj~Bda0OYU8%g76 z$I-s!R~2`y-YPZpJ#dn{;Eh9{b3}h~YtwTSj^sA$3h19Uq$|rv*z-p%veYuz>5#{7 zY=++Xw)fxp^_k_eCl=UI#Ff|)HLbEfmg-cC?$9I#1`F*4lTT~`FIhczg<!~<-cliziXci=*FO0e|rCWBJfo*Fpn)+DWdIjVz2XZb>Pw+hb=uH zoj!9!&vLM0tTx^EXeW+&CF&^boK>3z7KxCztfpp{%7zJKZNNU$8n?BAQ|XWWR>|Ic znqgg+Y>D2A=C+8)Xr2+Vcl{Y}iu7D`NlMnphHk?vY~Maw>xR8~yfmpFn$CH# zv|$bYIW}mxjpwlbCbklq$3Pp{dJ$T%I_?mb2qh#N^v%=Pt4G<1h^5Mj4;OWLAW5p(0bYq=0EoBF=7x39z?#E%j&&Cd(pGteScs}!Q z2>%y8eO4v`AwRdlk2^B+j8R;HpPp?w>%`<#jv8@{v}U`bjJ zpvd7lACc7V6>0ERIXH4a$>NaA5sgv$>~c^E>8C(I+tBi-sMDkC9BH|HXfq`fNxcln zO{Z^9+T_W?yB1_b6Vp38>a~a5@x*?1=zHnwNA9yRyKf9#=N~b7>&-0dDE3?8=oEHo zF-{v|52Yf=vujoLD>l1i%9%XpPh5Aw7)jJC9qSrZV+a;4B3WqVY-L?)P%a8D|o&$zy`q7saMFE7Ni!PLr& zc^p#iF>2!RNqhXHY$}BQ_!D{)%Xj^6t!zU>7s@LA4t3)XXxNBo0flkxV3-=559Gxr zGohAKqLf!?KR* z1k{)uzf*tF5=)(cWr8*OdO}s>%^YU0A^}wYH%#%;!*o6YC!oFhvHyP#QQYu6JOP`K zoIIq&XYzQbBWiH@Yt>=*EE`H)WjbZrzzBUnM0=VXW=;V6VN%-34fj0C?j$A?I#E|C z586?(>I5M^N%Sw(ZwAgVucVFQgP+v@Q%4AR{Q1z4Ux+q`a$n0-8`s#kYRdrig>Qwm zMmMO9an=X#A$N~~n4G-&C|KF<`dd{V`yY6aDqPT6us!{QYLh^pLxi*>y2EGG*g|^* zpQ?i^nldjLu(s+1RsFE}W+sb)B?^NZ@rQ7zIHqU-4C0wN2+#eFZ>E2(AECCvU00S9 zu9%QBnB)A2r?IFUg{JV1Z~uKHBPNn0 zuDi4|iO;B2Do_aP*zEf8dOSl&e^vxHvmNFSOERnB_XxL`*X~{fL-+zuJQ?0m9(ZtP zeL8(*gLWd_JA*?*=})gc-|rnGR+XN_(!M&vvQI|Q9Y_DcOJ(Mm0X{l+XWe>T6|T#U z(YIYrQMb9|UO0IesdezKT*zxXxcrN1*2S>vt6M2k{SP~ojUpFDjA{^8uD2{*m@(1Y ze)q72)UN#QDAUy}tOh0=!xIV{4w&2#VJ4jXjn^ARt6%i`5BNApKXs1BJ z`g~gT#eK7S^N8e(N9UKhy(Jf}X5rWK*A`xg37?xXXA{$|*);UEqM4Ve3ckkMVrNFk zxOHpPlaa5_r4PzQT_fD<|LBb_7qN1@MdiyGS#uf)m*s{8r=8D2CVw`{XIMbi=1QAv zx*`t4=(J&cq3P_@%DCt4u6E{O;h8q={*1A8zipx;r?rbMq`~N#&+Ybo+D!L)JeX8D z`=&^ZVw3u9+7TvY6QeeN@*skcaPntuwmLW7rlW^sSz(@HKdmjIa;ORL&~oZV3h&lQ zKbw$BRRr(nHCy!vP?pb@YOo25T`6nTe-kG9FqI*sqSKFaWSN6d=(-t(m<(!swyoa> zr~`K9FCmO+mmglF!E=~V!uABAFV80RUVn(aI^6>A?O=;_M^vZ-7_$iTvl7s!c3ymM z&gr?e#^yF0a{g05MAUTj(sI_<#aJr*)Iw8Cnb%)@TuM~XLkcau;=TqeGYmQ39G_8dApLsXndB0 zG1mrTe^gN8Qz)}^BA{gk`95_6nvt@>ep#3$(S;2Av2<Ox>_7|lKNa92I8w>MQQjAfp z1oC%ZOvdC^iHAcy) zxQV6LVU*O^bzJf~pN9tHl-m+@U=Bj%pO?0ic7G#k@`*r`?Ls8Sre9dI@NAs>&G20H z<7(@#%ZdBO2x09Xztaf+-n`5s9a^eFUaV429hqMr- zcoU6jBVbGz6r{gxD0SREVfPc@B=x{w$gX3XB_lkN^daUfg7!aCBO$qMP^IuDNHR8|q^iTb^fE&;5pRUHgWJWQkeuiI=|As~4eo;kPOU0>dJ@XQVt(~v z&f~~ieEBtROl8mG&ArerhS0Yb`R?G3ot~#B@$Rie>aom6hk}fN7nUt#V$+xhcP{SI z4c7afezrMc%JGJ7`rUK?J>fIj6_C(%^NVpazIuk8tj>S1)w;_&T0;Axx~uUW{M1nx zOI{7etk`xk2ksxprwu}l!1h&fl$w2t8$%K$4dEdcw{6dnn)Fb^A;xCH1Gpfpg&RIu z&b`9r7)SQQ+g-DCHtQ<;Rev34vYoVqN;~YVB~8{QKvD1RGi|h5vwRMl*~I3PI~iD# zuj(b))W}nypEtDkjAS`#BO3{HvT(zSB_mk;j%VO~Fo)Jbs{Dyfa8JXZq1a3H+<<&A zmtlx^UEX+TlP!Kt);vt1ZVu~q{=N8_LWJ{lp z^yIJ2dEjG>(g5E-#9K_l;-@ZR{h@7?8bAzoqA!p&V@6h(BmDdRg#835$nA72umm-0 zCw^fL{@k)($iT@fF+Ml`gk$%>2{12)@F%R;rZ;=}*vKOw)=YK-Hr*EpN)rk8%t-|Ew9(3sxh^MdRO{1oR8*3N;fr*D_DJuWfgq?7HW?f3&Z_^+hwcqa^TsH@T%?GFmKT)vAT*Y;hw7Ob z>lpH9i#dJpymvHK)$hscjjP1ExP>q1vf6-uOMGy34M>Omet5)xcjyL(xqXKkpg*tA z?OcqfolNo(6M>}z^HMH~+4Sce=f%4$@d{oj7Tl~Kpg5pZ7JepDSoe1EiHmmRiRpPE z1Tza5VWb|o2pz1>LB2lVQ*vPog_WNV;eptKa?%P*=l{V^UYMrATnJ5u7h5iPxa2kH zy1UnI!9!l|%HJpKSKRW!-Bx0e)?AwNmxq`fe^Y@c)mOewJY=^=A)*lO3-!~NWRaz# zzJ2DIirg=lZq#}NC3)D`tiEts+8`)r6gP6mCRsbuY>#|FTgeuv>43f1IlQOS?mW<` zq~Ci6EjqJ`Qpt6TZEmU7=woR`=duvWZkx0sF+v-E;a&MT9 zy8XOOLD~86C#b8u&rN{`aiu)_pBIfq?e9KE#-NYD4C7v3^otjhTfda{jkFps#g+A3 z@b-->86hY2>}2nK=0Q@%*NZY?s&F>D@HW#y4QCi! zYcUN&L$-qYW7|IV(OJIOBaOb^=bv$PK710c%pB4x36oURT42FLHfa;%3(WuAs=|HFatx6Jb#T)S1Bt^nvj!ALHv_Xm0q;7`xL4n&g z+!Q<@8jmDtZW2mrhEQuP@aV?{K72=atnQhS`%Hpk*c2z|9qQXv?;+BGOB+MA5u@6>^MIHRk zkdY)=(8DcwOl$Y_P<|FvR=D9jHYI{LNGT$++Z~iW1O@7fx2>$YXY_61z>z|Pr{;YK zTcBzd)~#KKtPu*VJD~cz4EU{yL zqyO^88$?XB%k4EDsW))3LRa83e})lptCNVeTV2=Iz|>5C>~P-9bvKc$_+-{H{Qx$T ze(~&QICT>(VxM@*Q}|Bgf-)e#_mU|;(q{+03HV&_t2w}No4pDLHualG;T;i^d#r88 z-WJWAtCc^M(-lST#%p!qRkD6CzdWQOX9h8UPWq2B3q6t;qN)ddC#N5O=O}sIVvn;V zT9#+DS0!7*A1rqBJ62htMf|gPvMd%Zi7OXCm7o;78K|0i0KP5NOs*8oTUaF0DMdUV7-Rmy~sfWqfAKBn6d^F~_*@ zPjF>x#$8>Z`y_WihAXV$ z+BeZ~k*yo-v#)So%=hD65DGQ1F>f(h+8b|k3;&<0FYYrJ z`t4q|sXleiI{)0>ee)V#HyL-?&yUOR&Gj6m-ahXyP(2>DS#4qU<*rk!=QF01o=Hr~ zL*7ouDVa7yoG;(B`mA&Bew|}1Vxf262~Kj|jxp32S{A!76=2W{EnM%|!ZQh#s)TY` z=lXlUf$h7pkW~2mJ-dJvFqZ}WLheDjAATY=VlcfBUJNqw@7)+9Va0_TQL5C;r1Gy(x}4BuDRLR= zdAJL{j(Q!n0Iiug>rqk}_G&kUI&^GC$@J|wYxXzHe1YL+N+;+9UU2 zM$nS`gdF6AzwgZfD=;(scL3UmC`5syuek7G;$b9A?7!?30L!$RT}^l(mWxySs>5%Xp9G&pVDmlV9eTs1|GpD z9J4I`otA0iA8;pgGkmESiY7yTr=KtB8T$IPH(EkIbzwweb>$U@jMGbY#0a+vt<%9I zqKwO1TGG(j{SoKEqA)(mJFycoc*u9W7KjxxzkSz8kA*8qwUjnW3)|dv=kOPNJ&*@I z67Ln1udZRTb=^C_+eBzPuK}}$#jEfD^@nD7S87^a=~9wLTCO4+NpxWI=+t%!W(Xikv4WR{Al_RZZh}~ z)0IW3p4~FRl+dp|(6ASnq`BL=aW( zgqt+NQOVbq*EfO&K`jV7~)t(6+WT? zRM44sf*D1nMGhm3gxuC)Xydc%p0&t(KKYu7fW<+qTz}tB*bYuXmDVx!5{HH|`L$sm zqdUm=n3O1q`NdNjF;zd318N}8jc_#aAv261Ca9HBuamsON18@WY_au3$sgJp`#z76 zGgu#7kKDxdu}`=Ux0&>5{TJRBRM#`rRNmtr!PFoc0r>>tO;1vc20Y~Cy3)a7utv%O zaU`=M{&W*1ybl%x|GUD|F)V+W&64)#b_L5~b9(2=LyrIHEt^uxq1C!B|$K(y4mR!}^oR!Tz~ zOX~dHJV1)~EZWsl7(#iV8o5+qZzVLp}a_Ikkreb zipSL`X9;n({L!l)XngZ4T;-#2BC6h(we(4~;?=NceEWVzV2Wi|@H@Dc;fcGB?m=L z@LU(3+f@OUg|=BX3S$O!J3d=zsb5H62h7557`{WANVuDcELe7utMB{?Dol;2$|OJ{ zb+%z)9T+{(*dzxEDG)KfG4{gTyJ{RI%N0q|x}+A8^pT`N(yEp2L6GG>i%Flii@56|5pKwe8j&W3EXySi(bl}t4X7wYb#g(HgxiMy7dY3eBU$d z@cguoqlR&IJ{9}-_nK~6Sr8VK^xA&@u*)TF=eaM|v)G0DQI%|y^1&j!RL~`P6}80E z-(9x7U`2X*@RNZv3EwHBwEn^s=^@;@BfB{)k-tmNs|$=#H)z#?c+H-d34i^BeZ-U#Vaa z`j=hi_iU0q3}rMo+}gi)E?9XgLpHtMlAiHE<#J^m7#+vV)x(4bhZhl#yZG@&q;h?5 z3Y?B{riVZ&fj4ugn z6d5NG0>{nawdVyRueu-_e0B~_=aGpATwxd6T<`=v3BQ1c8P_i@dzOP-b)I5yrvDAN zdG8v<(t~%d&)iKuTL0MKKV2DQiZ>~7Xk}!`78WyjG>?k{ac0P#h@^e@r~L7H&P5or zid$#t?=E%Ax(bem)listU);h0<*;2_Hy@HkYPee;H8s=|FzP{{oraJ3aiSj4gZ@H^ zGcRw z`^cL66`CI9_3*r=l!CXEKdHEY(qv-jJJ5pP!}OiN1M|gRz>^P%VmxQg!4ZNIXoL^) z;N(Wpb-xd|9tX(%3t$R_Oa?u*<@B(F%T1S_nqS^^nU7uYE2|Cr)uid>WKW#arr2TdU`@Tqyq|t_Cn;QBT?9Z z@Vc6NYGN8n3*%sP8M_vlzdWKIQKtXheD~R=uwXuOLaCNbkTT2NK2}VRAoq|baC3Gw zGC;0HHUh;Fc#w!k2!zv^eUP5m#Q)u6gFo8fXjPrTGJDyG*!rqE7Nb;sLk<3dy~5AQ z2MZk%;G5VwFu@{v)m;=jVW9+}!{+~c&epbAM&u%cBE^i2pio>qP!)e0(f~Pj9h7xV zzrbtc4DShH@hMntPZ7>GMsCM#btg!o&V}R0^0+MA`jat;UDvim2YhkS0@k%ej)R7@ zH0&B|+zq@ZsIRYZNPq579oK}##MTz9A|-TpGUUQ8JckFN9b}Q}#|bz=Z*K^n@iZk4 z_qt8fD<_}_QGQ2%!TsQ?{4yTCU5h^gN3bCt{Z}cb zXX+kb3hKorvGDbZ-cfc3Lre8{a$4WnQ>_NTi084W{*MlETg-v`v}4Tt@O4BYh}GMe zQ3M*4mtVX6&Ida!{h}mT-Nx<))%!HQ>!FEwM?N1(xE0y1eTI%FLHbohR=TMB9&upl z>txPQYUr}?wZ}7#!H2Uz9*{#C;GR92Ue1^9?f=Mn054OBUY`2`Lc4Z9oBD5-ZJtA-v>)xyg{&abJQA;Qp2xsA~4+&(v zDrYMn`8GX6?btb@wj@@y5Ar&$dc`&t=GdJnj`lD9&Fv-@PtRx zl%4lfGwa4fW_JiiDE07P-dax``(`%JT3uELh7sNnaY5TN*;EU)xP94+D?b*SyhV&s zC*@>%dN3?Bg=`XRb2k%j5mp@%D#qfkS;|GInK*`5@wp zCmyiF`WMu)M@xDbT`%zTr4jW+6KsmOus)pmtCnZKhnmo0j;&jb{Ty>Q8G&7 z#)EiSdr<-`IU}1cVTqAZgun%CHneHJdBUkudGx8v?Sa*&okz~TIC-0S?6{`si#@BC z-??*-y7B9R$K;r6^}A{wlvXCXd%s-ZP^XxH1c%lC*mGJ)*IMRi%y+X@pj>o_m)4Qa&ierNj>X4b!vL= z#$HN#UE1noU=#mzQB!|IPZ?$sid_T;Dy@BI*72q_RlC9Kq+Ke7Gzvz$Ox&yn?!Np; zhyQb5i*FpryGCdatAsh5-;Cp#Xw`yWO(I@W(i zanv#Y0`4)VQB1Etv9M5c+k%=?PrFm6sIuw3VL@>$dg25cHNaK#yt&!U-0 z;z}J`3v?MEZSt%u`{Ii5&3Ijdicksbr1Tl$-ut#kv#egK<8*8SQ)w)2{DbO+=Y!9Z z4?}P}TNrckkcBl=gDb--LV2tTe?S~oUo*1b9DNNF_!C-x?^`dkkC2lz#k*Y-71%^- zsc22jA&ZOK;J-(+k37H4klD+|GEU~Jfn~(;N7PP^)KJdhEaCJdAKLmIXBgv22@u-y zbwEWL4Ut@{Eo&f}u?=sR z@4q48J6uX+hshzt6aW{)uaG1Ns zI=J+b^qAnHDG6j(;Ucr0GI1x%3fOf+u zR!j$dUf)&F8sh0c){UqEZ@id&XWF5kl(&dbYvq>(uMVpd(u1!@v1=$3;JjZF5)FFR zPLkPeVuvd5Gfbno-)B@!A+_Md>soijGMCE1?%M&WwRY7Z(A`JQF-HOsbF4X~r3akl2SeB2LNQ_; zNtD8&fAbZB_U#e-*Mm|qX^@g99FwHpJ0l->vQ0qcQ(u(-YFn1cAsEucm!Uy;hO{58 zfa=!xe1B>-9%>`saP>FmmRz(JCp>$4L>!bkO>2Wy!4U-pu}y3*WQx}hZRo6B{X}o! zLou4f2!X^={9cQ{ijp9M&V`pv65H7iuWH`lc01Z2Z@Y_TP@O5+hq=aWz@RvJh#^M4yQ_bc%j$h+hj z-cpL8odYUj<|rvC9=bK({Xjd5uLMGnbaXsjN;Ih!k8V6f>1IjiCUN3{)Z$Q_HmOCk zZ;vzwXw6V2sS=L7rxN#EbCG)mx$^?B_p99S&N}^9MfD;xm&k$>IVs(%cFx~Ys#aT( z%g#<-X}a!Q+%-mSMjVwjMjvwUZRf?(Ue0z5j=J zP>9Dg?w}Gtx1nV^|2CGi8?AL><6IO}K)yUZa)sed?YcYiZ`8|Tz*|fGq)AGG#mh)t z{1!gdPp~`dFFXR?i$fmb>vqjv|2>IP;BAAR6_w zLv>OnH5$UR>*RCIF%v)o`^r2tG|+HLE4Vq+qYA=lIrWR>u_3gC#|2!ouDvA+y3X=l z@>n)lRPQTTjLtE_CdF3e2h||G%!d!;WAQ=UeXB659|Nx}v3erp;syxA#5YxEZ#a@woAZ$P0sb8B4xPoCm2uk2hLuB*d`4(yQ@N2w7?5i9LA zmG1y|m4#lW18E91m?q&@8K%dAqH4jEa!de-299VyI5*kCPYfN-SL2FvnLk>3@~VIlky zymaK{E93M}QdRkz>+6W=f551XDY6Y%6U2XtVjxu+CaOG%=8K>fyqq{hHTFW+*VIgx zX9y^6P_=hn+bYT+SkygVPYwLK-mz5q^c?7ch=XpPe)d9XncRwX zTh6cVlCdOkBmD6Pszr{zO`yXjV1$nsD#>JrYg-e8@aLe<`EE97(-5K3pvYNa!b}T| z&v_0tgF#|D+#QGs7SgZm)33tuxpMpIx_n`9on$y)Ytu09pE8=?9FA(}kBcMuRrrV4 zXMI;b$)#d@G6y%3`PW#i;#4Ow5>VcZ(jk{-&?dlHJjI0Yn0{dhcXwTAXePM*zX#bZ zb)3zVD8<(blJM_DGsHYRdIao4tE#HO#C_g4&`N`c4-L7P>Gh)VcDS~IlnK|8)w?pT9mZg|vZ4M`N&F;-Lm zKMO!jg8OwHNy5||TY;Y_YS?K@@ln*)NDB?8N6^)<>sev>%JPS3n<;G-l~`LPt&{6x zdAOh^_AVN!v|6_ez4>A-SOcAd3N@1&(96pnWesB3+f9|3|Jv~i^7Eh&)fi{-sb%4` zvaJ_kwER#8bM{>}h337tY&b-kUWa!_zDXB(t>7vR8Oa~Sr^hY7H@qkyU2e|`Arg@n z7aS~xsYZJ+ZO;P(kskILDbo(iZ8^^SL7jF6mRazY z)wBbs%E4S6NsUy~j{%o62Va;OQuZtN>qI3~rrv{2%vs9da}nG6iQC)Q=vS zW$iS-m(*!9v5M46-ou&xCB+Mr{1IJ=N~i;LpF!Z`Mfzp?L{=`4R1xp?N8N3Q$jZj| z+n|vQcK}`BS!M*L23{;Ln=l^0q!}`Ccjd>s6Zm6bAE?&|gVy6YtOQiyf7ftICK_5p zlh7)0+)4obZzkDYD)Qda66po&|t39gXdw!Mu{n1Fj zHeahGnzOBPH#hv~W|pYI#lu(gkp8}anQOapLs+}F&!=iyt#w-scsN}5?xd|G1}^?D zF)y-jNB&B!05ksK-u;J^@|xIZBiihYPd2AZoz=VQP9C47oIK?Msr6g0t(nfLh+4>+ z#g*%#bBS9rnt^&*Tu|COBQ8Z3xl(R!jeua?SQB68+Sf*I7Hnv+;r2y&dDK!&z_csA z2i3d$j2I0$Oo>D9AH>FLz;-cC9WQ{}h$Ro@XX@~Syf5e()OPKwuFe?$q7$Ye>B!}) zVqE6By(e0z2K4ANdjuFY%tB?|5G;%-2TD{b3V#v4f4vo1A87 zd;OB?z)hm3X(Jd9d(B_W;YlwPPwi3OJ~5r!p*w>!J^ZQU6TKPq8_BIy5N(Y3^--W^ ze+|PYK{(c{s2^4$MSOc?r3o?W-&K)4?H=df*zD#D)~a^K=%?S8lB>}}6_)=-uI9Zh zX0)QD2_D*BYLPlTT#XIO+cv79in)>pJ;xzwn(o``e`rlzlhU_ z+ERteZ*H@cizHT4t%tZu7F;dQ@~FlKn`pmj|7K~MA^iv_8ua_gKN!Bk)DSm1F8@j0B$yCWnvc2GUE=wSDE_VbTD(J?BnVlf z{7eDY)g#A{u%hUd7V37$S7ou3vMdRYL_#kwPQSV;{k@7>#!4)#72VQJon zF6g^ys|OeV0UjJ-`e=g3xmD77ydr=0U$zQufgi*@m7mUrS z0#k(2A0FGl)~%?L(@Aci7DnvY*WeqTnulR-jy0zJ>8}LTmn1pm>RYIP0r%H`v{m>) zrNg19-PRRr`JBC@WK4ddTw++}c8v5)mwOg6l&8=7q(^{JyaD#^f%`f&FYbJD-dm|g2d)%zkh%B|-5-9pD|{O`=vCv!$OXP!*+6*0W_$j0tOU9ZXp$rdh=i+}dFXb3l> zse^oD1!8vvQTR<1x(Pe+ZOZd64C9|{o+iTQlBm#|MO`5t{XytxaFW{G#-?TI_5r*Z zrPv!3C#ZIn)3ImX71iA*0)l>pqtDa%BvvB%*D_THsRlU;lFE5i@XLotd8%~1&MUf{ zLQg_#H%;EzfSEyha5H$R>=vzqPi@*C&!w#;Ov;M~o#DS!by3M7WXvxF3C9`Mgp^EM zH{gxg(wsqM)o}EyH&!z+{yhxN3-|MwpoxUf&NPBXmyFP1wS?=~TCfTFfsbRamy_hQ zThDa&ghxG2qp8@q|2DMUCVDL~bQ=v4F? zb*Q>r)7|{yz4E%ITiR;Bw{KAj^W0FgnpoO}F6^0@t_X4}nlmCS2&7_q-2p8XrYSq^mRoS&8aQ72 z1gXLOpY9y2m*6>=aLao&2Bdt6H$->6b4BU$97G>1e75dE_Qgo>MEpCQZahj`xeS=2 zH~kZ;lJqOzKl-=?KfcC|L5HW7s2N;y(io>dDqB|hxejg;2f6QoXK?v71ACaAdd8ce zDuv`M7G%UXfXi6apf6K8vZxc4D?4wr42 zHbe}=m*c6&zRnKGm$TBXzUd%-L-6C|eYZxQA-QQmybb0u=Qfjw{C@0=7*QnFy+TX2 z`*l8Q1)1oTIEC6sb!fV7Air!AIG6^IF#LxH3P*lv};`c z2X|RNdbcZK0^|HwRo!fW2SJ~hC)MH7jpwEQC7K__1)yg-Fv`Y?&md_)qkH6(t&4{s zSIBGO??qVUPiD@Eb6?Rqc}|uAxU>AD3i>VRGt`c2t&vz+7?6kY=_QxshY@Fgx36Vy zl;0-VRN>g*FoOM6l-yiNTDUp-SG9LsU4=`*eA+E=1YBKn&fzxt?dt?i?A9%Tu4AHT z^vC=mpH7z8EY(KJloKMK(+Jhr9deQ7j@;dK7yq14{1NJY(~Loq2hbl&9FHTUh_uUh zDD+@34KZ-rVjH_p&pZ?t!}ao+ow$j8023h`noh-( zova$>@o_ac68Zz&QO3vWSBs84$BI49#qoROZFG15id}>(s%j4FKyRrBeAIVv^yh#H zsAd@}2U%`0(=hzR*FIP@#=&=0%Nrytm(SLZO?D09vEznV1C8XqmEd+-%KxZN51bf) zFvk60nZur7@Cv7hyfS$Kv;{;CMy=2bu!~Pr193?jpEpb_UyRL2Sw3pSZ27?MJGn$6 zBK2dd>$l#g&=s^!Kyt?ivPP(R=pq~O^x=IG>MwjZZM!?UO+wWd4u!d$kU*V&u~)fy z-g~)M{4&GuzYckGY4vIGiPs&*@6Ti`SQ>1gvjbi9_qo>c4SU6e6`=gmk3g;5u&pPK zK7TVWD2LhI!!4TXkZu$p#(ubFy=N~iIBKP$js%KKa);nrO3~wNzdZuaR!qJRpuwG! z`46;mY|v7nDQP1V3hzq6My~lR3z;(-*Of5ASO%JH6KOU=Sfw6@r0f#qi;RB6%BoJi z)W+6-0W=42T%})9I{-6S=HS0938`!|UO;!)y8IWF2g)2EJPS%c zFO<88eEL#lb1|S>Fibsz1R)fFAGdm&_)g*pd?vJ0&i=Q}?v}O86Cep79r|1U@^uup zhRJe~AVZ{~1J>A}*lg_ghLzCAVU4+h!+v!pl<`x%IsTdTx?k_8nE^;mz z>yj#Nr@?DMD!RYS==QX%4i2kNdIE7FnUdwhIpP>qbg%Kib5C4YnNXF$z8LvnrcVI6 zz{j~%^v*h`pv|fu0geqzvH2n*k)ErcCQ0Td5qd93;?@Cv)Y*g9=|Ua~vOxzm8RTO0 zZ^ z$%9>S8{{SE&C*MGpomM6prckn{5@CV!gzX~ues*`QqWe1gc1f`goFHZ&@WWX^L;V3 zQCoB~eqPqUG2PqO4jjz{)Dddow=;7_4jw388mZQLGam?0ef(wZc$g=p%ky>o%D)j> z!B5EeIwaHwYouAA3%U|pInzlS&*#9niKyu-fFq)tygVcA7Gq2}d=a!DN$6~9#Sff> z&`0(FapVb=`fO@P6Bu*Z1L9@)VJ8`t!}@gY$SulaI_d~aNq^{DN@!B0r;*TrJcT?W zv6R;>=Q>L>2^r9wk+Y}mn$;n{GGUxBl%K;!kyb8w;AP*SVcBxm~e5t+edjm>p> z+r?7uY%(iIOI-|yZ;~H4yRZ*|?+tIy-x)Ha5vb-BDv3p(KJ9xy{p(E3`%rlIWH6B=j_4KSX*&9?Qe48N4o0Ddu5U&Feg#td$A#5SE2B@4 zJmSQzEkn?|qr_|T<2$M5=`aOw{QuqO0zR~dm<^O1f&CEa@$a`ZyZ|rVi^FvQxBEz; z2n^$}s!P25X+#z7S-{UJcf=Z0%Z}14@B&_}v?b_^uAD?9?O7YTee-gu*^@Vog(6W&K)X4Atxvm#|j=ExB7bpP(>;y>Dtft9N6r-*=&{z6=b1GGTpDb zPz=xp!iQd!5hZg-)DroVu^<>x`7e=XAwPuFYXi6p?B7A<2AL(q)5x4@be~T|`P%S< zpz&Cmxcvrt+{vJ_n|~EpG~h$O95@=KPC?qNIm4FxbaKwXFmX0?potthS_c=r>PX$$ z3yoogBT`xk8`R+!JU!u_fZB}PfGAN7O6RgV0EtPB`z(?EX#0jg;eb?_lB5t_3Pzc` zo~$pQgfhug9{#oSlh9@D2@>CQsOnYLoS4@JTJPamSzC$0(D#ee7m?`%xytjkWj}~^ zWn>`ZHTh_fufriR0>fy*yVxLp~O^Jq+)aH6OVvI^+*atuwT$L`7YS=es?=;<+D}=G((9M!^}14)Rzg+zY9b zkFn{rOqj|5aiZ_AMcNZKo@fodFfs*s%>4*VgOMP=C6X4R*QYJGahAOt9EJrNAFsBR5fUTk<( zWCLl7sAAm{5MK&*M}1PUpUX| z9-@$)CpVtr&?Mk13yG4B7^cvqoG+h9UyV@=%WW7P0_^8M{VNt~@Qv!ZjwnpSw<$F^ z!}943EItbxdoFScxPC6`z#$Ege&r#PQbXpzrNeNtE`Ylr$)Bwn=ASr&rTT6Drww$| zp`Efs7U~S@z(gwZ^xs<)6f0Zvxjgd~@%n~+FZyagU3*q6M9jf8PcZFWkYYZtY=w<- z*!pW8#z}a$L`E6okO1^Z9Z{?*c%;GyBtg3~^WB!>_;YQVk%Wz-_YaTOrlawvSmvgC z%FcuzSbn`6|HUM9fo44Ql1M#!VL(mFaz#;=vxs?v(QEC6GX5&1D3{2-`TcHD6k1$Q zLcV0GUd8VadcX&7DIb2E4{!HrG^*UQAP#w-(X5p{d+u~hz>}5HOUoaKQwZCVG!Z9W zzP8029Qk_KI$?r1o*G4Vp26yo(f%|l&TxLf6Akk$8Ts_@W2_@Wk`R<5bl$Ib%cQN_ zy)dx?aR?I7Pwk~|I8NJTN0L}=(Bhk;%@2%hTV{66tCG8BQsuvXj1>FGx)!=y_YcdD zBYM%^^S;*NMOBMd%IQ~*!b{)Hv6&X76AD&LWe@)z^Kl@oF`-@skR?pD7^nU=uurAl z=2O>k@ZO7!1FP*-o+$|cbF2o}!O}*3)_m!k8`B6&_3U%XbT^G^)OF4B84}_+Di8jgMGjxG2LVhyIhEYPZTRtjLJr12kE;Q$$8*`kY z=Eq&M<3=kOMB(j7K5`s^*f=L*H%#})B2q^~>2eVC72GgKeJuK`X7EVoL0Q+t#u9HnFJ!de@j-u!B<}r4Xn{4UGYH;Ai$lVdx=w65p;D z#}kp1O4N#Gu^vChA|6-QqL5EuzwMDbqfk5HbarGv*%k!$ap^O>3Mt)bt}Vwjqb_Uc z>h(wtX_(c3dXk+$FeKBh`X`yYEGMA>XP}YkQAPSVy$ehmb$hlpUGJoR3duwG zo8xnBDN>wq2PGd%thG4u11tOTApe8DP}TnIN||s4*U9Q(4>8d4JG|uFgfn0c@uYLv zD9pr*XlT)n*RYgVbhyzDC`IUYP+9-sZ+zO>={*S^$$KsPq{RqRczfFo3kn477Q8^x z@jNa(Rngl7zBY`rW|X2CFcSq*78VmLfxSMfcYzT6)eB~bak!#aHS4`!2fia&L&Ka) zshllD%hMz1LY{5P#t&!{EW0+?OXg^u?-O!|?d6WZ1BL03ew4p!aA=Pip3Bn*Z$(>C zr`xFlJI9~^5q-WeWYP30c$}u<4`HR;$l?XhN^EDnPmn@` z)WnIJ2Q$9L;5)v0z0OU~=}K@%W737s(moKaPb>v~#lVCM6=i`o%9IeE;iXFn3pU#V zpIBpi=qeu||Db?$v`;cug|ISe*3-l+k&opyX+R~m&g*`!GeGTu_BhWcA0=y{#@G0| ziHBwaki&6RqH30`YfkR`94Y|#rQKlZ)+rzCIa6IxjsOfvb3`CiLNbS7a1th8_MMQSrf2`V~HrU%(KX!${fJ!OwmvaDf6TH72*Wc&f5BW5}!)7 znc;oIGw=eZq9Gu3h5Hc`%+72J^OHxH9=A9loixarkljWqNYSxiafw84S6v2bCN*d* zw*~M=5Yn<(`+Bo68bzzf#^$#qzyCjrV%x2gBK#2E8C`SiWS?*-atJ8NaCaQi+vcK? z>!vc?ummOZ8(7pa&KV^xlZ`9-4lQv(NFWKhzG0mJBjp8hZr!nh+>3K+GM-%ak9={o zW{)AWDpyX!c8lC5apsOPE>W(Ji!o-fwpO@Ed(^sVkhc4iMwr$M5)c-L4`PsEmJtu1 z&E-RjAvQ+pgKMA{+Sc

  • qk#nug{ki0^7|AK3mtASVBQI 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 diff --git a/website/public/img/credential-brokering.png b/website/public/img/credential-brokering.png deleted file mode 100644 index 27e3dce9fa362bd6076c1eed4692abbad6cc446c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22726 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 diff --git a/website/public/img/credential-injection.png b/website/public/img/credential-injection.png deleted file mode 100644 index 7b5fcf5c99e98b5a94b0a7d1b9092b2e4da5ed1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19811 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 OIP-M%b6Mw<&;$TS*;D-h diff --git a/website/public/img/cta-bg.svg b/website/public/img/cta-bg.svg deleted file mode 100644 index 58553e526..000000000 --- a/website/public/img/cta-bg.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/public/img/desktop/macos/boundary-desktop-active.png b/website/public/img/desktop/macos/boundary-desktop-active.png deleted file mode 100644 index 509b634ba280c5688ea9affcd6a87674c60cef58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254504 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