Skip to content

Commit 873187d

Browse files
authored
Add user_team_membership resource
2 parents afb8603 + d4ffe8b commit 873187d

File tree

7 files changed

+641
-3
lines changed

7 files changed

+641
-3
lines changed

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
## v0.2.0
2+
3+
FEATURES:
4+
5+
* **New Resource:** `dependencytrack_user_team_membership` - Manage user memberships in teams in Dependency-Track
6+
7+
BREAKING CHANGES:
8+
9+
* resource/managed_user: The `fullname` field is now required as mandated by the Dependency-Track API
10+
11+
ENHANCEMENTS:
12+
13+
* resource/user_team_membership: Supports full CRUD operations for user team memberships
14+
* resource/user_team_membership: Supports import using the format `username/team_uuid`
15+
* resource/user_team_membership: Works with managed, LDAP, and OIDC users
16+
* tests: Added acceptance tests for `dependencytrack_user_team_membership` resource using API key authentication
17+
18+
BUG FIXES:
19+
20+
* build: Fixed artifact path in GitHub workflow to use correct binary name `terraform-provider-dependencytrack`
21+
* build: Updated .gitignore to reflect correct binary name
22+
* module: Renamed Go module from `terraform-provider-dependency-track` to `terraform-provider-dependencytrack` for consistency
23+
* docs: Fixed GitHub repository URLs in CHANGELOG.md to use correct repository name
24+
125
## v0.1.0
226

327
FEATURES:

docs/resources/managed_user.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ resource "dependencytrack_managed_user" "example" {
3030

3131
### Required
3232

33+
- `fullname` (String) The full name of the user
3334
- `username` (String) The username of the user
3435

3536
### Optional
3637

3738
- `email` (String) The email address of the user
3839
- `force_password_change` (Boolean) Whether to force the user to change password on next login
39-
- `fullname` (String) The full name of the user
4040
- `non_expiry_password` (Boolean) Whether the password never expires
4141
- `password` (String, Sensitive) The password for the user (only used during create/update)
4242
- `suspended` (Boolean) Whether the user account is suspended
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "dependencytrack_user_team_membership Resource - dependencytrack"
4+
subcategory: ""
5+
description: |-
6+
Manages a user's membership in a team in Dependency-Track. This resource associates a user with a team.
7+
---
8+
9+
# dependencytrack_user_team_membership (Resource)
10+
11+
Manages a user's membership in a team in Dependency-Track. This resource associates a user with a team.
12+
13+
14+
15+
<!-- schema generated by tfplugindocs -->
16+
## Schema
17+
18+
### Required
19+
20+
- `team_uuid` (String) The UUID of the team
21+
- `username` (String) The username of the user
22+
23+
### Read-Only
24+
25+
- `id` (String) The unique identifier in the format `username/team_uuid`

internal/provider/managed_user_resource.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type ManagedUserResourceModel struct {
5151
// ManagedUser represents the API structure for managed users.
5252
type ManagedUser struct {
5353
Username string `json:"username"`
54-
Fullname string `json:"fullname,omitempty"`
54+
Fullname string `json:"fullname"`
5555
Email string `json:"email,omitempty"`
5656
NewPassword string `json:"newPassword,omitempty"`
5757
ConfirmPassword string `json:"confirmPassword,omitempty"`
@@ -85,7 +85,7 @@ func (r *ManagedUserResource) Schema(ctx context.Context, req resource.SchemaReq
8585
},
8686
"fullname": schema.StringAttribute{
8787
MarkdownDescription: "The full name of the user",
88-
Optional: true,
88+
Required: true,
8989
},
9090
"email": schema.StringAttribute{
9191
MarkdownDescription: "The email address of the user",

internal/provider/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ func (p *DependencyTrackProvider) Resources(ctx context.Context) []func() resour
214214
NewPolicyResource,
215215
NewACLMappingResource,
216216
NewTeamAPIKeyResource,
217+
NewUserTeamMembershipResource,
217218
}
218219
}
219220

0 commit comments

Comments
 (0)