Skip to content

Commit 721a41a

Browse files
authored
feat: add enable_audit_log_stdout to workspace profile setting (#161)
1 parent ae02d9b commit 721a41a

5 files changed

Lines changed: 24 additions & 6 deletions

File tree

go.mod

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ go 1.24.4
55
toolchain go1.24.5
66

77
require (
8-
buf.build/gen/go/bytebase/bytebase/connectrpc/go v1.19.1-20251028065552-6af993a4e965.2
9-
buf.build/gen/go/bytebase/bytebase/protocolbuffers/go v1.36.10-20251028065552-6af993a4e965.1
8+
buf.build/gen/go/bytebase/bytebase/connectrpc/go v1.19.1-20251112064355-0f07c1221251.2
9+
buf.build/gen/go/bytebase/bytebase/protocolbuffers/go v1.36.10-20251112064355-0f07c1221251.1
1010
connectrpc.com/connect v1.19.1
1111
github.com/hashicorp/go-cty v1.5.0
1212
github.com/hashicorp/terraform-plugin-docs v0.13.0
@@ -19,6 +19,7 @@ require (
1919
)
2020

2121
require (
22+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.10-20250912141014-52f32327d4b0.1 // indirect
2223
github.com/Masterminds/goutils v1.1.1 // indirect
2324
github.com/Masterminds/semver/v3 v3.2.0 // indirect
2425
github.com/Masterminds/sprig/v3 v3.2.3 // indirect

go.sum

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
buf.build/gen/go/bytebase/bytebase/connectrpc/go v1.19.1-20251028065552-6af993a4e965.2 h1:CZTFNOTvABA040G3+5NwGQAGS7T5LpD+BM2KlMJu+JU=
2-
buf.build/gen/go/bytebase/bytebase/connectrpc/go v1.19.1-20251028065552-6af993a4e965.2/go.mod h1:II5aVnTLrAfZPAqR9V0Q31jk23r0XkASN5j0WuNKJt4=
3-
buf.build/gen/go/bytebase/bytebase/protocolbuffers/go v1.36.10-20251028065552-6af993a4e965.1 h1:IGhBcGyGHyTFk4bnCoeBOB+4YqH7GyKx6Q3I706oHFk=
4-
buf.build/gen/go/bytebase/bytebase/protocolbuffers/go v1.36.10-20251028065552-6af993a4e965.1/go.mod h1:hCjM3DsxzHQGb3QEnCNYrln9ZgB16AZLOVfRJZRKC0E=
1+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.10-20250912141014-52f32327d4b0.1 h1:31on4W/yPcV4nZHL4+UCiCvLPsMqe/vJcNg8Rci0scc=
2+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.10-20250912141014-52f32327d4b0.1/go.mod h1:fUl8CEN/6ZAMk6bP8ahBJPUJw7rbp+j4x+wCcYi2IG4=
3+
buf.build/gen/go/bytebase/bytebase/connectrpc/go v1.19.1-20251112064355-0f07c1221251.2 h1:JHCYdnOEIwnJb5uQ/+obxF4Dituukc19QLBdSgdZ2NM=
4+
buf.build/gen/go/bytebase/bytebase/connectrpc/go v1.19.1-20251112064355-0f07c1221251.2/go.mod h1:RvY9MaPrZB0Wh3feGeuWh1E+NuZMZRxKKl05xH3QPe4=
5+
buf.build/gen/go/bytebase/bytebase/protocolbuffers/go v1.36.10-20251112064355-0f07c1221251.1 h1:eJqVKrlvzRdUT6pOm4bIZa7ZDFAnV8p7afKMo1SFEaQ=
6+
buf.build/gen/go/bytebase/bytebase/protocolbuffers/go v1.36.10-20251112064355-0f07c1221251.1/go.mod h1:iixFwzTD0lQdRrbylrXjPWWRSasCc2UF3asVypVXecY=
57
connectrpc.com/connect v1.19.1 h1:R5M57z05+90EfEvCY1b7hBxDVOUl45PrtXtAV2fOC14=
68
connectrpc.com/connect v1.19.1/go.mod h1:tN20fjdGlewnSFeZxLKb0xwIZ6ozc3OQs2hTXy4du9w=
79
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=

provider/data_source_setting.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,11 @@ func getWorkspaceProfileSetting(computed bool) *schema.Schema {
371371
},
372372
},
373373
},
374+
"enable_audit_log_stdout": {
375+
Type: schema.TypeBool,
376+
Optional: true,
377+
Description: "Enable audit logging to stdout in structured JSON format. Requires TEAM or ENTERPRISE license.",
378+
},
374379
},
375380
},
376381
}
@@ -774,6 +779,7 @@ func flattenWorkspaceProfileSetting(setting *v1pb.WorkspaceProfileSetting) []int
774779
}
775780
// If announcement is empty, don't set it at all - let Terraform handle it as unset
776781
}
782+
raw["enable_audit_log_stdout"] = setting.EnableAuditLogStdout
777783

778784
return []interface{}{raw}
779785
}

provider/resource_setting.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,10 @@ func convertToV1WorkspaceProfileSetting(d *schema.ResourceData) (*v1pb.Workspace
256256
}
257257
updateMasks = append(updateMasks, "value.workspace_profile_setting_value.announcement")
258258
}
259+
if config := workspaceRawConfig.GetAttr("enable_audit_log_stdout"); !config.IsNull() {
260+
workspacePrfile.EnableAuditLogStdout = raw["enable_audit_log_stdout"].(bool)
261+
updateMasks = append(updateMasks, "value.workspace_profile_setting_value.enable_audit_log_stdout")
262+
}
259263

260264
return workspacePrfile, updateMasks, nil
261265
}
@@ -604,6 +608,7 @@ func resourceSettingDelete(ctx context.Context, d *schema.ResourceData, m interf
604608
"value.workspace_profile_setting_value.token_duration",
605609
"value.workspace_profile_setting_value.maximum_role_expiration",
606610
"value.workspace_profile_setting_value.announcement",
611+
"value.workspace_profile_setting_value.enable_audit_log_stdout",
607612
}
608613
case v1pb.Setting_DATA_CLASSIFICATION:
609614
setting.Value = &v1pb.Value{

provider/resource_setting_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ func TestAccSetting_WorkspaceProfile(t *testing.T) {
7373
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.disallow_signup", "true"),
7474
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.disallow_password_signin", "false"),
7575
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.database_change_mode", "PIPELINE"),
76+
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.enable_audit_log_stdout", "false"),
7677
),
7778
},
7879
// Update workspace profile setting with domains
@@ -82,6 +83,7 @@ func TestAccSetting_WorkspaceProfile(t *testing.T) {
8283
internal.TestCheckResourceExists(resourceName),
8384
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.domains.#", "2"),
8485
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.enforce_identity_domain", "true"),
86+
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.enable_audit_log_stdout", "true"),
8587
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.announcement.#", "1"),
8688
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.announcement.0.text", "Test announcement"),
8789
resource.TestCheckResourceAttr(resourceName, "workspace_profile.0.announcement.0.level", "INFO"),
@@ -393,6 +395,7 @@ resource "bytebase_setting" "%s" {
393395
disallow_password_signin = false
394396
database_change_mode = "PIPELINE"
395397
token_duration_in_seconds = 3600
398+
enable_audit_log_stdout = false
396399
}
397400
}
398401
`, identifier)
@@ -411,6 +414,7 @@ resource "bytebase_setting" "%s" {
411414
enforce_identity_domain = true
412415
token_duration_in_seconds = 7200
413416
maximum_role_expiration_in_seconds = 86400
417+
enable_audit_log_stdout = true
414418
announcement {
415419
text = "Test announcement"
416420
link = "https://example.com/announcement"

0 commit comments

Comments
 (0)