Compare commits

..
3 Commits
Author SHA1 Message Date
ede5377188 cherry-picks for release 1.1.x (#394)
Release / go-version (push) Successful in 8s
Release / release-notes (push) Successful in 33s
Release / Terraform Provider Release (push) Failing after 0s
* feature: Use default auth method if no auth method ID is provided for provider (#385)

* Use default auth method if no auth method ID is provided for provider

* docs: Fix typo in Managed Group resource page (#370)

* fix(credlib): Force new resource on credential_type change (#389)

* update changelog

---------

Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com>
Co-authored-by: Hugo <hugoamvieira@users.noreply.github.com>
2023-05-05 12:32:07 -04:00
Michael Milton 1a83d0e4d1 Update changelog with version and date (#383)
Release / go-version (push) Successful in 8s
Release / release-notes (push) Successful in 30s
Release / Terraform Provider Release (push) Failing after 0s
2023-04-21 15:55:26 -04:00
96c688b879 cherry-picks for release 1.1.x (#382)
* fix: Allow users to set OIDC maxAge value to 0 to require immediate reauth (#364)

* fix: Allow users to set OIDC maxAge value to 0 to require immediate reauth

Previously, setting 0 as a value for maxAge in an OIDC resource block would not update Boundary, as it was getting treated as a nil value in the provider.
This fix addresses that issue, ensuring that both setting the value to 0 will require immediate reauthorisation, as well as removing the maxAge paramater defaulting the reauth time length to the TTL of the chose OIDC provider

* Update doc strings, fix imports, and run go generate

* add changes to CHANGELOG

* spelling: host_set_plugin exmaple to example

* Update target.md (#349)

Update docs for Target resource removing `scope_id` from `boundary_host` resources to prevent error

```
╷
│ Error: Unsupported argument
│
│   on main.tf line 79, in resource "boundary_host" "foo":
│   79:   scope_id        = boundary_scope.project.id
│
│ An argument named "scope_id" is not expected here.
```

* feature: add worker_filter option to Boundary Credential Store Vault (#375)

* feature: add worker_filter option to Boundary Credential Store Vault

* Update changelog

* chore: update deps

* small fixes for cherry-picks

* downgrade hclog

---------

Co-authored-by: mocofound <aharness@hashicorp.com>
Co-authored-by: Steven Zamborsky <97125550+stevenzamborsky@users.noreply.github.com>
Co-authored-by: Louis Ruch <louisruch@gmail.com>
2023-04-21 14:28:06 -04:00
255 changed files with 5802 additions and 14830 deletions

No files matched your search

-1
View File
@@ -1 +0,0 @@
1.0.1+ent
+24
View File
@@ -0,0 +1,24 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
version: 2.1
jobs:
build:
resource_class: large
machine:
image: 'ubuntu-2004:202107-02'
working_directory: ~/terraform-provider-watchtower
steps:
- checkout
- run:
name: "Install go"
command: |
unset GOPATH # ci image has done strange things with GOPATH, unset it so install-go can fix it
make install-go
source ~/.bashrc
go mod download
- run:
name: "Run Acceptance Tests"
command: |
source ~/.bashrc
make testacc-ci
+2 -2
View File
@@ -10,7 +10,7 @@ project {
# files or folders should be ignored
# Default: []
header_ignore = [
"examples/**/*.tf",
"examples/**/*.sh",
"examples/**.tf",
"examples/**.sh",
]
}
-48
View File
@@ -1,48 +0,0 @@
name: ci
on:
push:
branches: [main]
tags-ignore: ['**']
workflow_dispatch:
schedule:
- cron: '17 6 * * *'
env:
GOPRIVATE: repo.anhonesthost.net
GOFLAGS: -buildvcs=false
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: false
- name: Build
run: go build ./...
- name: Vet
run: go vet ./...
- name: Unit tests (no controller required)
run: make test
- name: Build release binary (linux/amd64)
run: |
CGO_ENABLED=0 go build -trimpath -o "$RUNNER_TEMP/terraform-provider-threshold" .
test -x "$RUNNER_TEMP/terraform-provider-threshold"
- name: govulncheck
run: |
go install golang.org/x/vuln/cmd/govulncheck@v1.9.0
"$(go env GOPATH)/bin/govulncheck" ./...
- name: osv-scanner
run: |
go install github.com/google/osv-scanner/v2/cmd/osv-scanner@v2.7.0
"$(go env GOPATH)/bin/osv-scanner" scan source -r .
+20
View File
@@ -0,0 +1,20 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
# See GitHub's docs for more information on this file:
# https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every weekday
interval: "daily"
# Maintain dependencies for Go modules
- package-ecosystem: "gomod"
directory: "/"
schedule:
# Check for updates to Go modules every weekday
interval: "daily"
-11
View File
@@ -1,11 +0,0 @@
## PCI review checklist
<!-- heimdall_github_prtemplate:grc-pci_dss-2024-01-05 -->
- [ ] I have documented a clear reason for, and description of, the change I am making.
- [ ] If applicable, I've documented a plan to revert these changes if they require more than reverting the pull request.
- [ ] If applicable, I've documented the impact of any changes to security controls.
Examples of changes to security controls include using new access control methods, adding or removing logging pipelines, etc.
+87
View File
@@ -0,0 +1,87 @@
on:
issues:
types: [opened, closed, deleted, reopened]
pull_request_target:
types: [opened, closed, reopened]
issue_comment: # Also triggers when commenting on a PR from the conversation view
types: [created]
workflow_dispatch:
name: Jira Sync
jobs:
sync:
runs-on: ubuntu-latest
name: Jira sync
steps:
- name: Check if community user
if: github.event.action == 'opened'
id: boundary-team-role
run: |
TEAM=boundary
ROLE="$(hub api orgs/hashicorp/teams/${TEAM}/memberships/${{ github.actor }} | jq -r '.role | select(.!=null)')"
if [[ -n ${ROLE} ]]; then
echo "Actor ${{ github.actor }} is a ${TEAM} team member, skipping ticket creation"
else
echo "Actor ${{ github.actor }} is not a ${TEAM} team member"
fi
echo "::set-output name=role::${ROLE}"
env:
GITHUB_TOKEN: ${{ secrets.JIRA_SYNC_GITHUB_TOKEN }}
- name: Login
uses: atlassian/gajira-login@v3.0.1
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
- name: Set ticket type
if: github.event.action == 'opened' && !steps.boundary-team-role.outputs.role
id: set-ticket-type
run: |
if [[ "${{ github.event_name }}" == "pull_request_target" ]]; then
echo "::set-output name=type::PR"
else
echo "::set-output name=type::ISS"
fi
- name: Create ticket
if: github.event.action == 'opened' && !steps.boundary-team-role.outputs.role
uses: tomhjp/gh-action-jira-create@v0.2.0
with:
project: ICU
issuetype: "GH Issue"
summary: "${{ github.event.repository.name }} [${{ steps.set-ticket-type.outputs.type }} #${{ github.event.issue.number || github.event.pull_request.number }}]: ${{ github.event.issue.title || github.event.pull_request.title }}"
description: "${{ github.event.issue.body || github.event.pull_request.body }}\n\n_Created from GitHub Action for ${{ github.event.issue.html_url || github.event.pull_request.html_url }} from ${{ github.actor }}_"
# customfield_10089 is Issue Link custom field
extraFields: '{"customfield_10089": "${{ github.event.issue.html_url || github.event.pull_request.html_url }}"}'
- name: Search
if: github.event.action != 'opened'
id: search
uses: tomhjp/gh-action-jira-search@v0.2.1
with:
# cf[10089] is Issue Link custom field
jql: 'issuetype = "GH Issue" and cf[10089]="${{ github.event.issue.html_url || github.event.pull_request.html_url }}"'
- name: Sync comment
if: github.event.action == 'created' && steps.search.outputs.issue
uses: tomhjp/gh-action-jira-comment@v0.2.0
with:
issue: ${{ steps.search.outputs.issue }}
comment: "${{ github.actor }} ${{ github.event.review.state || 'commented' }}:\n\n${{ github.event.comment.body || github.event.review.body }}\n\n${{ github.event.comment.html_url || github.event.review.html_url }}"
- name: Close ticket
if: (github.event.action == 'closed' || github.event.action == 'deleted') && steps.search.outputs.issue
uses: atlassian/gajira-transition@v3.0.1
with:
issue: ${{ steps.search.outputs.issue }}
transition: Done
- name: Reopen ticket
if: github.event.action == 'reopened' && steps.search.outputs.issue
uses: atlassian/gajira-transition@v3.0.1
with:
issue: ${{ steps.search.outputs.issue }}
transition: "To Do"
+51
View File
@@ -0,0 +1,51 @@
name: Release
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+*'
permissions:
contents: write
jobs:
go-version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.go-version.outputs.version }}
steps:
- uses: actions/checkout@v3
- id: go-version
run: echo "::set-output name=version::$(cat ./.go-version)"
release-notes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Generate Release Notes
run: sed -n -e "1{/# /d;}" -e "2{/^$/d;}" -e "/# $(git describe --abbrev=0 --exclude="$(git describe --abbrev=0 --match='v*.*.*' --tags)" --match='v*.*.*' --tags | tr -d v)/q;p" CHANGELOG.md > release-notes.txt
- uses: actions/upload-artifact@v3
with:
name: release-notes
path: release-notes.txt
retention-days: 1
terraform-provider-release:
name: 'Terraform Provider Release'
needs: [go-version, release-notes]
uses: hashicorp/ghaction-terraform-provider-release/.github/workflows/hashicorp.yml@v2
secrets:
hc-releases-github-token: '${{ secrets.HASHI_RELEASES_GITHUB_TOKEN }}'
hc-releases-host-staging: '${{ secrets.HC_RELEASES_HOST_STAGING }}'
hc-releases-host-prod: '${{ secrets.HC_RELEASES_HOST_PROD }}'
hc-releases-key-prod: '${{ secrets.HC_RELEASES_KEY_PROD }}'
hc-releases-key-staging: '${{ secrets.HC_RELEASES_KEY_STAGING }}'
hc-releases-terraform-registry-sync-token: '${{ secrets.TF_PROVIDER_RELEASE_TERRAFORM_REGISTRY_SYNC_TOKEN }}'
setup-signore-github-token: '${{ secrets.HASHI_SIGNORE_GITHUB_TOKEN }}'
signore-client-id: '${{ secrets.SIGNORE_CLIENT_ID }}'
signore-client-secret: '${{ secrets.SIGNORE_CLIENT_SECRET }}'
with:
release-notes: true
setup-go-version: '${{ needs.go-version.outputs.version }}'
# Product Version (e.g. v1.2.3 or github.ref_name)
product-version: '${{ github.ref_name }}'
+1 -1
View File
@@ -1 +1 @@
1.26.6
1.20
+66 -19
View File
@@ -1,31 +1,78 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
# Local/unsigned release config. No GPG signing, Vault, Artifactory or
# Terraform Registry publishing: this fork has no registry.
# Try it with: goreleaser build --snapshot --clean
version: 2
project_name: terraform-provider-threshold
archives:
- files:
# Ensure only built binary is archived
- 'none*'
format: zip
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}'
before:
hooks:
- go mod tidy
- 'go mod download'
- './scripts/plugins-all.sh'
builds:
- id: provider
main: .
binary: "{{ .ProjectName }}_v{{ .Version }}"
- # Binary naming only required for Terraform CLI 0.12
binary: '{{ .ProjectName }}_v{{ .Version }}_x5'
env:
- CGO_ENABLED=0
flags:
- -trimpath
goos:
- darwin
- freebsd
- linux
- windows
goarch:
- '386'
- amd64
- arm
- arm64
ignore:
- goarch: arm
goos: windows
- goarch: arm64
goos: freebsd
- goarch: arm64
goos: windows
ldflags:
- -s -w
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
archives:
- formats: [zip]
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
- -s -w -X main.Version={{.Version}}
mod_timestamp: '{{ .CommitTimestamp }}'
checksum:
name_template: "{{ .ProjectName }}_{{ .Version }}_SHA256SUMS"
algorithm: sha256
extra_files:
- glob: 'terraform-registry-manifest.json'
name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
name_template: '{{ .ProjectName }}_{{ .Version }}_SHA256SUMS'
publishers:
- checksum: true
# Terraform CLI 0.10 - 0.11 perform discovery via HTTP headers on releases.hashicorp.com
# For providers which have existed since those CLI versions, exclude
# discovery by setting the protocol version headers to 5.
cmd: hc-releases upload -product {{ .ProjectName }} -version {{ .Version }} -file={{ .ArtifactPath }}={{ .ArtifactName }} -header=x-terraform-protocol-version=5 -header=x-terraform-protocol-versions=5.0
env:
- HC_RELEASES_HOST={{ .Env.HC_RELEASES_HOST }}
- HC_RELEASES_KEY={{ .Env.HC_RELEASES_KEY }}
extra_files:
- glob: 'terraform-registry-manifest.json'
name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
name: upload
signature: true
release:
disable: true
changelog:
disable: true
extra_files:
- glob: 'terraform-registry-manifest.json'
name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
ids:
- none
signs:
- args: ["sign", "--dearmor", "--file", "${artifact}", "--out", "${signature}"]
artifacts: checksum
cmd: signore
signature: ${artifact}.sig
- args: ["sign", "--dearmor", "--file", "${artifact}", "--out", "${signature}"]
artifacts: checksum
cmd: signore
id: key-id
signature: ${artifact}.72D7468F.sig
snapshot:
name_template: "{{ .Tag }}-next"
+5
View File
@@ -0,0 +1,5 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
url_source_repository = "https://github.com/hashicorp/terraform-provider-boundary"
url_license = "https://github.com/hashicorp/terraform-provider-boundary/blob/main/LICENSE"
-22
View File
@@ -1,22 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch a test function",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}",
"args": [
"-test.v",
"-test.run",
"^${selectedText}$"
],
"showLog": true,
"envFile": "${workspaceFolder}/.vscode/private.env"
}
]
}
-3
View File
@@ -1,3 +0,0 @@
TF_ACC=1
TF_LOG=INFO
GOFLAGS='-mod=readonly'
+4 -178
View File
@@ -2,176 +2,6 @@
Canonical reference for changes, improvements, and bugfixes for the Boundary Terraform provider.
## Next
## 1.6.1 (Jul 24th, 2026)
### New and Improved
* Adds support to enable set/remove alias suffix and aliases at project scope
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/824))
## 1.6.0 (Jul 8th, 2026)
### New and Improved
* Adds support to enable Session Recording for RDP Targets
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/818))
## 1.5.1 (Feb 2nd, 2026)
### New and Improved
* Adds support for Vault LDAP Credential Store.
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/778))
## 1.5.0 (December 19th, 2025)
### New and Improved
* Adds support for Password credentials.
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/758))
## 1.4.0 (September 25th, 2025)
### New and Improved
* Adds support for new RDP target type and Username, Password, and Domain credentials.
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/735))
## 1.3.1 (July 11th, 2025)
### Bug Fix
* Fixes a problem where the KMS plugins were not being bundled in the provider's
binary ([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/717))
## 1.3.0 (July 9th, 2025)
### Known Issues
* `Error configuring kms: plugin is nil`: This error message may occur when you
attempt to use KMS plugin functionality. The [KMS plugins](plugins/kms/mains)
were not bundled in this Terraform provider release and thus any functionality
related to this will not work.
### New and Improved
* Updates various dependencies across the provider
([Example PR](https://github.com/hashicorp/terraform-provider-boundary/pull/708))
## 1.2.0 (October 21, 2024)
### New and Improved
* Introduces support for specifying a worker filter in dynamic host catalogs
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/626))
### Deprecations/Changes
* With Boundary 0.15, a deprecation notice was put under the `grant_scope_id`
field, and a new `grant_scope_ids` field was introduced to replace it. With
Boundary v0.17.1 and Boundary API v0.0.52, `grant_scope_id` support was
entirely removed. `grant_scope_id` support has now been removed from this TF
provider.
## 1.1.15 (May 1, 2024)
### New and Improved
* Add support for a target alias as a resource
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/571))
## 1.1.14 (February 14, 2024)
### New and Improved
* Support the multi-value `grant_scope_ids` field in the role provider
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/562))
* Support Boundary [Storage Policies](https://developer.hashicorp.com/boundary/docs/configuration/session-recording/configure-storage-policy)
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/558))
## 1.1.13 (February 1, 2024)
### New and Improved
* Allow dynamic credentials when configuring storage buckets
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/549))
## 1.1.12 (January 8, 2024)
### New and Improved
* Add support to configure valid_principals with Vault SSH Certificate Credential Library
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/512))
## 1.1.11 (December 13, 2023)
### New and Improved
* Add support for OIDC prompts. Using prompts, the Relying Party (RP) can customize the authentication and authorization flow to suit their specific needs and improve the user experience. [OIDC Authentication request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest) server.
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/519))
* Add boundary_auth_method data source
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/505))
* Add boundary_group data source
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/503))
* Add boundary_account data source
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/493))
* Add boundary_user data source
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/468))
### Bug Fix
* Fix boundary_worker overwriting worker generated auth token during
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/461))
## 1.1.10 (October 11, 2023)
### New and Improved
* Add support for Scope datasource
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/474))
* LDAP: Add support for maximum_page_size and dereference_aliases
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/453))
## 1.1.9 (July 19, 2023)
### New and Improved
* Add support for a storage bucket as a resource
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/417))
* Add option to enable session recording on a target resource
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/421))
* Update docs for host set plugin filters examples
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/420))
## 1.1.8 (June 13, 2023)
### New and Improved
* Add support for target default client port
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/379))
* Add support for using ldap primary auth method
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/392))
### Deprecations/Changes
* Deprecate `password_auth_method_login_name` & `password_auth_method_password` for Terraform Provider.
`password_auth_method_login_name` & `password_auth_method_password` fields have been set to deprecated
with a recommendation to use `auth_method_login_name` & `auth_method_password` fields instead.
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/392))
* Deprecate type field for `boundary_account_password`
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/396))
* Deprecate type field for `boundary_account_ldap`
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/400))
## 1.1.7 (May 12, 2023)
### Bug Fix
* Fix default auth method with recovery kms
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/406))
## 1.1.6 (May 5, 2023)
### New and Improved
@@ -195,13 +25,9 @@ Canonical reference for changes, improvements, and bugfixes for the Boundary Ter
## 1.1.4 (February 15, 2023)
### New and Improved
* Add support for worker egress and ingress filters
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/319))
* Add support for vault ssh certificate credential libraries
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/320))
* Add support for targets with address configurations
([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/308))
* Add support for worker egress and ingress filters ([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/319))
* Add support for vault ssh certificate credential libraries ([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/320))
* Add support for targets with address configurations ([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/308))
## 1.1.3 (November 29, 2022)
@@ -408,4 +234,4 @@ Update provider to handle new domain errors ([PR](https://github.com/hashicorp/t
## 0.1.0 (October 14, 2020)
Initial release!
Initial release!
+10
View File
@@ -0,0 +1,10 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
FROM golang:1.20
WORKDIR /go/src/terraform-provider-boundary
COPY . .
RUN go get -d -v ./...
RUN go install -v ./...
+22 -33
View File
@@ -1,14 +1,14 @@
default: testacc
GOOS=$(shell go env GOOS)
GOARCH=$(shell go env GOARCH)
INSTALL_PATH=~/.local/share/terraform/plugins/repo.anhonesthost.net/cybercovellc/threshold/0.0.1/linux_$(GOARCH)
INSTALL_PATH=~/.local/share/terraform/plugins/localhost/providers/boundary/0.0.1/linux_$(GOARCH)
BUILD_ALL_PATH=${PWD}/bin
ifeq ($(GOOS), darwin)
INSTALL_PATH=~/Library/Application\ Support/io.terraform/plugins/repo.anhonesthost.net/cybercovellc/threshold/0.0.1/darwin_$(GOARCH)
INSTALL_PATH=~/Library/Application\ Support/io.terraform/plugins/localhost/providers/boundary/0.0.1/darwin_$(GOARCH)
endif
ifeq ($(GOOS), "windows")
INSTALL_PATH=%APPDATA%/HashiCorp/Terraform/plugins/repo.anhonesthost.net/cybercovellc/threshold/0.0.1/windows_$(GOARCH)
INSTALL_PATH=%APPDATA%/HashiCorp/Terraform/plugins/localhost/providers/boundary/0.0.1/windows_$(GOARCH)
endif
REGISTRY_NAME?=docker.io/hashicorpboundary
@@ -18,45 +18,45 @@ DOCKER_ARGS ?= -d
PG_OPTS ?=
TEST_DB_PORT ?= 5432
BOUNDARY_VERSION = $(shell go mod edit -json | jq -r '.["Require"][] | select(.Path=="github.com/hashicorp/boundary") | .["Version"]')
GOPATH ?= $(abspath ~/go)
GOPATH ?= ~/go
GOMODCACHE ?= $(GOPATH)/pkg/mod
tools:
go generate -tags tools tools/tools.go
go install github.com/hashicorp/copywrite@v0.15.0
# Unit tests: only the tests that do not need a running Threshold/Boundary
# controller. Everything else is an acceptance test, run via `make testacc`.
UNIT_TESTS = ^(TestProvider|TestSetFromVaultCredentialStoreResponseMapReadsWorkerFilterFromAttributes|TestAccTargetWithAddress_HostSourceAndAddressConflict|TestValidateTargetAliasScope|TestAliasSuffixFromScopeResponseMap|TestValidateAliasSuffixScope)$$
fmtcheck:
echo "Placeholder"
test:
go test ./... -count=1 -run '$(UNIT_TESTS)'
VERSION ?= $(shell cat version/VERSION)
# Cross-compile release binaries for linux/darwin/windows x amd64/arm64 into dist/
.PHONY: build-all
build-all:
./scripts/build-release.sh $(VERSION)
echo "Placeholder"
# Run acceptance tests
testacc:
./test.sh
TF_ACC=1 go test ./... -v $(TESTARGS) -timeout 120m
testacc-ci:
git config --global --add url."git@github.com:".insteadOf "https://github.com/"
TF_ACC=1 ~/.go/bin/go test ./... -v $(TESTARGS) -timeout 120m
install-go: ~/.go/bin/go
~/.go/bin/go:
./ci/goinstall.sh
dev:
GOOS=${GOOS} GOARCH=${GOARCH} ./scripts/plugins.sh
mkdir -p $(INSTALL_PATH)
go build -o $(INSTALL_PATH)/terraform-provider-threshold main.go
go build -o $(INSTALL_PATH)/terraform-provider-boundary main.go
dev-no-plugins:
mkdir -p $(INSTALL_PATH)
go build -o $(INSTALL_PATH)/terraform-provider-threshold main.go
go build -o $(INSTALL_PATH)/terraform-provider-boundary main.go
all:
mkdir -p $(BUILD_ALL_PATH)
GOOS=darwin go build -o $(BUILD_ALL_PATH)/terraform-provider-threshold_darwin-amd64 main.go
GOOS=windows go build -o $(BUILD_ALL_PATH)/terraform-provider-threshold_windows-amd64 main.go
GOOS=linux go build -o $(BUILD_ALL_PATH)/terraform-provider-threshold_linux-amd64 main.go
GOOS=darwin go build -o $(BUILD_ALL_PATH)/terraform-provider-boundary_darwin-amd64 main.go
GOOS=windows go build -o $(BUILD_ALL_PATH)/terraform-provider-boundary_windows-amd64 main.go
GOOS=linux go build -o $(BUILD_ALL_PATH)/terraform-provider-boundary_linux-amd64 main.go
docs:
go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs
@@ -90,14 +90,3 @@ test-database-down:
docker rm -v boundary-sql-tests || true
.PHONY: testacc tools docs test-database-up test-database-down
.PHONY: copywrite
copywrite:
copywrite headers
.PHONY: fmt
fmt:
gofumpt -w $$(find . -name '*.go')
.PHONY: gen
gen: docs copywrite fmt
-15
View File
@@ -1,15 +0,0 @@
terraform-provider-threshold
This project is a community fork of terraform-provider-boundary
(https://github.com/hashicorp/terraform-provider-boundary),
Copyright (c) HashiCorp, Inc. / IBM Corp., licensed under the Mozilla Public
License, version 2.0. The original copyright and license notices are retained in
LICENSE and in the source file headers.
Modifications in this fork (Go module path, imports of the Threshold api/sdk
modules, product wording, removal of HashiCorp release tooling, CI) are made by
CyberCove LLC and its contributors and are likewise made available under MPL-2.0.
This fork is a community project for Threshold, a community fork of Boundary CE.
It is not affiliated with, endorsed by, or supported by HashiCorp or IBM.
"Boundary", "Terraform" and "HashiCorp" are trademarks of their respective owners.
+44 -135
View File
@@ -1,135 +1,59 @@
# Terraform Provider for Threshold
![](boundary.png)
A community fork of [hashicorp/terraform-provider-boundary](https://github.com/hashicorp/terraform-provider-boundary)
for [Threshold](https://repo.anhonesthost.net/CyberCoveLLC/threshold), itself a community fork of Boundary CE.
Terraform Provider Boundary
==================
## About this fork
Available in the [Terraform Registry](https://registry.terraform.io/providers/hashicorp/boundary/latest).
- **Upstream:** `hashicorp/terraform-provider-boundary`, licensed MPL-2.0 (see [LICENSE](LICENSE) and [NOTICE](NOTICE)).
This fork is not affiliated with, endorsed by, or supported by HashiCorp or IBM.
- **What changed:** the Go module is `repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold`,
it builds against the Threshold `api` and `sdk` Go modules
(`repo.anhonesthost.net/CyberCoveLLC/threshold/api` and `.../sdk`), and product wording in docs and
schema descriptions says "Threshold". Release plumbing for HashiCorp's CRT/registry pipeline was removed.
- **Compatibility:** resource and data source type names (`boundary_*`), provider arguments (`addr`,
`auth_method_id`, ...) and the `BOUNDARY_*` environment variables are unchanged, so existing Terraform
configurations keep working. Because the resource types start with `boundary_`, Terraform infers the
provider local name `boundary`; keep `boundary = { source = ... }` in `required_providers`.
- **Distribution:** there is no public registry for this provider. Install it from a release zip or a local build
as described below. Its address is `repo.anhonesthost.net/cybercovellc/threshold`.
Requirements
------------
## Requirements
- [Terraform](https://www.terraform.io/downloads.html) >= 0.12.x
- [Go](https://golang.org/doc/install) >= 1.20
- [Terraform](https://www.terraform.io/downloads.html) >= 0.13.x (or OpenTofu)
- [Go](https://golang.org/doc/install) >= 1.26 (see `go.mod`), with `GOPRIVATE=repo.anhonesthost.net` if the Threshold modules are not publicly fetchable
## Installing
Provider address: `repo.anhonesthost.net/cybercovellc/threshold`. Version `0.1.0` is used in the examples.
### 1. Build locally
```sh
export GOPRIVATE=repo.anhonesthost.net
make build-all VERSION=0.1.0 # or: scripts/build-release.sh 0.1.0 dist
# single platform, no zip:
go build -o terraform-provider-threshold .
# with goreleaser installed:
goreleaser build --snapshot --clean --single-target
```
`make build-all` writes `dist/terraform-provider-threshold_<version>_<os>_<arch>.zip` for linux, darwin and
windows on amd64 and arm64 (needs `zip`). Never commit `dist/`.
### 2. Filesystem mirror (recommended for shared hosts)
Terraform's `provider_installation` can serve providers from a local directory. Layout (unpacked form):
```
/usr/share/terraform/providers/
repo.anhonesthost.net/cybercovellc/threshold/0.1.0/linux_amd64/terraform-provider-threshold_v0.1.0
```
or the packed form: `.../repo.anhonesthost.net/cybercovellc/threshold/terraform-provider-threshold_0.1.0_linux_amd64.zip`.
Then in `~/.terraformrc` (`%APPDATA%\terraform.rc` on Windows):
```hcl
provider_installation {
filesystem_mirror {
path = "/usr/share/terraform/providers"
include = ["repo.anhonesthost.net/cybercovellc/threshold"]
}
direct {
exclude = ["repo.anhonesthost.net/cybercovellc/threshold"]
}
}
```
and in your configuration:
```hcl
terraform {
required_providers {
boundary = {
source = "repo.anhonesthost.net/cybercovellc/threshold"
version = "0.1.0"
}
}
}
provider "boundary" {
addr = "https://threshold.example.com:9200"
# auth_method_id / auth_method_login_name / auth_method_password, token, or recovery_kms_hcl
}
```
### 3. dev_overrides (development)
Build the binary into a directory and point Terraform at it (`terraform init` is not needed, and `terraform plan`
prints a warning):
```hcl
# ~/.terraformrc
provider_installation {
dev_overrides {
"repo.anhonesthost.net/cybercovellc/threshold" = "/home/you/go/bin" # directory holding terraform-provider-threshold
}
direct {}
}
```
`go install .` places `terraform-provider-threshold` in `$GOPATH/bin`. `make dev` installs a `0.0.1` build
into Terraform's implied local mirror under the same address.
## Building The Provider
Building The Provider
---------------------
1. Clone the repository
1. Enter the repository directory
1. Build with `go build -o terraform-provider-threshold .` (or `make dev`, which also builds the optional built-in KMS plugins from `plugins/kms/mains`)
1. Build the provider using `make dev`. This will place the provider onto your system in a [Terraform 0.13-compliant](https://www.terraform.io/upgrade-guides/0-13.html#in-house-providers) manner.
## Adding Dependencies
You'll need to ensure that your Terraform file contains the information necessary to find the plugin when running `terraform init`. `make dev` will use a version number of 0.0.1, so the following block will work:
```hcl
terraform {
required_providers {
boundary = {
source = "localhost/providers/boundary"
version = "0.0.1"
}
}
}
```
Adding Dependencies
---------------------
This provider uses [Go modules](https://github.com/golang/go/wiki/Modules).
Please see the Go documentation for the most up to date information about using Go modules.
To add a new dependency `github.com/author/dependency` to your Terraform provider:
```shell
```
go get github.com/author/dependency
go mod tidy
```
Then commit the changes to `go.mod` and `go.sum`.
## Developing the Provider
Developing the Provider
---------------------------
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above).
To compile the provider, run `go install`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
Unit tests (no controller needed) run with `make test`. All other tests are acceptance tests and require a running
Threshold/Boundary-compatible controller (`BOUNDARY_ADDR`, `BOUNDARY_AUTH_TOKEN`, `BOUNDARY_DEV_RECOVERY_KEY`) and, for the
Vault tests, Docker. In order to run the full suite of Acceptance tests,
In order to run the full suite of Acceptance tests,
a postgres docker container must be started first:
```sh
@@ -146,42 +70,27 @@ $ make testacc
```
For more details on the docker image and troubleshooting see the
[Threshold contributing guide](https://repo.anhonesthost.net/CyberCoveLLC/threshold).
[boundary testing doc](https://github.com/hashicorp/boundary/blob/main/CONTRIBUTING.md#testing).
## Debugging the provider
If you're using vscode, this provider has delve debugging baked into the [.vscode](https://repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold/tree/main/.vscode) directory. To debug you can find instructions [here.](https://dev.to/drewmullen/vscode-terraform-provider-development-setup-debugging-6bn#usage)
## Generating Docs
This provider uses the [terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs/) tool to generate documentation. Each resource and data source requires a set of examples [examples](https://repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold/tree/main/examples) then you execute a binary to generate the docs which are placed in [./docs](https://repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold/tree/main/docs). Optionally, you can specify your own [templates](https://repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold/tree/main/templates) for a resource or data source if you want to add custom information (example: [data "boundary_scope"](https://repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold/blob/main/templates/data-sources/scope.md.tmpl#L11))
### New Resources & Data Sources (documentation templates)
If you're adding a new resource or a data source, you must include a documentation template for your new R/DS in [./templates](https://repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold/tree/main/templates) directory. This provider uses the [terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs/) tool to generate documentation. For full details see the link.
### Documentation Examples for Resources & Data Sources
Examples are required for all resources and data sources. This provider uses the [terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs/) tool to generate documentation. To add examples, add a new file to the [./examples](https://repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold/tree/main/examples) directory or update the existing files. Next make sure the corresponding template in [./templates](https://repo.anhonesthost.net/CyberCoveLLC/terraform-provider-threshold/tree/main/templates) directory references this example.
### Generating
Generating Docs
----------------------
From the root of the repo run:
```shell
```
go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs
```
## Using the provider
Please see our detailed docs for individual resource usage. Below is a complex example using the provider to configure all resource types available:
Using the provider
----------------------
Please see our detailed docs for individual resource usage. Below is a complex example using the Boundary provider to configure all resource types available:
```hcl
provider "boundary" {
addr = "http://127.0.0.1:9200"
auth_method_id = "ampw_1234567890" # changeme
auth_method_login_name = "myuser" # changeme
auth_method_password = "passpass" # changeme
addr = "http://127.0.0.1:9200"
auth_method_id = "ampw_1234567890" # changeme
password_auth_method_login_name = "myuser" # changeme
password_auth_method_password = "passpass" # changeme
}
variable "users" {
@@ -231,7 +140,7 @@ resource "boundary_user" "users" {
scope_id = boundary_scope.corp.id
}
// organization level group for readonly users
// organization level group for readonly users
resource "boundary_group" "readonly" {
name = "readonly"
description = "Organization group for readonly users"
@@ -244,7 +153,7 @@ resource "boundary_role" "organization_readonly" {
name = "readonly"
description = "Read-only role"
principal_ids = [boundary_group.readonly_users.id]
grant_strings = ["ids=*;type=*;actions=read"]
grant_strings = ["id=*;type=*;actions=read"]
scope_id = boundary_scope.corp.id
}
@@ -255,7 +164,7 @@ resource "boundary_role" "organization_admin" {
principal_ids = concat(
[for user in boundary_user.user: user.id]
)
grant_strings = ["ids=*;type=*;actions=create,read,update,delete"]
grant_strings = ["id=*;type=*;actions=create,read,update,delete"]
scope_id = boundary_scope.corp.id
}
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

+121
View File
@@ -0,0 +1,121 @@
#!/bin/bash
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
set -e
VERSION="1.19.1"
[ -z "$GOROOT" ] && GOROOT="$HOME/.go"
[ -z "$GOPATH" ] && GOPATH="$HOME/go"
OS="$(uname -s)"
ARCH="$(uname -m)"
case $OS in
"Linux")
case $ARCH in
"x86_64")
ARCH=amd64
;;
"aarch64")
ARCH=arm64
;;
"armv6")
ARCH=armv6l
;;
"armv8")
ARCH=arm64
;;
.*386.*)
ARCH=386
;;
esac
PLATFORM="linux-$ARCH"
;;
"Darwin")
PLATFORM="darwin-amd64"
;;
esac
print_help() {
echo "Usage: bash goinstall.sh OPTIONS"
echo -e "\nOPTIONS:"
echo -e " --remove\tRemove currently installed version"
echo -e " --version\tSpecify a version number to install"
}
if [ -n "`$SHELL -c 'echo $ZSH_VERSION'`" ]; then
shell_profile="zshrc"
elif [ -n "`$SHELL -c 'echo $BASH_VERSION'`" ]; then
shell_profile="bashrc"
fi
if [ "$1" == "--remove" ]; then
rm -rf "$GOROOT"
if [ "$OS" == "Darwin" ]; then
sed -i "" '/# GoLang/d' "$HOME/.${shell_profile}"
sed -i "" '/export GOROOT/d' "$HOME/.${shell_profile}"
sed -i "" '/$GOROOT\/bin/d' "$HOME/.${shell_profile}"
sed -i "" '/export GOPATH/d' "$HOME/.${shell_profile}"
sed -i "" '/$GOPATH\/bin/d' "$HOME/.${shell_profile}"
else
sed -i '/# GoLang/d' "$HOME/.${shell_profile}"
sed -i '/export GOROOT/d' "$HOME/.${shell_profile}"
sed -i '/$GOROOT\/bin/d' "$HOME/.${shell_profile}"
sed -i '/export GOPATH/d' "$HOME/.${shell_profile}"
sed -i '/$GOPATH\/bin/d' "$HOME/.${shell_profile}"
fi
echo "Go removed."
exit 0
elif [ "$1" == "--help" ]; then
print_help
exit 0
elif [ "$1" == "--version" ]; then
if [ -z "$2" ]; then # Check if --version has a second positional parameter
echo "Please provide a version number for: $1"
else
VERSION=$2
fi
elif [ ! -z "$1" ]; then
echo "Unrecognized option: $1"
exit 1
fi
if [ -d "$GOROOT" ]; then
echo "The Go install directory ($GOROOT) already exists. Exiting."
exit 1
fi
PACKAGE_NAME="go$VERSION.$PLATFORM.tar.gz"
TEMP_DIRECTORY=$(mktemp -d)
echo "Downloading $PACKAGE_NAME ..."
if hash wget 2>/dev/null; then
wget https://storage.googleapis.com/golang/$PACKAGE_NAME -O "$TEMP_DIRECTORY/go.tar.gz"
else
curl -o "$TEMP_DIRECTORY/go.tar.gz" https://storage.googleapis.com/golang/$PACKAGE_NAME
fi
if [ $? -ne 0 ]; then
echo "Download failed! Exiting."
exit 1
fi
echo "Extracting File..."
mkdir -p "$GOROOT"
tar -C "$GOROOT" --strip-components=1 -xzf "$TEMP_DIRECTORY/go.tar.gz"
touch "$HOME/.${shell_profile}"
{
echo '# GoLang'
echo "export GOROOT=${GOROOT}"
echo 'export PATH=$GOROOT/bin:$PATH'
echo "export GOPATH=$GOPATH"
echo 'export PATH=$GOPATH/bin:$PATH'
} >> "$HOME/.${shell_profile}"
mkdir -p $GOPATH/{src,pkg,bin}
echo -e "\nGo $VERSION was installed into $GOROOT.\nMake sure to relogin into your shell or run:"
echo -e "\n\tsource $HOME/.${shell_profile}\n\nto update your environment variables."
echo "Tip: Opening a new terminal window usually just works. :)"
rm -f "$TEMP_DIRECTORY/go.tar.gz"
-47
View File
@@ -1,47 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_account Data Source - terraform-provider-boundary"
subcategory: ""
description: |-
The boundary_account data source allows you to find a Threshold account.
---
# boundary_account (Data Source)
The boundary_account data source allows you to find a Threshold account.
## Example Usage
```terraform
# Retrieve the ID of a Threshold account
data "boundary_account" "admin" {
name = "admin"
auth_method_id = "ampw_1234567890"
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `auth_method_id` (String) The auth method ID that will be queried for the account.
- `name` (String) The name of the account to retrieve.
### Read-Only
- `description` (String) The description of the retrieved account.
- `id` (String) The ID of the retrieved account.
- `scope` (List of Object) (see [below for nested schema](#nestedatt--scope))
- `type` (String) The type of the account
<a id="nestedatt--scope"></a>
### Nested Schema for `scope`
Read-Only:
- `description` (String)
- `id` (String)
- `name` (String)
- `parent_scope_id` (String)
- `type` (String)
-60
View File
@@ -1,60 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_auth_method Data Source - terraform-provider-boundary"
subcategory: ""
description: |-
The boundary_auth_method data source allows you to find a Threshold auth method.
---
# boundary_auth_method (Data Source)
The boundary_auth_method data source allows you to find a Threshold auth method.
## Example Usage
```terraform
# Retrieve an auth method from the global scope
data "boundary_auth_method" "auth_method" {
name = "password_auth_method"
}
# Auth method from a org scope
data "boundary_scope" "org" {
name = "my-org"
scope_id = "global"
}
data "boundary_auth_method" "auth_method" {
name = "password_auth_method"
scope_id = data.boundary_scope.org.id
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `name` (String) The name of the auth method to retrieve.
### Optional
- `scope_id` (String) The scope ID in which the resource is created. Defaults `global` if unset.
### Read-Only
- `description` (String) The description of the retrieved auth method.
- `id` (String) The ID of the retrieved auth method.
- `scope` (List of Object) (see [below for nested schema](#nestedatt--scope))
- `type` (String) The type of the auth method
<a id="nestedatt--scope"></a>
### Nested Schema for `scope`
Read-Only:
- `description` (String)
- `id` (String)
- `name` (String)
- `parent_scope_id` (String)
- `type` (String)
-60
View File
@@ -1,60 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_group Data Source - terraform-provider-boundary"
subcategory: ""
description: |-
The boundary_group data source allows you to find a Threshold group.
---
# boundary_group (Data Source)
The boundary_group data source allows you to find a Threshold group.
## Example Usage
```terraform
# Retrieve a user from the global scope
data "boundary_group" "global_group" {
name = "admin"
}
# User from an org scope
data "boundary_scope" "org" {
name = "org"
scope_id = "global"
}
data "boundary_group" "org_group" {
name = "username"
scope_id = data.boundary_scope.org.id
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `name` (String) The name of the group to retrieve.
### Optional
- `scope_id` (String) The scope ID in which the resource is created. Defaults `global` if unset.
### Read-Only
- `description` (String) The description of the retrieved group.
- `id` (String) The ID of the retrieved group.
- `member_ids` (Set of String) Resource IDs for group members, these are most likely boundary users.
- `scope` (List of Object) (see [below for nested schema](#nestedatt--scope))
<a id="nestedatt--scope"></a>
### Nested Schema for `scope`
Read-Only:
- `description` (String)
- `id` (String)
- `name` (String)
- `parent_scope_id` (String)
- `type` (String)
-62
View File
@@ -1,62 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_role Data Source - terraform-provider-boundary"
subcategory: ""
description: |-
The boundary_role data source allows you to find a Threshold role.
---
# boundary_role (Data Source)
The boundary_role data source allows you to find a Threshold role.
## Example Usage
```terraform
# Role from the global scope
data "boundary_role" "global_role" {
name = "global_role_one"
}
# Role from an org scope
data "boundary_scope" "org" {
name = "org_one"
scope_id = "global"
}
data "boundary_role" "org_role" {
name = "org_role_one"
scope_id = data.boundary_scope.org.id
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `name` (String) The name of the role to retrieve.
### Optional
- `scope_id` (String) The scope ID in which the resource is created. Defaults `global` if unset.
### Read-Only
- `description` (String) The description of the retrieved role.
- `grant_scope_ids` (Set of String) The list of scope IDs for the role's grants.
- `grant_strings` (Set of String) The list of stringified grants for the role.
- `id` (String) The ID of the retrieved role.
- `principal_ids` (Set of String) The list of principal (user or group) IDs added as principals on the role.
- `scope` (List of Object) (see [below for nested schema](#nestedatt--scope))
<a id="nestedatt--scope"></a>
### Nested Schema for `scope`
Read-Only:
- `description` (String)
- `id` (String)
- `name` (String)
- `parent_scope_id` (String)
- `type` (String)
-39
View File
@@ -1,39 +0,0 @@
---
page_title: "boundary_scope Data Source - terraform-provider-boundary"
subcategory: ""
description: |-
The scope data source allows you to discover an existing Threshold scope by name.
---
# boundary_scope (Data Source)
The scope data source allows you to discover an existing Threshold scope by name.
Please note that the Global scope will always have an id of "global", and does not need to be discovered with this data source.
## Example Usage
```terraform
# Retrieve the ID of a Threshold project
data "boundary_scope" "org" {
name = "SecOps"
scope_id = "global"
}
data "boundary_scope" "project" {
name = "2111"
scope_id = data.boundary_scope.id
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `name` (String) The name of the scope to retrieve.
- `scope_id` (String) The parent scope ID that will be queried for the scope.
### Read-Only
- `description` (String) The description of the retrieved scope.
- `id` (String) The ID of the retrieved scope.
-63
View File
@@ -1,63 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_user Data Source - terraform-provider-boundary"
subcategory: ""
description: |-
The user data source allows you to find a Threshold user.
---
# boundary_user (Data Source)
The user data source allows you to find a Threshold user.
## Example Usage
```terraform
# Retrieve a user from the global scope
data "boundary_user" "global_scope_admin" {
name = "admin"
}
# User from a org scope
data "boundary_user" "org_user" {
name = "username"
scope_id = data.boundary_scope.org.id
}
data "boundary_scope" "org" {
name = "my-org"
scope_id = data.boundary_scope.org.id
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `name` (String) The username to search for.
### Optional
- `scope_id` (String) The scope ID in which the resource is created. Defaults `global` if unset.
### Read-Only
- `account_ids` (Set of String) Account ID's to associate with this user resource.
- `authorized_actions` (List of String) A list of actions that the worker is entitled to perform.
- `description` (String) The user description.
- `id` (String) The ID of the user.
- `login_name` (String) Login name for user.
- `primary_account_id` (String) Primary account ID.
- `scope` (List of Object) (see [below for nested schema](#nestedatt--scope))
<a id="nestedatt--scope"></a>
### Nested Schema for `scope`
Read-Only:
- `description` (String)
- `id` (String)
- `name` (String)
- `parent_scope_id` (String)
- `type` (String)
+22 -24
View File
@@ -1,13 +1,13 @@
---
page_title: "Provider: Threshold"
page_title: "Provider: Boundary"
subcategory: ""
description: |-
Terraform provider for configuring Threshold.
Terraform provider for configuring Boundary.
---
# Threshold Provider
# Boundary Provider
Terraform provider for configuring Threshold.
Terraform provider for configuring Boundary.
## Example Usage
@@ -15,23 +15,23 @@ Do not keep your authentication password in HCL for production environments, use
```terraform
provider "boundary" {
addr = "http://127.0.0.1:9200"
auth_method_id = "ampw_1234567890" # changeme
auth_method_login_name = "myuser" # changeme
auth_method_password = "passpass" # changeme
addr = "http://127.0.0.1:9200"
auth_method_id = "ampw_1234567890" # changeme
password_auth_method_login_name = "myuser" # changeme
password_auth_method_password = "passpass" # changeme
}
provider "boundary" {
addr = "http://127.0.0.1:9200"
auth_method_login_name = "myuser"
auth_method_password = "passpass"
addr = "http://127.0.0.1:9200"
password_auth_method_login_name = "myuser"
password_auth_method_password = "passpass"
}
provider "boundary" {
addr = "http://127.0.0.1:9200"
auth_method_login_name = "myuser"
auth_method_password = "passpass"
scope_id = "s_1234567890"
addr = "http://127.0.0.1:9200"
password_auth_method_login_name = "myuser"
password_auth_method_password = "passpass"
scope_id = "s_1234567890"
}
```
@@ -40,17 +40,15 @@ provider "boundary" {
### Required
- `addr` (String) The base url of the Threshold API, e.g. "http://127.0.0.1:9200". If not set, it will be read from the "BOUNDARY_ADDR" env var.
- `addr` (String) The base url of the Boundary API, e.g. "http://127.0.0.1:9200". If not set, it will be read from the "BOUNDARY_ADDR" env var.
### Optional
- `auth_method_id` (String) The auth method ID e.g. ampw_1234567890. If not set, the default auth method for the given scope ID will be used.
- `auth_method_login_name` (String) The auth method login name for password-style or ldap-style auth methods
- `auth_method_password` (String) The auth method password for password-style or ldap-style auth methods
- `password_auth_method_login_name` (String, Deprecated) The auth method login name for password-style auth methods
- `password_auth_method_password` (String, Deprecated) The auth method password for password-style auth methods
- `plugin_execution_dir` (String) Specifies a directory that the Threshold provider can use to write and execute its built-in plugins.
- `auth_method_id` (String) The auth method ID e.g. ampw_1234567890
- `password_auth_method_login_name` (String) The auth method login name for password-style auth methods
- `password_auth_method_password` (String) The auth method password for password-style auth methods
- `plugin_execution_dir` (String) Specifies a directory that the Boundary provider can use to write and execute its built-in plugins.
- `recovery_kms_hcl` (String) Can be a heredoc string or a path on disk. If set, the string/file will be parsed as HCL and used with the recovery KMS mechanism. While this is set, it will override any other authentication information; the KMS mechanism will always be used. See Boundary's KMS docs for examples: https://boundaryproject.io/docs/configuration/kms
- `scope_id` (String) The scope ID for the default auth method.
- `tls_insecure` (Boolean) When set to true, does not validate the Threshold API endpoint certificate
- `token` (String) The Threshold token to use, as a string or path on disk containing just the string. If set, the token read here will be used in place of authenticating with the auth method specified in "auth_method_id", although the recovery KMS mechanism will still override this. Can also be set with the BOUNDARY_TOKEN environment variable.
- `tls_insecure` (Boolean) When set to true, does not validate the Boundary API endpoint certificate
- `token` (String) The Boundary token to use, as a string or path on disk containing just the string. If set, the token read here will be used in place of authenticating with the auth method specified in "auth_method_id", although the recovery KMS mechanism will still override this. Can also be set with the BOUNDARY_TOKEN environment variable.
+2
View File
@@ -30,3 +30,5 @@ Deprecated: use `boundary_account_password` instead.
### Read-Only
- `id` (String) The ID of the account.
-78
View File
@@ -1,78 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_account_ldap Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The account resource allows you to configure a Threshold account.
---
# boundary_account_ldap (Resource)
The account resource allows you to configure a Threshold account.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
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
}
resource "boundary_account_ldap" "einstein" {
auth_method_id = boundary_auth_method_ldap.forumsys_ldap.id
login_name = "einstein"
name = "einstein"
}
resource "boundary_user" "einstein" {
name = "einstein"
description = "User resource for einstein"
scope_id = "global"
account_ids = [boundary_account_ldap.einstein.id]
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `auth_method_id` (String) The resource ID for the auth method.
### Optional
- `description` (String) The account description.
- `login_name` (String) The login name for this account.
- `name` (String) The account name. Defaults to the resource name.
- `type` (String, Deprecated) The resource type.
### Read-Only
- `id` (String) The ID of the account.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_account_ldap.foo <my-id>
```
+4 -2
View File
@@ -3,12 +3,12 @@
page_title: "boundary_account_oidc Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The account resource allows you to configure a Threshold account.
The account resource allows you to configure a Boundary account.
---
# boundary_account_oidc (Resource)
The account resource allows you to configure a Threshold account.
The account resource allows you to configure a Boundary account.
@@ -29,3 +29,5 @@ The account resource allows you to configure a Threshold account.
### Read-Only
- `id` (String) The ID of the account.
+4 -5
View File
@@ -3,12 +3,12 @@
page_title: "boundary_account_password Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The account resource allows you to configure a Threshold account.
The account resource allows you to configure a Boundary account.
---
# boundary_account_password (Resource)
The account resource allows you to configure a Threshold account.
The account resource allows you to configure a Boundary account.
## Example Usage
@@ -28,6 +28,7 @@ resource "boundary_auth_method" "password" {
resource "boundary_account_password" "jeff" {
auth_method_id = boundary_auth_method.password.id
type = "password"
login_name = "jeff"
password = "$uper$ecure"
}
@@ -39,6 +40,7 @@ resource "boundary_account_password" "jeff" {
### Required
- `auth_method_id` (String) The resource ID for the auth method.
- `type` (String) The resource type.
### Optional
@@ -46,7 +48,6 @@ resource "boundary_account_password" "jeff" {
- `login_name` (String) The login name for this account.
- `name` (String) The account name. Defaults to the resource name.
- `password` (String, Sensitive) The account password. Only set on create, changes will not be reflected when updating account.
- `type` (String, Deprecated) The resource type.
### Read-Only
@@ -56,8 +57,6 @@ resource "boundary_account_password" "jeff" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_account_password.foo <my-id>
```
-132
View File
@@ -1,132 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_alias_target Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The target alias resource allows you to configure a Threshold target alias at project and global scopes.
---
# boundary_alias_target (Resource)
The target alias resource allows you to configure a Threshold target alias at project and global scopes.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "global scope"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first scope!"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_scope_alias_suffix" "org" {
scope_id = boundary_scope.org.id
alias_suffix = "org"
}
resource "boundary_scope_alias_suffix" "project" {
scope_id = boundary_scope.project.id
alias_suffix = "projectone"
}
resource "boundary_host_catalog_static" "foo" {
name = "test"
description = "test catalog"
scope_id = boundary_scope.project.id
}
resource "boundary_host_static" "foo" {
name = "foo"
host_catalog_id = boundary_host_catalog_static.foo.id
address = "10.0.0.1"
}
resource "boundary_host_static" "bar" {
name = "bar"
host_catalog_id = boundary_host_catalog_static.foo.id
address = "127.0.0.1"
}
resource "boundary_host_set_static" "foo" {
name = "foo"
host_catalog_id = boundary_host_catalog_static.foo.id
host_ids = [
boundary_host_static.foo.id,
boundary_host_static.bar.id,
]
}
resource "boundary_target" "foo" {
name = "foo"
description = "Foo target"
type = "tcp"
default_port = "22"
scope_id = boundary_scope.project.id
host_source_ids = [
boundary_host_set_static.foo.id,
]
}
resource "boundary_alias_target" "example_alias_target" {
name = "example_alias_target"
description = "Example alias to target foo using host boundary_host_static.bar"
scope_id = "global"
value = "example.bar.foo.boundary"
destination_id = boundary_target.foo.id
authorize_session_host_id = boundary_host_static.bar.id
}
resource "boundary_alias_target" "example_alias_target_project" {
name = "example_alias_target_project"
description = "Example project-scoped alias to target foo"
scope_id = boundary_scope.project.id
value = "prodops.projectone.org"
destination_id = boundary_target.foo.id
authorize_session_host_id = boundary_host_static.bar.id
depends_on = [
boundary_scope_alias_suffix.org,
boundary_scope_alias_suffix.project,
]
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `scope_id` (String) The scope ID. Org scopes are not supported for aliases.
- `value` (String) The value of the alias.
### Optional
- `authorize_session_host_id` (String) The host id to pass to Threshold when performing an authorize session action.
- `description` (String) The alias description.
- `destination_id` (String) The destination of the alias.
- `name` (String) The alias name. Defaults to the resource name.
- `type` (String) The type of alias; hardcoded.
### Read-Only
- `id` (String) The ID of the account.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_alias_target.example_alias_target <my-id>
terraform import boundary_alias_target.example_alias_target_project <my-id>
```
+2 -11
View File
@@ -3,12 +3,12 @@
page_title: "boundary_auth_method Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The auth method resource allows you to configure a Threshold auth_method.
The auth method resource allows you to configure a Boundary auth_method.
---
# boundary_auth_method (Resource)
The auth method resource allows you to configure a Threshold auth_method.
The auth method resource allows you to configure a Boundary auth_method.
## Example Usage
@@ -25,12 +25,6 @@ resource "boundary_auth_method" "password" {
scope_id = boundary_scope.org.id
type = "password"
}
resource "boundary_auth_method" "password_is_primary" {
scope_id = boundary_scope.org.id
type = "password"
is_primary_for_scope = true
}
```
<!-- schema generated by tfplugindocs -->
@@ -44,7 +38,6 @@ resource "boundary_auth_method" "password_is_primary" {
### Optional
- `description` (String) The auth method description.
- `is_primary_for_scope` (Boolean) When true, makes this auth method the primary auth method for the scope in which it resides.
- `min_login_name_length` (Number, Deprecated) The minimum login name length.
- `min_password_length` (Number, Deprecated) The minimum password length.
- `name` (String) The auth method name. Defaults to the resource name.
@@ -57,8 +50,6 @@ resource "boundary_auth_method" "password_is_primary" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_auth_method.foo <my-id>
```
-90
View File
@@ -1,90 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_auth_method_ldap Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The LDAP auth method resource allows you to configure a Threshold auth_method_ldap.
---
# boundary_auth_method_ldap (Resource)
The LDAP auth method resource allows you to configure a Threshold auth_method_ldap.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
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
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `scope_id` (String) The scope ID.
### Optional
- `account_attribute_maps` (List of String) Account attribute maps fullname and email.
- `anon_group_search` (Boolean) Use anon bind when performing LDAP group searches (optional).
- `bind_dn` (String) The distinguished name of entry to bind when performing user and group searches (optional).
- `bind_password` (String) The password to use along with bind-dn performing user and group searches (optional).
- `bind_password_hmac` (String) The HMAC of the bind password returned by the Threshold controller, which is used for comparison after initial setting of the value.
- `certificates` (List of String) 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). This may be specified multiple times
- `client_certificate` (String) 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) PEM-encoded X.509 client certificate key in PKCS #8, ASN.1 DER form used with the client certificate (optional).
- `client_certificate_key_hmac` (String) The HMAC of the client certificate key returned by the Threshold controller, which is used for comparison after initial setting of the value.
- `dereference_aliases` (String) Control how aliases are dereferenced when performing the search. Can be one of: NeverDerefAliases, DerefInSearching, DerefFindingBaseObj, and DerefAlways (optional).
- `description` (String) The auth method description.
- `discover_dn` (Boolean) Use anon bind to discover the bind DN of a user (optional).
- `enable_groups` (Boolean) Find the authenticated user's groups during authentication (optional).
- `group_attr` (String) The attribute that enumerates a user's group membership from entries returned by a group search (optional).
- `group_dn` (String) The base DN under which to perform group search.
- `group_filter` (String) A go template used to construct a LDAP group search filter (optional).
- `insecure_tls` (Boolean) Skip the LDAP server SSL certificate validation (optional) - insecure and use with caution.
- `is_primary_for_scope` (Boolean) When true, makes this auth method the primary auth method for the scope in which it resides. The primary auth method for a scope means the the user will be automatically created when they login using an LDAP account.
- `maximum_page_size` (Number) MaximumPageSize specifies a maximum search result size to use when retrieving the authenticated user's groups (optional).
- `name` (String) The auth method name. Defaults to the resource name.
- `start_tls` (Boolean) Issue StartTLS command after connecting (optional).
- `state` (String) Can be one of 'inactive', 'active-private', or 'active-public'. Defaults to active-public.
- `type` (String) The type of auth method; hardcoded.
- `upn_domain` (String) The userPrincipalDomain used to construct the UPN string for the authenticating user (optional).
- `urls` (List of String) The LDAP URLs that specify LDAP servers to connect to (required). May be specified multiple times.
- `use_token_groups` (Boolean) Use the Active Directory tokenGroups constructed attribute of the user to find the group memberships (optional).
- `user_attr` (String) The attribute on user entry matching the username passed when authenticating (optional).
- `user_dn` (String) The base DN under which to perform user search (optional).
- `user_filter` (String) A go template used to construct a LDAP user search filter (optional).
### Read-Only
- `id` (String) The ID of the auth method.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_auth_method_ldap.foo <my-id>
```
+3 -70
View File
@@ -3,71 +3,14 @@
page_title: "boundary_auth_method_oidc Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The OIDC auth method resource allows you to configure a Threshold auth_method_oidc.
The OIDC auth method resource allows you to configure a Boundary authmethodoidc.
---
# boundary_auth_method_oidc (Resource)
The OIDC auth method resource allows you to configure a Threshold auth_method_oidc.
The OIDC auth method resource allows you to configure a Boundary auth_method_oidc.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_auth_method_oidc" "vault" {
api_url_prefix = "https://XO-XO-XO-XO-XOXOXO.boundary.hashicorp.cloud:9200"
client_id = "eieio"
client_secret = "hvo_secret_XO"
description = "My Threshold OIDC Auth Method for Vault"
issuer = "https://XO-XO-XO-XO-XOXOXO.vault.hashicorp.cloud:8200/v1/identity/oidc/provider/my-provider"
scope_id = "global"
signing_algorithms = ["RS256"]
type = "oidc"
}
resource "boundary_auth_method_oidc" "oidc_with_one_prompt" {
api_url_prefix = "https://XO-XO-XO-XO-XOXOXO.boundary.hashicorp.cloud:9200"
client_id = "eieio"
client_secret = "hvo_secret_XO"
description = "My Threshold OIDC Auth Method With Prompt"
issuer = "https://sts.windows.net/TENANT_ID/"
scope_id = "global"
signing_algorithms = ["RS256"]
prompts = ["select_account"]
type = "oidc"
}
resource "boundary_auth_method_oidc" "oidc_with_multiple_prompts" {
api_url_prefix = "https://XO-XO-XO-XO-XOXOXO.boundary.hashicorp.cloud:9200"
client_id = "eieio"
client_secret = "hvo_secret_XO"
description = "My Threshold OIDC Auth Method With Multiple Prompts"
issuer = "https://sts.windows.net/TENANT_ID/"
scope_id = "global"
signing_algorithms = ["RS256"]
prompts = ["consent", "select_account"]
type = "oidc"
}
resource "boundary_auth_method_oidc" "oidc_with_azure_provider_type" {
api_url_prefix = "https://XO-XO-XO-XO-XOXOXO.boundary.hashicorp.cloud:9200"
client_id = "eieio"
client_secret = "hvo_secret_XO"
description = "My Threshold OIDC Auth Method For Azure Entra ID"
issuer = "https://sts.windows.net/TENANT_ID/"
scope_id = "global"
signing_algorithms = ["RS256"]
provider_type = "azure"
type = "oidc"
}
```
<!-- schema generated by tfplugindocs -->
## Schema
@@ -85,7 +28,7 @@ resource "boundary_auth_method_oidc" "oidc_with_azure_provider_type" {
- `claims_scopes` (List of String) Claims scopes.
- `client_id` (String) The client ID assigned to this auth method from the provider.
- `client_secret` (String, Sensitive) The secret key assigned to this auth method from the provider. Once set, only the hash will be kept and the original value can be removed from configuration.
- `client_secret_hmac` (String) The HMAC of the client secret returned by the Threshold controller, which is used for comparison after initial setting of the value.
- `client_secret_hmac` (String) The HMAC of the client secret returned by the Boundary controller, which is used for comparison after initial setting of the value.
- `description` (String) The auth method description.
- `disable_discovered_config_validation` (Boolean) Disables validation logic ensuring 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` (List of String) A list of CA certificates to trust when validating the IdP's token signatures.
@@ -93,8 +36,6 @@ resource "boundary_auth_method_oidc" "oidc_with_azure_provider_type" {
- `issuer` (String) The issuer corresponding to the provider, which must match the issuer field in generated tokens.
- `max_age` (Number) The max age to provide to the provider, indicating 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 will be used.
- `name` (String) The auth method name. Defaults to the resource name.
- `prompts` (List of String) The prompts passed to the identity provider to determine whether to prompt the end-user for reauthentication, account selection or consent. Please note the values passed are case-sensitive. The valid values are: `none`, `login`, `consent` and `select_account`.
- `provider_type` (String) The provider type that identifies the provider associated with the auth method. When set, it enables provider specific behavior during authentication. When unset, no provider specific behavior is applied. Please note the value passed is case-sensitive. The valid values are: `azure`.
- `signing_algorithms` (List of String) Allowed signing algorithms for the provider's issued tokens.
- `state` (String) Can be one of 'inactive', 'active-private', or 'active-public'. Currently automatically set to active-public.
- `type` (String) The type of auth method; hardcoded.
@@ -103,12 +44,4 @@ resource "boundary_auth_method_oidc" "oidc_with_azure_provider_type" {
- `id` (String) The ID of the auth method.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_auth_method_oidc.foo <my-id>
```
+2 -30
View File
@@ -3,33 +3,14 @@
page_title: "boundary_auth_method_password Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The auth method resource allows you to configure a Threshold auth_method_password.
The auth method resource allows you to configure a Boundary authmethodpassword.
---
# boundary_auth_method_password (Resource)
The auth method resource allows you to configure a Threshold auth_method_password.
The auth method resource allows you to configure a Boundary auth_method_password.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_auth_method_password" "password" {
scope_id = boundary_scope.org.id
}
resource "boundary_auth_method_password" "password_is_primary" {
scope_id = boundary_scope.org.id
is_primary_for_scope = true
}
```
<!-- schema generated by tfplugindocs -->
## Schema
@@ -41,7 +22,6 @@ resource "boundary_auth_method_password" "password_is_primary" {
### Optional
- `description` (String) The auth method description.
- `is_primary_for_scope` (Boolean) When true, makes this auth method the primary auth method for the scope in which it resides.
- `min_login_name_length` (Number) The minimum login name length.
- `min_password_length` (Number) The minimum password length.
- `name` (String) The auth method name. Defaults to the resource name.
@@ -51,12 +31,4 @@ resource "boundary_auth_method_password" "password_is_primary" {
- `id` (String) The ID of the account.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_auth_method_password.foo <my-id>
```
-2
View File
@@ -64,8 +64,6 @@ resource "boundary_credential_json" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_json.example_json <my-id>
```
+3 -5
View File
@@ -3,12 +3,12 @@
page_title: "boundary_credential_library_vault Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The credential library for Vault resource allows you to configure a Threshold credential library for Vault.
The credential library for Vault resource allows you to configure a Boundary credential library for Vault.
---
# boundary_credential_library_vault (Resource)
The credential library for Vault resource allows you to configure a Threshold credential library for Vault.
The credential library for Vault resource allows you to configure a Boundary credential library for Vault.
## Example Usage
@@ -96,7 +96,7 @@ resource "boundary_credential_library_vault" "quz" {
### Optional
- `credential_mapping_overrides` (Map of String) The credential mapping override.
- `credential_type` (String) The type of credential the library generates. Cannot be updated on an existing resource.
- `credential_type` (String) The type of credential the library generates.
- `description` (String) The Vault credential library description.
- `http_method` (String) The HTTP method the library uses when requesting credentials from Vault. Defaults to 'GET'
- `http_request_body` (String) The body of the HTTP request the library sends to Vault when requesting credentials. Only valid if `http_method` is set to `POST`.
@@ -110,8 +110,6 @@ resource "boundary_credential_library_vault" "quz" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_library_vault.foo <my-id>
```
@@ -1,79 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_credential_library_vault_ldap Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The credential library for Vault LDAP resource allows you to configure a Threshold credential library for Vault LDAP.
---
# boundary_credential_library_vault_ldap (Resource)
The credential library for Vault LDAP resource allows you to configure a Threshold credential library for Vault LDAP.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first scope!"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_credential_store_vault" "foo" {
name = "foo"
description = "My first Vault credential store!"
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
}
resource "boundary_credential_library_vault_ldap" "foo-static" {
name = "foo"
description = "My first static Vault LDAP credential library!"
credential_store_id = boundary_credential_store_vault.foo.id
path = "ldap/static-cred/foo" # change to Vault backend path
}
resource "boundary_credential_library_vault_ldap" "bar-dynamic" {
name = "bar"
description = "My first dynamic Vault LDAP credential library!"
credential_store_id = boundary_credential_store_vault.foo.id
path = "ldap/creds/bar" # change to Vault backend path
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `credential_store_id` (String) The ID of the credential store that this library belongs to.
- `path` (String) The path in Vault to request credentials from.
### Optional
- `description` (String) The Vault LDAP credential library description.
- `name` (String) The Vault LDAP credential library name. Defaults to the resource name.
### Read-Only
- `id` (String) The ID of the Vault LDAP credential library.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_library_vault_ldap.foo <my-id>
```
@@ -3,12 +3,12 @@
page_title: "boundary_credential_library_vault_ssh_certificate Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The credential library for Vault resource allows you to configure a Threshold credential library for Vault.
The credential library for Vault resource allows you to configure a Boundary credential library for Vault.
---
# boundary_credential_library_vault_ssh_certificate (Resource)
The credential library for Vault resource allows you to configure a Threshold credential library for Vault.
The credential library for Vault resource allows you to configure a Boundary credential library for Vault.
## Example Usage
@@ -89,7 +89,6 @@ resource "boundary_credential_library_vault_ssh_certificate" "baz" {
### Optional
- `additional_valid_principals` (List of String) Principals to be signed as "valid_principles" in addition to username.
- `critical_options` (Map of String) Specifies a map of the critical options that the certificate should be signed for.
- `description` (String) The Vault credential library description.
- `extensions` (Map of String) Specifies a map of the extensions that the certificate should be signed for.
@@ -107,8 +106,6 @@ resource "boundary_credential_library_vault_ssh_certificate" "baz" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_library_vault_ssh_certificate.foo <my-id>
```
-71
View File
@@ -1,71 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_credential_password Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The password credential resource allows you to configure a credential using a password.
---
# boundary_credential_password (Resource)
The password credential resource allows you to configure a credential using a password.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "global scope"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first scope!"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_credential_store_static" "example" {
name = "example_static_credential_store"
description = "My first static credential store!"
scope_id = boundary_scope.project.id
}
resource "boundary_credential_password" "example" {
name = "example_password"
description = "My first password credential!"
credential_store_id = boundary_credential_store_static.example.id
password = "my-password"
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `credential_store_id` (String) The credential store in which to save this password credential.
- `password` (String, Sensitive) The password of this password credential.
### Optional
- `description` (String) The description of this password credential.
- `name` (String) The name of this password credential. Defaults to the resource name.
### Read-Only
- `id` (String) The ID of this password credential.
- `password_hmac` (String) The password hmac.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_password.example <my-id>
```
@@ -69,8 +69,6 @@ resource "boundary_credential_ssh_private_key" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_ssh_private_key.example_ssh_private_key <my-id>
```
+2 -4
View File
@@ -3,12 +3,12 @@
page_title: "boundary_credential_store_static Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The static credential store resource allows you to configure a Threshold static credential store.
The static credential store resource allows you to configure a Boundary static credential store.
---
# boundary_credential_store_static (Resource)
The static credential store resource allows you to configure a Threshold static credential store.
The static credential store resource allows you to configure a Boundary static credential store.
## Example Usage
@@ -55,8 +55,6 @@ resource "boundary_credential_store_static" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_store_static.example_static_credential_store <my-id>
```
+3 -5
View File
@@ -3,12 +3,12 @@
page_title: "boundary_credential_store_vault Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The credential store for Vault resource allows you to configure a Threshold credential store for Vault.
The credential store for Vault resource allows you to configure a Boundary credential store for Vault.
---
# boundary_credential_store_vault (Resource)
The credential store for Vault resource allows you to configure a Threshold credential store for Vault.
The credential store for Vault resource allows you to configure a Boundary credential store for Vault.
## Example Usage
@@ -56,7 +56,7 @@ resource "boundary_credential_store_vault" "example" {
- `namespace` (String) The namespace within Vault to use.
- `tls_server_name` (String) Name to use as the SNI host when connecting to Vault via TLS.
- `tls_skip_verify` (Boolean) Whether or not to skip TLS verification.
- `worker_filter` (String) HCP Only. A filter used to control which PKI workers can handle Vault requests. This allows the use of private Vault instances with Threshold.
- `worker_filter` (String) HCP Only. A filter used to control which PKI workers can handle Vault requests. This allows the use of private Vault instances with Boundary.
### Read-Only
@@ -68,8 +68,6 @@ resource "boundary_credential_store_vault" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_store_vault.foo <my-id>
```
@@ -66,8 +66,6 @@ resource "boundary_credential_username_password" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_username_password.example_username_password <my-id>
```
@@ -1,75 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_credential_username_password_domain Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The username-password-domain credential resource allows you to configure a credential using a username, password and domain.
---
# boundary_credential_username_password_domain (Resource)
The username-password-domain credential resource allows you to configure a credential using a username, password and domain.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "global scope"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first scope!"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_credential_store_static" "example" {
name = "example_static_credential_store"
description = "My first static credential store!"
scope_id = boundary_scope.project.id
}
resource "boundary_credential_username_password_domain" "example" {
name = "example_username_password_domain"
description = "My first username password domain credential!"
credential_store_id = boundary_credential_store_static.example.id
username = "my-username"
password = "my-password"
domain = "my-domain"
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `credential_store_id` (String) The credential store in which to save this username-password-domain credential.
- `password` (String, Sensitive) The password of this username-password-domain credential.
### Optional
- `description` (String) The description of this username-password-domain credential.
- `domain` (String) The domain of this username-password-domain credential. This field is required unless provided as part of the username field instead (see username field description).
- `name` (String) The name of this username-password-domain credential. Defaults to the resource name.
- `username` (String) This field is required even though it is marked as optional. The username of this username-password-domain credential. Can also contain a domain if provided as username@domain or domain\username
### Read-Only
- `id` (String) The ID of this username-password-domain credential.
- `password_hmac` (String) The password hmac.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_credential_username_password_domain.example_username_password_domain <my-id>
```
+2 -2
View File
@@ -2,12 +2,12 @@
page_title: "boundary_group Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The group resource allows you to configure a Threshold group.
The group resource allows you to configure a Boundary group.
---
# Resource `boundary_group`
The group resource allows you to configure a Threshold group.
The group resource allows you to configure a Boundary group.
## Example Usage
-2
View File
@@ -66,8 +66,6 @@ resource "boundary_host" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_host.foo <my-id>
```
-2
View File
@@ -57,8 +57,6 @@ resource "boundary_host_catalog" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_host_catalog.foo <my-id>
```
+4 -7
View File
@@ -3,12 +3,12 @@
page_title: "boundary_host_catalog_plugin Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The host catalog resource allows you to configure a Threshold plugin-type host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
The host catalog resource allows you to configure a Boundary plugin-type host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
---
# boundary_host_catalog_plugin (Resource)
The host catalog resource allows you to configure a Threshold plugin-type host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
The host catalog resource allows you to configure a Boundary plugin-type host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
## Example Usage
@@ -67,7 +67,7 @@ resource "boundary_host_catalog_plugin" "azure_example" {
"client_id" = "ARM_CLIENT_ID"
})
# recommended to pass in azure secrets using a file() or using environment variables
# recommended to pass in aws secrets using a file() or using environment variables
# the secrets below must be generated in azure by creating an ad application
secrets_json = jsonencode({
"secret_value" = "ARM_CLIENT_SECRET"
@@ -87,14 +87,13 @@ resource "boundary_host_catalog_plugin" "azure_example" {
- `attributes_json` (String) The attributes for the host catalog. Either values encoded with the "jsonencode" function, pre-escaped JSON string, or a file:// or env:// path. Set to a string "null" or remove the block to clear all attributes in the host catalog.
- `description` (String) The host catalog description.
- `internal_force_update` (String) Internal only. Used to force update so that we can always check the value of secrets.
- `internal_hmac_used_for_secrets_config_hmac` (String) Internal only. The Threshold-provided HMAC used to calculate the current value of the HMAC'd config. Used for drift detection.
- `internal_hmac_used_for_secrets_config_hmac` (String) Internal only. The Boundary-provided HMAC used to calculate the current value of the HMAC'd config. Used for drift detection.
- `internal_secrets_config_hmac` (String) Internal only. HMAC of (serverSecretsHmac + config secrets). Used for proper secrets handling.
- `name` (String) The host catalog name. Defaults to the resource name.
- `plugin_id` (String) The ID of the plugin that should back the resource. This or plugin_name must be defined.
- `plugin_name` (String) The name of the plugin that should back the resource. This or plugin_id must be defined.
- `secrets_hmac` (String) The HMAC'd secrets value returned from the server.
- `secrets_json` (String, Sensitive) The secrets for the host catalog. Either values encoded with the "jsonencode" function, pre-escaped JSON string, or a file:// or env:// path. Set to a string "null" to clear any existing values. NOTE: Unlike "attributes_json", removing this block will NOT clear secrets from the host catalog; this allows injecting secrets for one call, then removing them for storage.
- `worker_filter` (String) HCP Only. A filter used to control which PKI workers can handle dynamic host catalog requests.
### Read-Only
@@ -104,8 +103,6 @@ resource "boundary_host_catalog_plugin" "azure_example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_host_catalog_plugin.foo <my-id>
```
+2 -4
View File
@@ -3,12 +3,12 @@
page_title: "boundary_host_catalog_static Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The static host catalog resource allows you to configure a Threshold static-type host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
The static host catalog resource allows you to configure a Boundary static-type host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
---
# boundary_host_catalog_static (Resource)
The static host catalog resource allows you to configure a Threshold static-type host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
The static host catalog resource allows you to configure a Boundary static-type host catalog. Host catalogs are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host catalog.
## Example Usage
@@ -55,8 +55,6 @@ resource "boundary_host_catalog_static" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_host_catalog_static.foo <my-id>
```
+2 -2
View File
@@ -39,6 +39,7 @@ resource "boundary_host" "first" {
description = "My first host!"
address = "10.0.0.1"
host_catalog_id = boundary_host_catalog.static.id
scope_id = boundary_scope.project.id
}
resource "boundary_host" "second" {
@@ -47,6 +48,7 @@ resource "boundary_host" "second" {
description = "My second host!"
address = "10.0.0.2"
host_catalog_id = boundary_host_catalog.static.id
scope_id = boundary_scope.project.id
}
resource "boundary_host_set" "web" {
@@ -81,8 +83,6 @@ resource "boundary_host_set" "web" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_host_set.foo <my-id>
```
+8 -8
View File
@@ -3,12 +3,12 @@
page_title: "boundary_host_set_plugin Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The host_set_plugin resource allows you to configure a Threshold host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
The hostsetplugin resource allows you to configure a Boundary host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
---
# boundary_host_set_plugin (Resource)
The host_set_plugin resource allows you to configure a Threshold host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
The host_set_plugin resource allows you to configure a Boundary host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
## Example Usage
@@ -51,7 +51,7 @@ resource "boundary_host_catalog_plugin" "aws_example" {
resource "boundary_host_set_plugin" "web" {
name = "My web host set plugin"
host_catalog_id = boundary_host_catalog_plugin.aws_example.id
attributes_json = jsonencode({ "filters" = ["tag:service-type=web"] })
attributes_json = jsonencode({ "filters" = "tag:service-type=web" })
}
resource "boundary_host_set_plugin" "foobar" {
@@ -59,7 +59,8 @@ resource "boundary_host_set_plugin" "foobar" {
host_catalog_id = boundary_host_catalog_plugin.aws_example.id
preferred_endpoints = ["cidr:54.0.0.0/8"]
attributes_json = jsonencode({
"filters" = ["tag-key=foo", "tag-key=bar"]
"filters" = "tag-key=foo",
"filters" = "tag-key=bar"
})
}
@@ -68,7 +69,8 @@ resource "boundary_host_set_plugin" "launch" {
host_catalog_id = boundary_host_catalog_plugin.aws_example.id
sync_interval_seconds = 60
attributes_json = jsonencode({
"filters" = ["tag:development=prod,dev", "launch-time=2022-01-04T*"]
"filters" = "tag:development=prod,dev",
"filters" = "launch-time=2022-01-04T*"
})
}
@@ -91,7 +93,7 @@ resource "boundary_host_catalog_plugin" "azure_example" {
"client_id" = "ARM_CLIENT_ID"
})
# recommended to pass in azure secrets using a file() or using environment variables
# recommended to pass in aws secrets using a file() or using environment variables
# the secrets below must be generated in azure by creating an ad application
secrets_json = jsonencode({
"secret_value" = "ARM_CLIENT_SECRET"
@@ -140,8 +142,6 @@ resource "boundary_host_set_plugin" "foodev" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_host_set_plugin.foo <my-id>
```
+2 -4
View File
@@ -3,12 +3,12 @@
page_title: "boundary_host_set_static Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The host_set_static resource allows you to configure a Threshold host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
The hostsetstatic resource allows you to configure a Boundary host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
---
# boundary_host_set_static (Resource)
The host_set_static resource allows you to configure a Threshold host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
The host_set_static resource allows you to configure a Boundary host set. Host sets are always part of a host catalog, so a host catalog resource should be used inline or you should have the host catalog ID in hand to successfully configure a host set.
## Example Usage
@@ -77,8 +77,6 @@ resource "boundary_host_set_static" "web" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_host_set_static.foo <my-id>
```
+2 -4
View File
@@ -3,12 +3,12 @@
page_title: "boundary_host_static Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The static host resource allows you to configure a Threshold static host. Hosts are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host.
The static host resource allows you to configure a Boundary static host. Hosts are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host.
---
# boundary_host_static (Resource)
The static host resource allows you to configure a Threshold static host. Hosts are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host.
The static host resource allows you to configure a Boundary static host. Hosts are always part of a project, so a project resource should be used inline or you should have the project ID in hand to successfully configure a host.
## Example Usage
@@ -64,8 +64,6 @@ resource "boundary_host_static" "example" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_host_static.foo <my-id>
```
+3 -3
View File
@@ -3,12 +3,12 @@
page_title: "boundary_managed_group Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The managed group resource allows you to configure a Threshold group.
The managed group resource allows you to configure a Boundary group.
---
# boundary_managed_group (Resource)
The managed group resource allows you to configure a Threshold group.
The managed group resource allows you to configure a Boundary group.
@@ -18,7 +18,7 @@ The managed group resource allows you to configure a Threshold group.
### Required
- `auth_method_id` (String) The resource ID for the auth method.
- `filter` (String) Boolean expression to filter the workers for this managed group.
- `filter` (String) Boolean expression to filter the users for this managed group.
### Optional
-71
View File
@@ -1,71 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_managed_group_ldap Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The managed group resource allows you to configure a Threshold group.
---
# boundary_managed_group_ldap (Resource)
The managed group resource allows you to configure a Threshold group.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
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
}
resource "boundary_managed_group_ldap" "forumsys_scientists" {
name = "scientists"
description = "forumsys scientists managed group"
auth_method_id = boundary_auth_method_ldap.forumsys_ldap.id
group_names = ["Scientists"]
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `auth_method_id` (String) The resource ID for the auth method.
- `group_names` (List of String) The list of groups that make up the managed group.
### Optional
- `description` (String) The managed group description.
- `name` (String) The managed group name. Defaults to the resource name.
### Read-Only
- `id` (String) The ID of the group.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_managed_group_ldap.foo <my-id>
```
-33
View File
@@ -1,33 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_policy_storage Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The storage policy resource allows you to configure a Threshold storage policy. Storage policies allow an admin to configure how long session recordings must be stored and when to delete them. Storage policies must be applied to the global scope or an org scope in order to take effect.
---
# boundary_policy_storage (Resource)
The storage policy resource allows you to configure a Threshold storage policy. Storage policies allow an admin to configure how long session recordings must be stored and when to delete them. Storage policies must be applied to the global scope or an org scope in order to take effect.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `scope_id` (String) The scope for this policy.
### Optional
- `delete_after_days` (Number) The number of days after which a session recording will be automatically deleted. Defaults to 0: never automatically delete. However, delete_after_days and retain_for_days cannot both be 0.
- `delete_after_overridable` (Boolean) Whether or not the associated delete_after_days value can be overridden by org scopes. Note: if the associated delete_after_days value is 0, overridable is ignored
- `description` (String) The policy description.
- `name` (String) The policy name. Defaults to the resource name.
- `retain_for_days` (Number) The number of days a session recording is required to be stored. Defaults to 0: allow deletions at any time. However, retain_for_days and delete_after_days cannot both be 0.
- `retain_for_overridable` (Boolean) Whether or not the associated retain_for_days value can be overridden by org scopes. Note: if the associated retain_for_days value is 0, overridable is ignored.
### Read-Only
- `id` (String) The ID of the policy.
+5 -5
View File
@@ -2,12 +2,12 @@
page_title: "boundary_role Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The role resource allows you to configure a Threshold role.
The role resource allows you to configure a Boundary role.
---
# Resource `boundary_role`
The role resource allows you to configure a Threshold role.
The role resource allows you to configure a Boundary role.
## Example Usage
@@ -79,7 +79,7 @@ resource "boundary_role" "readonly" {
name = "readonly"
description = "A readonly role"
principal_ids = [boundary_user.readonly.id]
grant_strings = ["ids=*;type=*;actions=read"]
grant_strings = ["id=*;type=*;actions=read"]
scope_id = boundary_scope.org.id
}
```
@@ -112,7 +112,7 @@ resource "boundary_role" "readonly" {
name = "readonly"
description = "A readonly role"
principal_ids = [boundary_user.readonly.id]
grant_strings = ["ids=*;type=*;actions=read"]
grant_strings = ["id=*;type=*;actions=read"]
scope_id = boundary_scope.project.id
}
```
@@ -127,7 +127,7 @@ resource "boundary_role" "readonly" {
### Optional
- `description` (String) The role description.
- `grant_scope_ids` (Set of String) A list of scopes for which the grants in this role should apply, which can include the special values "this", "children", or "descendants"
- `grant_scope_id` (String)
- `grant_strings` (Set of String) A list of stringified grants for the role.
- `name` (String) The role name. Defaults to the resource name.
- `principal_ids` (Set of String) A list of principal (user or group) IDs to add as principals on the role.
+6 -6
View File
@@ -2,12 +2,12 @@
page_title: "boundary_scope Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The scope resource allows you to configure a Threshold scope.
The scope resource allows you to configure a Boundary scope.
---
# Resource `boundary_scope`
The scope resource allows you to configure a Threshold scope.
The scope resource allows you to configure a Boundary scope.
## Example Usage
@@ -53,10 +53,10 @@ resource "boundary_scope" "org" {
}
resource "boundary_role" "org_admin" {
scope_id = boundary_scope.global.id
grant_scope_ids = [boundary_scope.org.id]
grant_strings = ["ids=*;type=*;actions=*"]
principal_ids = ["u_auth"]
scope_id = boundary_scope.global.id
grant_scope_id = boundary_scope.org.id
grant_strings = ["id=*;type=*;actions=*"]
principal_ids = ["u_auth"]
}
```
-67
View File
@@ -1,67 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_scope_alias_suffix Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The scope alias suffix resource allows you to set an alias suffix for an org or project scope. Global scopes are not valid for alias suffix operations.
---
# boundary_scope_alias_suffix (Resource)
The scope alias suffix resource allows you to set an alias suffix for an org or project scope. Global scopes are not valid for alias suffix operations.
## Example Usage
```terraform
resource "boundary_scope" "global" {
global_scope = true
scope_id = "global"
}
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = boundary_scope.global.id
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first project"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_scope_alias_suffix" "org_suffix" {
scope_id = boundary_scope.org.id
alias_suffix = "org"
}
resource "boundary_scope_alias_suffix" "project_suffix" {
scope_id = boundary_scope.project.id
alias_suffix = "projectone"
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `alias_suffix` (String) The alias suffix value for this scope.
- `scope_id` (String) The scope ID. Alias suffixes are supported for org and project scopes.
### Read-Only
- `id` (String) The ID of this resource.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_scope_alias_suffix.org_suffix <scope-id>
```
-25
View File
@@ -1,25 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_scope_policy_attachment Resource - terraform-provider-boundary"
subcategory: ""
description: |-
---
# boundary_scope_policy_attachment (Resource)
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `policy_id` (String)
- `scope_id` (String)
### Read-Only
- `id` (String) The ID of this resource.
-94
View File
@@ -1,94 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_storage_bucket Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The storage bucket resource allows you to configure a Threshold storage bucket. A storage bucket can only belong to the Global scope or an Org scope. At this time, the only supported storage for storage buckets is AWS S3. This feature requires Boundary Enterprise or Boundary HCP.
---
# boundary_storage_bucket (Resource)
The storage bucket resource allows you to configure a Threshold storage bucket. A storage bucket can only belong to the Global scope or an Org scope. At this time, the only supported storage for storage buckets is AWS S3. This feature requires Boundary Enterprise or Boundary HCP.
## Example Usage
```terraform
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = boundary_scope.global.id
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_storage_bucket" "aws_static_credentials_example" {
name = "My aws storage bucket with static credentials"
description = "My first storage bucket!"
scope_id = boundary_scope.org.id
plugin_name = "aws"
bucket_name = "mybucket"
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 by creating a aws 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 = "\"pki\" in \"/tags/type\""
}
resource "boundary_storage_bucket" "aws_dynamic_credentials_example" {
name = "My aws storage bucket with dynamic credentials"
description = "My first storage bucket!"
scope_id = boundary_scope.org.id
plugin_name = "aws"
bucket_name = "mybucket"
# the role_arn value should be the same arn used as the instance profile that is 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 = "\"pki\" in \"/tags/type\""
}
```
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `bucket_name` (String) The name of the bucket within the external object store service.
- `scope_id` (String) The scope for this storage bucket.
- `worker_filter` (String) Filters to the worker(s) that can handle requests for this storage bucket. The filter must match an existing worker in order to create a storage bucket.
### Optional
- `attributes_json` (String) The attributes for the storage bucket. The "region" attribute field is required when creating an AWS storage bucket. Values are either encoded with the "jsonencode" function, pre-escaped JSON string, or a file:// or env:// path. Set to a string "null" or remove the block to clear all attributes in the storage bucket.
- `bucket_prefix` (String) The prefix used to organize the data held within the external object store.
- `description` (String) The storage bucket description.
- `name` (String) The storage bucket name. Defaults to the resource name.
- `plugin_id` (String) The ID of the plugin that should back the resource. This or plugin_name must be defined.
- `plugin_name` (String) The name of the plugin that should back the resource. This or plugin_id must be defined.
- `secrets_json` (String, Sensitive) The secrets for the storage bucket. Either values encoded with the "jsonencode" function, pre-escaped JSON string, or a file:// or env:// path. Set to a string "null" to clear any existing values. NOTE: Unlike "attributes_json", removing this block will NOT clear secrets from the storage bucket; this allows injecting secrets for one call, then removing them for storage.
### Read-Only
- `id` (String) The ID of the storage bucket.
- `internal_force_update` (String) Internal only. Used to force update so that we can always check the value of secrets.
- `internal_hmac_used_for_secrets_config_hmac` (String) Internal only. The Threshold-provided HMAC used to calculate the current value of the HMAC'd config. Used for drift detection.
- `internal_secrets_config_hmac` (String) Internal only. HMAC of (serverSecretsHmac + config secrets). Used for proper secrets handling.
- `secrets_hmac` (String) The HMAC'd secrets value returned from the server.
## Import
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_storage_bucket.foo <my-id>
```
+20 -64
View File
@@ -3,12 +3,12 @@
page_title: "boundary_target Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The target resource allows you to configure a Threshold target.
The target resource allows you to configure a Boundary target.
---
# boundary_target (Resource)
The target resource allows you to configure a Threshold target.
The target resource allows you to configure a Boundary target.
## Example Usage
@@ -50,45 +50,36 @@ resource "boundary_credential_library_vault" "foo" {
credential_type = "username_password"
}
resource "boundary_host_catalog_static" "foo" {
resource "boundary_host_catalog" "foo" {
name = "test"
description = "test catalog"
scope_id = boundary_scope.project.id
type = "static"
}
resource "boundary_host_static" "foo" {
resource "boundary_host" "foo" {
type = "static"
name = "foo"
host_catalog_id = boundary_host_catalog_static.foo.id
host_catalog_id = boundary_host_catalog.foo.id
address = "10.0.0.1"
}
resource "boundary_host_static" "bar" {
resource "boundary_host" "bar" {
type = "static"
name = "bar"
host_catalog_id = boundary_host_catalog_static.foo.id
host_catalog_id = boundary_host_catalog.foo.id
address = "10.0.0.1"
}
resource "boundary_host_set_static" "foo" {
resource "boundary_host_set" "foo" {
type = "static"
name = "foo"
host_catalog_id = boundary_host_catalog_static.foo.id
host_ids = [
boundary_host_static.foo.id,
boundary_host_static.bar.id,
]
}
host_catalog_id = boundary_host_catalog.foo.id
resource "boundary_storage_bucket" "aws_example" {
name = "My aws storage bucket"
description = "My first storage bucket!"
scope_id = boundary_scope.org.id
plugin_name = "aws"
bucket_name = "mybucket"
attributes_json = jsonencode({ "region" = "us-east-1" })
secrets_json = jsonencode({
"access_key_id" = "aws_access_key_id_value",
"secret_access_key" = "aws_secret_access_key_value"
})
egress_worker_filter = "\"egress\" in \"/tags/type\""
host_ids = [
boundary_host.foo.id,
boundary_host.bar.id,
]
}
resource "boundary_target" "foo" {
@@ -98,7 +89,7 @@ resource "boundary_target" "foo" {
default_port = "22"
scope_id = boundary_scope.project.id
host_source_ids = [
boundary_host_set_static.foo.id
boundary_host_set.foo.id
]
brokered_credential_source_ids = [
boundary_credential_library_vault.foo.id
@@ -107,49 +98,18 @@ resource "boundary_target" "foo" {
resource "boundary_target" "ssh_foo" {
name = "ssh_foo"
description = "SSH target"
description = "Ssh target"
type = "ssh"
default_port = "22"
scope_id = boundary_scope.project.id
host_source_ids = [
boundary_host_set_static.foo.id
boundary_host_set.foo.id
]
injected_application_credential_source_ids = [
boundary_credential_library_vault.foo.id
]
}
resource "boundary_target" "ssh_session_recording_foo" {
name = "ssh_foo"
description = "SSH target"
type = "ssh"
default_port = "22"
scope_id = boundary_scope.project.id
host_source_ids = [
boundary_host_set_static.foo.id
]
injected_application_credential_source_ids = [
boundary_credential_library_vault.foo.id
]
enable_session_recording = true
storage_bucket_id = boundary_storage_bucket.aws_example
}
resource "boundary_target" "rdp_foo" {
name = "rdp_foo"
description = "RDP target"
type = "rdp"
default_port = "3389"
scope_id = boundary_scope.project.id
host_source_ids = [
boundary_host_set_static.foo.id
]
injected_application_credential_source_ids = [
boundary_credential_library_vault.foo.id
]
egress_worker_filter = "\"egress\" in \"/tags/type\""
}
resource "boundary_target" "address_foo" {
name = "address_foo"
description = "Foo target with an address"
@@ -176,14 +136,12 @@ resource "boundary_target" "address_foo" {
- `default_port` (Number) The default port for this target.
- `description` (String) The target description.
- `egress_worker_filter` (String) Boolean expression to filter the workers used to access this target
- `enable_session_recording` (Boolean) HCP/Ent Only. Enable sessions recording for this target. Only applicable for SSH and RDP targets.
- `host_source_ids` (Set of String) A list of host source ID's. Cannot be used alongside address.
- `ingress_worker_filter` (String) HCP Only. Boolean expression to filter the workers a user will connect to when initiating a session against this target
- `injected_application_credential_source_ids` (Set of String) A list of injected application credential source ID's.
- `name` (String) The target name. Defaults to the resource name.
- `session_connection_limit` (Number)
- `session_max_seconds` (Number)
- `storage_bucket_id` (String) HCP/Ent Only. Storage bucket for this target. Only applicable for SSH and RDP targets.
- `worker_filter` (String, Deprecated) Boolean expression to filter the workers for this target
### Read-Only
@@ -194,8 +152,6 @@ resource "boundary_target" "address_foo" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_target.foo <my-id>
```
-25
View File
@@ -1,25 +0,0 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_target_host_source Resource - terraform-provider-boundary"
subcategory: ""
description: |-
Attaches a host source to an existing Threshold target. Use this resource instead of the host_source_ids field on boundary_target when the target and its host sources are managed in separate Terraform configurations. Do not set host_source_ids on boundary_target when using this resource for the same target.
---
# boundary_target_host_source (Resource)
Attaches a host source to an existing Threshold target. Use this resource instead of the `host_source_ids` field on `boundary_target` when the target and its host sources are managed in separate Terraform configurations. Do not set `host_source_ids` on `boundary_target` when using this resource for the same target.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `host_source_id` (String) The ID of the host source to attach to the target.
- `target_id` (String) The ID of the target to attach the host source to.
### Read-Only
- `id` (String) The ID of this resource.
+2 -4
View File
@@ -3,12 +3,12 @@
page_title: "boundary_user Resource - terraform-provider-boundary"
subcategory: ""
description: |-
The user resource allows you to configure a Threshold user.
The user resource allows you to configure a Boundary user.
---
# boundary_user (Resource)
The user resource allows you to configure a Threshold user.
The user resource allows you to configure a Boundary user.
## Example Usage
@@ -62,8 +62,6 @@ resource "boundary_user" "jeff" {
Import is supported using the following syntax:
The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:
```shell
terraform import boundary_user.foo <my-id>
```
+2 -53
View File
@@ -1,4 +1,5 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "boundary_worker Resource - terraform-provider-boundary"
subcategory: ""
description: |-
@@ -9,59 +10,7 @@ description: |-
The resource allows you to create a self-managed worker object.
## Example Usage
### Controller-led worker
```terraform
resource "boundary_worker" "controller_led" {
scope_id = "global"
name = "controller-led-worker-1"
description = "self managed worker with controller led auth"
}
```
Use controller-led registration when Terraform can deliver a generated activation
token to the worker. Omit `worker_generated_auth_token`.
### Worker-led worker
```terraform
resource "boundary_worker" "worker_led" {
scope_id = "global"
name = "worker-led-worker-1"
description = "self managed worker with worker led auth"
worker_generated_auth_token = var.worker_generated_auth_token
}
```
Use worker-led registration when the worker generates the authorization request.
Set `worker_generated_auth_token` to the generated token.
### No managed worker resource
Without a `boundary_worker` resource, Terraform does not manage a worker.
### Both registration methods
Configure separate `boundary_worker` resources when your deployment requires
both registration methods.
```terraform
resource "boundary_worker" "controller_led" {
scope_id = "global"
name = "controller-led-worker-1"
}
resource "boundary_worker" "worker_led" {
scope_id = "global"
name = "worker-led-worker-1"
worker_generated_auth_token = var.worker_generated_auth_token
}
```
Refer to the [register workers](https://developer.hashicorp.com/boundary/docs/workers/registration)
documentation to learn about worker registration.
<!-- schema generated by tfplugindocs -->
## Schema
@@ -79,7 +28,7 @@ documentation to learn about worker registration.
- `authorized_actions` (List of String) A list of actions that the worker is entitled to perform.
- `controller_generated_activation_token` (String) A single use token generated by the controller to be passed to the self-managed worker.
- `id` (String) The ID of the worker.
- `release_version` (Number) The version of the Threshold binary running on the self managed worker.
- `release_version` (Number) The version of the Boundary binary running on the self managed worker.
## Import
@@ -1,5 +0,0 @@
# Retrieve the ID of a Boundary account
data "boundary_account" "admin" {
name = "admin"
auth_method_id = "ampw_1234567890"
}
@@ -1,15 +0,0 @@
# Retrieve an auth method from the global scope
data "boundary_auth_method" "auth_method" {
name = "password_auth_method"
}
# Auth method from a org scope
data "boundary_scope" "org" {
name = "my-org"
scope_id = "global"
}
data "boundary_auth_method" "auth_method" {
name = "password_auth_method"
scope_id = data.boundary_scope.org.id
}
@@ -1,15 +0,0 @@
# Retrieve a user from the global scope
data "boundary_group" "global_group" {
name = "admin"
}
# User from an org scope
data "boundary_scope" "org" {
name = "org"
scope_id = "global"
}
data "boundary_group" "org_group" {
name = "username"
scope_id = data.boundary_scope.org.id
}
@@ -1,15 +0,0 @@
# Role from the global scope
data "boundary_role" "global_role" {
name = "global_role_one"
}
# Role from an org scope
data "boundary_scope" "org" {
name = "org_one"
scope_id = "global"
}
data "boundary_role" "org_role" {
name = "org_role_one"
scope_id = data.boundary_scope.org.id
}
@@ -1,10 +0,0 @@
# Retrieve the ID of a Boundary project
data "boundary_scope" "org" {
name = "SecOps"
scope_id = "global"
}
data "boundary_scope" "project" {
name = "2111"
scope_id = data.boundary_scope.id
}
@@ -1,15 +0,0 @@
# Retrieve a user from the global scope
data "boundary_user" "global_scope_admin" {
name = "admin"
}
# User from a org scope
data "boundary_user" "org_user" {
name = "username"
scope_id = data.boundary_scope.org.id
}
data "boundary_scope" "org" {
name = "my-org"
scope_id = data.boundary_scope.org.id
}
+11 -11
View File
@@ -1,19 +1,19 @@
provider "boundary" {
addr = "http://127.0.0.1:9200"
auth_method_id = "ampw_1234567890" # changeme
auth_method_login_name = "myuser" # changeme
auth_method_password = "passpass" # changeme
addr = "http://127.0.0.1:9200"
auth_method_id = "ampw_1234567890" # changeme
password_auth_method_login_name = "myuser" # changeme
password_auth_method_password = "passpass" # changeme
}
provider "boundary" {
addr = "http://127.0.0.1:9200"
auth_method_login_name = "myuser"
auth_method_password = "passpass"
addr = "http://127.0.0.1:9200"
password_auth_method_login_name = "myuser"
password_auth_method_password = "passpass"
}
provider "boundary" {
addr = "http://127.0.0.1:9200"
auth_method_login_name = "myuser"
auth_method_password = "passpass"
scope_id = "s_1234567890"
addr = "http://127.0.0.1:9200"
password_auth_method_login_name = "myuser"
password_auth_method_password = "passpass"
scope_id = "s_1234567890"
}
@@ -1 +0,0 @@
terraform import boundary_account_ldap.foo <my-id>
@@ -1,34 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
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
}
resource "boundary_account_ldap" "einstein" {
auth_method_id = boundary_auth_method_ldap.forumsys_ldap.id
login_name = "einstein"
name = "einstein"
}
resource "boundary_user" "einstein" {
name = "einstein"
description = "User resource for einstein"
scope_id = "global"
account_ids = [boundary_account_ldap.einstein.id]
}
@@ -13,6 +13,7 @@ resource "boundary_auth_method" "password" {
resource "boundary_account_password" "jeff" {
auth_method_id = boundary_auth_method.password.id
type = "password"
login_name = "jeff"
password = "$uper$ecure"
}
@@ -1,2 +0,0 @@
terraform import boundary_alias_target.example_alias_target <my-id>
terraform import boundary_alias_target.example_alias_target_project <my-id>
@@ -1,85 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "global scope"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first scope!"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_scope_alias_suffix" "org" {
scope_id = boundary_scope.org.id
alias_suffix = "org"
}
resource "boundary_scope_alias_suffix" "project" {
scope_id = boundary_scope.project.id
alias_suffix = "projectone"
}
resource "boundary_host_catalog_static" "foo" {
name = "test"
description = "test catalog"
scope_id = boundary_scope.project.id
}
resource "boundary_host_static" "foo" {
name = "foo"
host_catalog_id = boundary_host_catalog_static.foo.id
address = "10.0.0.1"
}
resource "boundary_host_static" "bar" {
name = "bar"
host_catalog_id = boundary_host_catalog_static.foo.id
address = "127.0.0.1"
}
resource "boundary_host_set_static" "foo" {
name = "foo"
host_catalog_id = boundary_host_catalog_static.foo.id
host_ids = [
boundary_host_static.foo.id,
boundary_host_static.bar.id,
]
}
resource "boundary_target" "foo" {
name = "foo"
description = "Foo target"
type = "tcp"
default_port = "22"
scope_id = boundary_scope.project.id
host_source_ids = [
boundary_host_set_static.foo.id,
]
}
resource "boundary_alias_target" "example_alias_target" {
name = "example_alias_target"
description = "Example alias to target foo using host boundary_host_static.bar"
scope_id = "global"
value = "example.bar.foo.boundary"
destination_id = boundary_target.foo.id
authorize_session_host_id = boundary_host_static.bar.id
}
resource "boundary_alias_target" "example_alias_target_project" {
name = "example_alias_target_project"
description = "Example project-scoped alias to target foo"
scope_id = boundary_scope.project.id
value = "prodops.projectone.org"
destination_id = boundary_target.foo.id
authorize_session_host_id = boundary_host_static.bar.id
depends_on = [
boundary_scope_alias_suffix.org,
boundary_scope_alias_suffix.project,
]
}
@@ -10,9 +10,3 @@ resource "boundary_auth_method" "password" {
scope_id = boundary_scope.org.id
type = "password"
}
resource "boundary_auth_method" "password_is_primary" {
scope_id = boundary_scope.org.id
type = "password"
is_primary_for_scope = true
}
@@ -1 +0,0 @@
terraform import boundary_auth_method_ldap.foo <my-id>
@@ -1,21 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
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
}
@@ -1 +0,0 @@
terraform import boundary_auth_method_oidc.foo <my-id>
@@ -1,54 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_auth_method_oidc" "vault" {
api_url_prefix = "https://XO-XO-XO-XO-XOXOXO.boundary.hashicorp.cloud:9200"
client_id = "eieio"
client_secret = "hvo_secret_XO"
description = "My Boundary OIDC Auth Method for Vault"
issuer = "https://XO-XO-XO-XO-XOXOXO.vault.hashicorp.cloud:8200/v1/identity/oidc/provider/my-provider"
scope_id = "global"
signing_algorithms = ["RS256"]
type = "oidc"
}
resource "boundary_auth_method_oidc" "oidc_with_one_prompt" {
api_url_prefix = "https://XO-XO-XO-XO-XOXOXO.boundary.hashicorp.cloud:9200"
client_id = "eieio"
client_secret = "hvo_secret_XO"
description = "My Boundary OIDC Auth Method With Prompt"
issuer = "https://sts.windows.net/TENANT_ID/"
scope_id = "global"
signing_algorithms = ["RS256"]
prompts = ["select_account"]
type = "oidc"
}
resource "boundary_auth_method_oidc" "oidc_with_multiple_prompts" {
api_url_prefix = "https://XO-XO-XO-XO-XOXOXO.boundary.hashicorp.cloud:9200"
client_id = "eieio"
client_secret = "hvo_secret_XO"
description = "My Boundary OIDC Auth Method With Multiple Prompts"
issuer = "https://sts.windows.net/TENANT_ID/"
scope_id = "global"
signing_algorithms = ["RS256"]
prompts = ["consent", "select_account"]
type = "oidc"
}
resource "boundary_auth_method_oidc" "oidc_with_azure_provider_type" {
api_url_prefix = "https://XO-XO-XO-XO-XOXOXO.boundary.hashicorp.cloud:9200"
client_id = "eieio"
client_secret = "hvo_secret_XO"
description = "My Boundary OIDC Auth Method For Azure Entra ID"
issuer = "https://sts.windows.net/TENANT_ID/"
scope_id = "global"
signing_algorithms = ["RS256"]
provider_type = "azure"
type = "oidc"
}
@@ -1 +0,0 @@
terraform import boundary_auth_method_password.foo <my-id>
@@ -1,16 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_auth_method_password" "password" {
scope_id = boundary_scope.org.id
}
resource "boundary_auth_method_password" "password_is_primary" {
scope_id = boundary_scope.org.id
is_primary_for_scope = true
}
@@ -1 +0,0 @@
terraform import boundary_credential_library_vault_ldap.foo <my-id>
@@ -1,36 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first scope!"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_credential_store_vault" "foo" {
name = "foo"
description = "My first Vault credential store!"
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
}
resource "boundary_credential_library_vault_ldap" "foo-static" {
name = "foo"
description = "My first static Vault LDAP credential library!"
credential_store_id = boundary_credential_store_vault.foo.id
path = "ldap/static-cred/foo" # change to Vault backend path
}
resource "boundary_credential_library_vault_ldap" "bar-dynamic" {
name = "bar"
description = "My first dynamic Vault LDAP credential library!"
credential_store_id = boundary_credential_store_vault.foo.id
path = "ldap/creds/bar" # change to Vault backend path
}
@@ -1 +0,0 @@
terraform import boundary_credential_password.example <my-id>
@@ -1,27 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "global scope"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first scope!"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_credential_store_static" "example" {
name = "example_static_credential_store"
description = "My first static credential store!"
scope_id = boundary_scope.project.id
}
resource "boundary_credential_password" "example" {
name = "example_password"
description = "My first password credential!"
credential_store_id = boundary_credential_store_static.example.id
password = "my-password"
}
@@ -1 +0,0 @@
terraform import boundary_credential_username_password_domain.example_username_password_domain <my-id>
@@ -1,29 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "global scope"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_scope" "project" {
name = "project_one"
description = "My first scope!"
scope_id = boundary_scope.org.id
auto_create_admin_role = true
}
resource "boundary_credential_store_static" "example" {
name = "example_static_credential_store"
description = "My first static credential store!"
scope_id = boundary_scope.project.id
}
resource "boundary_credential_username_password_domain" "example" {
name = "example_username_password_domain"
description = "My first username password domain credential!"
credential_store_id = boundary_credential_store_static.example.id
username = "my-username"
password = "my-password"
domain = "my-domain"
}
@@ -52,7 +52,7 @@ resource "boundary_host_catalog_plugin" "azure_example" {
"client_id" = "ARM_CLIENT_ID"
})
# recommended to pass in azure secrets using a file() or using environment variables
# recommended to pass in aws secrets using a file() or using environment variables
# the secrets below must be generated in azure by creating an ad application
secrets_json = jsonencode({
"secret_value" = "ARM_CLIENT_SECRET"
@@ -24,6 +24,7 @@ resource "boundary_host" "first" {
description = "My first host!"
address = "10.0.0.1"
host_catalog_id = boundary_host_catalog.static.id
scope_id = boundary_scope.project.id
}
resource "boundary_host" "second" {
@@ -32,6 +33,7 @@ resource "boundary_host" "second" {
description = "My second host!"
address = "10.0.0.2"
host_catalog_id = boundary_host_catalog.static.id
scope_id = boundary_scope.project.id
}
resource "boundary_host_set" "web" {
@@ -36,7 +36,7 @@ resource "boundary_host_catalog_plugin" "aws_example" {
resource "boundary_host_set_plugin" "web" {
name = "My web host set plugin"
host_catalog_id = boundary_host_catalog_plugin.aws_example.id
attributes_json = jsonencode({ "filters" = ["tag:service-type=web"] })
attributes_json = jsonencode({ "filters" = "tag:service-type=web" })
}
resource "boundary_host_set_plugin" "foobar" {
@@ -44,7 +44,8 @@ resource "boundary_host_set_plugin" "foobar" {
host_catalog_id = boundary_host_catalog_plugin.aws_example.id
preferred_endpoints = ["cidr:54.0.0.0/8"]
attributes_json = jsonencode({
"filters" = ["tag-key=foo", "tag-key=bar"]
"filters" = "tag-key=foo",
"filters" = "tag-key=bar"
})
}
@@ -53,7 +54,8 @@ resource "boundary_host_set_plugin" "launch" {
host_catalog_id = boundary_host_catalog_plugin.aws_example.id
sync_interval_seconds = 60
attributes_json = jsonencode({
"filters" = ["tag:development=prod,dev", "launch-time=2022-01-04T*"]
"filters" = "tag:development=prod,dev",
"filters" = "launch-time=2022-01-04T*"
})
}
@@ -76,7 +78,7 @@ resource "boundary_host_catalog_plugin" "azure_example" {
"client_id" = "ARM_CLIENT_ID"
})
# recommended to pass in azure secrets using a file() or using environment variables
# recommended to pass in aws secrets using a file() or using environment variables
# the secrets below must be generated in azure by creating an ad application
secrets_json = jsonencode({
"secret_value" = "ARM_CLIENT_SECRET"
@@ -98,4 +100,4 @@ resource "boundary_host_set_plugin" "foodev" {
"filter" = "tagName eq 'tag-key' and tagValue eq 'foo'",
"filter" = "tagName eq 'application' and tagValue eq 'dev'",
})
}
}
@@ -1 +0,0 @@
terraform import boundary_managed_group_ldap.foo <my-id>
@@ -1,28 +0,0 @@
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = "global"
auto_create_admin_role = true
auto_create_default_role = true
}
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
}
resource "boundary_managed_group_ldap" "forumsys_scientists" {
name = "scientists"
description = "forumsys scientists managed group"
auth_method_id = boundary_auth_method_ldap.forumsys_ldap.id
group_names = ["Scientists"]
}
@@ -1,27 +0,0 @@
resource "boundary_scope" "global" {
global_scope = true
scope_id = "global"
}
resource "boundary_scope" "org" {
name = "organization_one"
description = "My first scope!"
scope_id = boundary_scope.global.id
auto_create_admin_role = true
auto_create_default_role = true
}
resource "boundary_policy_storage" "foo" {
name = "foo"
description = "Foo policy"
scope_id = boundary_scope.org.id
retain_for_days = 10
retain_for_overridable = false
delete_after_days = 10
delete_after_overridable = true
}
resource "boundary_scope_policy_attachment" "foo_attachment" {
scope_id = boundary_scope.org.id
policy_id = boundary_policy_storage.foo.id
}
@@ -23,6 +23,6 @@ resource "boundary_role" "readonly" {
name = "readonly"
description = "A readonly role"
principal_ids = [boundary_user.readonly.id]
grant_strings = ["ids=*;type=*;actions=read"]
grant_strings = ["id=*;type=*;actions=read"]
scope_id = boundary_scope.project.id
}
@@ -16,6 +16,6 @@ resource "boundary_role" "readonly" {
name = "readonly"
description = "A readonly role"
principal_ids = [boundary_user.readonly.id]
grant_strings = ["ids=*;type=*;actions=read"]
grant_strings = ["id=*;type=*;actions=read"]
scope_id = boundary_scope.org.id
}
Loaded 100 of 255 files, more files were not shown because too many files have changed in this diff. Show more