Skip to content

Commit ea2cbe2

Browse files
User resources. (#145)
* Update github.com/DependencyTrack/client-go to v0.18.0. * Update OIDCGroupResource to account for dtrack binding is no longer a paged interface, as API method is not paged. * Added dependencytrack_managed_user resource. * Added dependencytrack_user_team resource. * Added dependencytrack_user_permission resource. * Renamed dependencytrack_managed_user to dependencytrack_user resource. * Add example for dependencytrack_user_permission, and dependencytrack_user_team.
1 parent a63c247 commit ea2cbe2

File tree

20 files changed

+1203
-14
lines changed

20 files changed

+1203
-14
lines changed

.golangci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ linters:
130130
- "^github.com/DependencyTrack/client-go\\.Repository$"
131131
- "^github.com/DependencyTrack/client-go\\.SortOptions$"
132132
- "^github.com/DependencyTrack/client-go\\.Component$"
133+
- "^github.com/DependencyTrack/client-go\\.ManagedUser$"
133134
- "^terraform-provider-dependencytrack/internal/provider\\.[a-z][a-zA-Z]*Resource$"
134135
- "^terraform-provider-dependencytrack/internal/provider\\.[a-z][a-zA-Z]*DataSource$"
135136
- "^terraform-provider-dependencytrack/internal/provider\\.dependencyTrackProvider$"

docs/resources/team_permission.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ resource "dependencytrack_team_permission" "example" {
2828

2929
### Required
3030

31-
- `permission` (String) Permission name to attach / detach from the Team.
31+
- `permission` (String) Permission name to attach to the Team.
3232
- `team` (String) UUID for the Team for which to manage the permission.

docs/resources/user.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "dependencytrack_user Resource - dependencytrack"
4+
subcategory: ""
5+
description: |-
6+
Manages a Managed User.
7+
---
8+
9+
# dependencytrack_user (Resource)
10+
11+
Manages a Managed User.
12+
13+
## Example Usage
14+
15+
```terraform
16+
resource "dependencytrack_user" "example" {
17+
username = "Example"
18+
fullname = "Example User"
19+
email = "Example_User@example.com"
20+
password = "Initial_User_Password"
21+
}
22+
```
23+
24+
<!-- schema generated by tfplugindocs -->
25+
## Schema
26+
27+
### Required
28+
29+
- `email` (String) Email Address of the User.
30+
- `fullname` (String) Full name of the User.
31+
- `username` (String) Username of the User.
32+
33+
### Optional
34+
35+
- `force_password_change` (Boolean) Whether the User Must change their password on next login.
36+
- `password` (String, Sensitive) Updated password to set for the user.
37+
- `password_expires` (Boolean) Whether the User's password expires. Interval set by DependencyTrack.
38+
- `suspended` (Boolean) Whether the User Account is Suspended.
39+
40+
### Read-Only
41+
42+
- `id` (String) User's username.
43+
44+
## Import
45+
46+
Import is supported using the following syntax:
47+
48+
```shell
49+
terraform import dependencytrack_user.example Example
50+
```

docs/resources/user_permission.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "dependencytrack_user_permission Resource - dependencytrack"
4+
subcategory: ""
5+
description: |-
6+
Manages the attachment of a Permission to a User.
7+
---
8+
9+
# dependencytrack_user_permission (Resource)
10+
11+
Manages the attachment of a Permission to a User.
12+
13+
## Example Usage
14+
15+
```terraform
16+
resource "dependencytrack_user" "example" {
17+
username = "Example"
18+
fullname = "Example User"
19+
email = "Example_User@example.com"
20+
password = "Initial_User_Password"
21+
}
22+
23+
resource "dependencytrack_user_permission" "example" {
24+
username = dependencytrack_user.example.username
25+
permission = "BOM_UPLOAD"
26+
}
27+
```
28+
29+
<!-- schema generated by tfplugindocs -->
30+
## Schema
31+
32+
### Required
33+
34+
- `permission` (String) Permission name to attach to the User.
35+
- `username` (String) Username for the User for which to manage the permission.

docs/resources/user_team.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "dependencytrack_user_team Resource - dependencytrack"
4+
subcategory: ""
5+
description: |-
6+
Manages a team membership for a user.
7+
---
8+
9+
# dependencytrack_user_team (Resource)
10+
11+
Manages a team membership for a user.
12+
13+
## Example Usage
14+
15+
```terraform
16+
resource "dependencytrack_team" "example" {
17+
name = "Example"
18+
}
19+
resource "dependencytrack_user" "example" {
20+
username = "Example"
21+
fullname = "Example User"
22+
email = "Example_User@example.com"
23+
password = "Initial_User_Password"
24+
}
25+
26+
resource "dependencytrack_user_team" "example" {
27+
username = dependencytrack_user.example.username
28+
team = dependencytrack_team.example.id
29+
}
30+
```
31+
32+
<!-- schema generated by tfplugindocs -->
33+
## Schema
34+
35+
### Required
36+
37+
- `team` (String) UUID for the Team.
38+
- `username` (String) Username for which to manage Team membership.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
terraform import dependencytrack_user.example Example
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
resource "dependencytrack_user" "example" {
2+
username = "Example"
3+
fullname = "Example User"
4+
email = "Example_User@example.com"
5+
password = "Initial_User_Password"
6+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
resource "dependencytrack_user" "example" {
2+
username = "Example"
3+
fullname = "Example User"
4+
email = "Example_User@example.com"
5+
password = "Initial_User_Password"
6+
}
7+
8+
resource "dependencytrack_user_permission" "example" {
9+
username = dependencytrack_user.example.username
10+
permission = "BOM_UPLOAD"
11+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
resource "dependencytrack_team" "example" {
2+
name = "Example"
3+
}
4+
resource "dependencytrack_user" "example" {
5+
username = "Example"
6+
fullname = "Example User"
7+
email = "Example_User@example.com"
8+
password = "Initial_User_Password"
9+
}
10+
11+
resource "dependencytrack_user_team" "example" {
12+
username = dependencytrack_user.example.username
13+
team = dependencytrack_team.example.id
14+
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module terraform-provider-dependencytrack
33
go 1.24.0
44

55
require (
6-
github.com/DependencyTrack/client-go v0.17.1-0.20250928165948-bd03e361a95f
6+
github.com/DependencyTrack/client-go v0.18.0
77
github.com/google/uuid v1.6.0
88
github.com/hashicorp/terraform-plugin-framework v1.17.0
99
github.com/hashicorp/terraform-plugin-go v0.29.0

0 commit comments

Comments
 (0)