diff --git a/CHANGELOG.md b/CHANGELOG.md index 008830e3..09cde6e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.2 (Unreleased) + +* Adds OIDC account resource +([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/105)) +* Adds OIDC auth method resource +([PR](https://github.com/hashicorp/terraform-provider-boundary/pull/105)) +* Deprecates fields on `resource_auth_method` that will be replaced in the future with generic `attributes` attribute. + ## 1.0.1 (February 02, 2021) ### New and Improved diff --git a/docs/resources/account.md b/docs/resources/account.md index 3ee1c86d..d5af8f3e 100644 --- a/docs/resources/account.md +++ b/docs/resources/account.md @@ -6,7 +6,7 @@ description: |- The account resource allows you to configure a Boundary account. --- -# Resource `boundary_account` +# boundary_account (Resource) The account resource allows you to configure a Boundary account. @@ -45,11 +45,11 @@ resource "boundary_account" "jeff" { ### Optional - **description** (String) The account description. -- **login_name** (String) The login name for this account. +- **login_name** (String, Deprecated) The login name for this account. - **name** (String) The account name. Defaults to the resource name. -- **password** (String) The account password. Only set on create, changes will not be reflected when updating account. +- **password** (String, Deprecated) The account password. Only set on create, changes will not be reflected when updating account. -### Read-only +### Read-Only - **id** (String) The ID of the account. diff --git a/docs/resources/account_oidc.md b/docs/resources/account_oidc.md new file mode 100644 index 00000000..941cb0ba --- /dev/null +++ b/docs/resources/account_oidc.md @@ -0,0 +1,33 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "boundary_account_oidc Resource - terraform-provider-boundary" +subcategory: "" +description: |- + The account resource allows you to configure a Boundary account. +--- + +# boundary_account_oidc (Resource) + +The account resource allows you to configure a Boundary account. + + + + +## Schema + +### Required + +- **auth_method_id** (String) The resource ID for the auth method. + +### Optional + +- **description** (String) The account description. +- **issuer** (String) The OIDC issuer. +- **name** (String) The account name. Defaults to the resource name. +- **subject** (String) The OIDC subject. + +### Read-Only + +- **id** (String) The ID of the account. + + diff --git a/docs/resources/account_password.md b/docs/resources/account_password.md new file mode 100644 index 00000000..b43dbf58 --- /dev/null +++ b/docs/resources/account_password.md @@ -0,0 +1,34 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "boundary_account_password Resource - terraform-provider-boundary" +subcategory: "" +description: |- + The account resource allows you to configure a Boundary account. +--- + +# boundary_account_password (Resource) + +The account resource allows you to configure a Boundary account. + + + + +## Schema + +### Required + +- **auth_method_id** (String) The resource ID for the auth method. +- **type** (String) The resource type. + +### Optional + +- **description** (String) The account description. +- **login_name** (String, Deprecated) The login name for this account. +- **name** (String) The account name. Defaults to the resource name. +- **password** (String, Deprecated) The account password. Only set on create, changes will not be reflected when updating account. + +### Read-Only + +- **id** (String) The ID of the account. + + diff --git a/docs/resources/auth_method.md b/docs/resources/auth_method.md index 602bda5d..d54a1497 100644 --- a/docs/resources/auth_method.md +++ b/docs/resources/auth_method.md @@ -6,7 +6,7 @@ description: |- The auth method resource allows you to configure a Boundary auth_method. --- -# Resource `boundary_auth_method` +# boundary_auth_method (Resource) The auth method resource allows you to configure a Boundary auth_method. @@ -38,11 +38,11 @@ resource "boundary_auth_method" "password" { ### Optional - **description** (String) The auth method description. -- **min_login_name_length** (Number) The minimum login name length. -- **min_password_length** (Number) The minimum password length. +- **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. -### Read-only +### Read-Only - **id** (String) The ID of the account. diff --git a/docs/resources/auth_method_oidc.md b/docs/resources/auth_method_oidc.md new file mode 100644 index 00000000..3c2dd844 --- /dev/null +++ b/docs/resources/auth_method_oidc.md @@ -0,0 +1,45 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "boundary_auth_method_oidc Resource - terraform-provider-boundary" +subcategory: "" +description: |- + 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 Boundary auth_method_oidc. + + + + +## Schema + +### Required + +- **scope_id** (String) The scope ID. + +### Optional + +- **allowed_audiences** (List of String) Audiences for which the provider responses will be allowed +- **api_url_prefix** (String) The API prefix to use when generating callback URLs for the provider. Should be set to an address at which the provider can reach back to the controller. +- **callback_url** (String) The URL that should be provided to the IdP for callbacks. +- **client_id** (String) The client ID assigned to this auth method from the provider. +- **client_secret** (String) 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 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. +- **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 OIDC account. +- **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. +- **name** (String) The auth method name. Defaults to the resource name. +- **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. + +### Read-Only + +- **id** (String) The ID of the auth method. + + diff --git a/docs/resources/auth_method_password.md b/docs/resources/auth_method_password.md new file mode 100644 index 00000000..5081f57a --- /dev/null +++ b/docs/resources/auth_method_password.md @@ -0,0 +1,34 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "boundary_auth_method_password Resource - terraform-provider-boundary" +subcategory: "" +description: |- + 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 Boundary auth_method_password. + + + + +## Schema + +### Required + +- **scope_id** (String) The scope ID. + +### Optional + +- **description** (String) The auth method description. +- **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. +- **type** (String) The resource type, hardcoded per resource + +### Read-Only + +- **id** (String) The ID of the account. + + diff --git a/docs/resources/group.md b/docs/resources/group.md index f5f76593..13695b9d 100644 --- a/docs/resources/group.md +++ b/docs/resources/group.md @@ -77,7 +77,7 @@ resource "boundary_group" "example" { - **member_ids** (Set of String) Resource IDs for group members, these are most likely boundary users. - **name** (String) The group name. Defaults to the resource name. -### Read-only +### Read-Only - **id** (String) The ID of the group. diff --git a/docs/resources/host.md b/docs/resources/host.md index 13f16a49..d97864ed 100644 --- a/docs/resources/host.md +++ b/docs/resources/host.md @@ -6,7 +6,7 @@ description: |- The 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. --- -# Resource `boundary_host` +# boundary_host (Resource) The 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. @@ -50,7 +50,7 @@ resource "boundary_host" "example" { - **description** (String) The host description. - **name** (String) The host name. Defaults to the resource name. -### Read-only +### Read-Only - **id** (String) The ID of the host. diff --git a/docs/resources/host_catalog.md b/docs/resources/host_catalog.md index 3e64fd61..65dc3d6f 100644 --- a/docs/resources/host_catalog.md +++ b/docs/resources/host_catalog.md @@ -6,7 +6,7 @@ description: |- The host catalog resource allows you to configure a Boundary 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. --- -# Resource `boundary_host_catalog` +# boundary_host_catalog (Resource) The host catalog resource allows you to configure a Boundary 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. @@ -49,7 +49,7 @@ resource "boundary_host_catalog" "example" { - **description** (String) The host catalog description. - **name** (String) The host catalog name. Defaults to the resource name. -### Read-only +### Read-Only - **id** (String) The ID of the host catalog. diff --git a/docs/resources/host_set.md b/docs/resources/host_set.md index e1392a9c..f1174a17 100644 --- a/docs/resources/host_set.md +++ b/docs/resources/host_set.md @@ -6,7 +6,7 @@ description: |- The host_set 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. --- -# Resource `boundary_host_set` +# boundary_host_set (Resource) The host_set 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. @@ -71,7 +71,7 @@ resource "boundary_host_set" "web" { - **host_ids** (Set of String) The list of host IDs contained in this set. - **name** (String) The hostset name. Defaults to the resource name. -### Read-only +### Read-Only - **id** (String) The ID of the hostset. diff --git a/docs/resources/role.md b/docs/resources/role.md index 4f8d33dc..6c07b95b 100644 --- a/docs/resources/role.md +++ b/docs/resources/role.md @@ -133,7 +133,7 @@ resource "boundary_role" "readonly" { - **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. -### Read-only +### Read-Only - **id** (String) The ID of the role. diff --git a/docs/resources/scope.md b/docs/resources/scope.md index 508c7f50..a2aac06d 100644 --- a/docs/resources/scope.md +++ b/docs/resources/scope.md @@ -75,7 +75,7 @@ resource "boundary_role" "org_admin" { - **global_scope** (Boolean) Indicates that the scope containing this value is the global scope, which triggers some specialized behavior to allow it to be imported and managed. - **name** (String) The scope name. Defaults to the resource name. -### Read-only +### Read-Only - **id** (String) The ID of the scope. diff --git a/docs/resources/target.md b/docs/resources/target.md index 1603d75a..cf8b7fbb 100644 --- a/docs/resources/target.md +++ b/docs/resources/target.md @@ -6,7 +6,7 @@ description: |- The target resource allows you to configure a Boundary target. --- -# Resource `boundary_target` +# boundary_target (Resource) The target resource allows you to configure a Boundary target. @@ -93,7 +93,7 @@ resource "boundary_target" "foo" { - **session_max_seconds** (Number) - **worker_filter** (String) Boolean expression to filter the workers for this target -### Read-only +### Read-Only - **id** (String) The ID of the target. diff --git a/docs/resources/user.md b/docs/resources/user.md index 4fa23970..29e61b42 100644 --- a/docs/resources/user.md +++ b/docs/resources/user.md @@ -6,7 +6,7 @@ description: |- The user resource allows you to configure a Boundary user. --- -# Resource `boundary_user` +# boundary_user (Resource) The user resource allows you to configure a Boundary user. @@ -54,7 +54,7 @@ resource "boundary_user" "jeff" { - **description** (String) The user description. - **name** (String) The username. Defaults to the resource name. -### Read-only +### Read-Only - **id** (String) The ID of the user. diff --git a/go.sum b/go.sum index 195a8c99..62bceb18 100644 --- a/go.sum +++ b/go.sum @@ -121,6 +121,7 @@ github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0= +github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -134,6 +135,7 @@ github.com/aliyun/alibaba-cloud-sdk-go v1.61.545/go.mod h1:pUKYbK5JQ+1Dfxk80P0qx github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= github.com/andybalholm/crlf v0.0.0-20171020200849-670099aa064f/go.mod h1:k8feO4+kXDxro6ErPXBRTJ/ro2mf0SsFG8s7doP9kJE= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/arrow/go/arrow v0.0.0-20200601151325-b2287a20f230/go.mod h1:QNYViu/X0HXDHw7m3KXzWSVXIbfUvJqBFe6Gj8/pYA0= @@ -163,6 +165,7 @@ github.com/armon/go-metrics v0.3.6/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4 github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= @@ -307,6 +310,7 @@ github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGE github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/favadi/protoc-go-inject-tag v1.1.0/go.mod h1:13goAxKedbu5IbfI0n2wIKh1CCgZOwPNZQd0igDWvko= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= @@ -319,6 +323,7 @@ github.com/fsouza/fake-gcs-server v1.17.0/go.mod h1:D1rTE4YCyHFNa99oyJJ5HyclvN/0 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-bindata/go-bindata/v3 v3.1.3/go.mod h1:1/zrpXsLD8YDIbhZRqXzm1Ghc7NhEvIN9+Z6R5/xH4I= @@ -328,6 +333,7 @@ github.com/go-git/go-billy/v5 v5.0.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI github.com/go-git/go-billy/v5 v5.1.0 h1:4pl5BV4o7ZG/lterP4S6WzJ6xr49Ba5ET9ygheTYahk= github.com/go-git/go-billy/v5 v5.1.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= github.com/go-git/go-git-fixtures/v4 v4.0.1/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= +github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12 h1:PbKy9zOy4aAKrJ5pibIRpVO2BXnK1Tlcg+caKI7Ox5M= github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= github.com/go-git/go-git/v5 v5.1.0/go.mod h1:ZKfuPUoY1ZqIG4QG9BDBh3G4gLM5zvPuSJAozQrZuyM= github.com/go-git/go-git/v5 v5.3.0 h1:8WKMtJR2j8RntEXR/uvTKagfEt4GYlwQ7mntE4+0GWc= @@ -466,6 +472,7 @@ github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51 github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=