Zack
08/03/2026, 9:21 PMZack
08/03/2026, 9:21 PMPulled upstream origin/main; this checkout is current at e299b5104.
Yes—there’s an Atmos bug in concurrent streaming: pkg/io/line_prefix_writer.go:109 preserves raw \r while injecting
prefixes, and the Terraform adapter uses separate stdout/stderr locks (pkg/scheduler/adapters/terraform.go:1291). That
explains the overwritten/shifted fragments.
Immediate workaround, retaining concurrency:
atmos terraform apply ... --max-concurrency 3 --log-order grouped -auto-approve
That avoids live prefixed streams. No code changed.
Zack
08/03/2026, 9:40 PMErik Osterman (Cloud Posse)
08/03/2026, 11:08 PMErik Osterman (Cloud Posse)
08/03/2026, 11:08 PMErik Osterman (Cloud Posse)
08/03/2026, 11:08 PMErik Osterman (Cloud Posse)
08/03/2026, 11:10 PMErik Osterman (Cloud Posse)
08/03/2026, 11:10 PMZack
08/03/2026, 11:24 PMErik Osterman (Cloud Posse)
08/03/2026, 11:25 PMErik Osterman (Cloud Posse)
08/03/2026, 11:25 PMZack
08/04/2026, 12:10 AMin stack "<MASKED>-dev1".Zack
08/04/2026, 12:11 AMErik Osterman (Cloud Posse)
08/04/2026, 12:36 AMZack
08/04/2026, 12:38 AMZack
08/04/2026, 12:39 AMErik Osterman (Cloud Posse)
08/04/2026, 12:41 AMZack
08/04/2026, 12:41 AMErik Osterman (Cloud Posse)
08/04/2026, 12:41 AMZack
08/04/2026, 12:41 AMZack
08/04/2026, 12:42 AMErik Osterman (Cloud Posse)
08/04/2026, 12:42 AM<MASKED> value appear in any variable input that is also marked sensitive?Erik Osterman (Cloud Posse)
08/04/2026, 12:43 AMErik Osterman (Cloud Posse)
08/04/2026, 12:44 AMErik Osterman (Cloud Posse)
08/04/2026, 2:55 AMErik Osterman (Cloud Posse)
08/04/2026, 2:55 AMErik Osterman (Cloud Posse)
08/04/2026, 2:55 AMErik Osterman (Cloud Posse)
08/04/2026, 12:48 PMThe tests verifyand its nested cleanup behavior, but they do not verify thatSuppressSpinners()activates suppression whenExecuteTerraformand restores it after completion. I recommend adding that adapter-level regression test. It will protect the policy that parallel execution must downgrade transient UI.MaxConcurrency > 1
Erik Osterman (Cloud Posse)
08/04/2026, 12:48 PMZack
08/04/2026, 1:24 PMZack
08/04/2026, 3:38 PMErik Osterman (Cloud Posse)
08/04/2026, 5:07 PMErik Osterman (Cloud Posse)
08/04/2026, 5:07 PMZack
08/04/2026, 5:22 PMhooks:
store-outputs:
outputs:
rds_properties: .rds_properties
That being said, that output isn't actually marked as sensitive from the moduleZack
08/04/2026, 5:22 PMZack
08/04/2026, 5:31 PM!terraform.state lookups somehow get marked as sensitiveZack
08/04/2026, 5:31 PMZack
08/04/2026, 5:32 PMErik Osterman (Cloud Posse)
08/04/2026, 5:50 PMErik Osterman (Cloud Posse)
08/04/2026, 5:50 PMZack
08/04/2026, 6:51 PMce_port" = 5432
[justastring-dev1/uds-rds] "db_name" = "justastring"
[justastring-dev1/uds-rds] }
[justastring-dev1/uds-rds] rds_sensitive_properties = <sensitive>
INFO Running hooks event=after.terraform.apply status=success component=uds-rds stack=justastring-dev1
▶ Auto-provisioned JIT workdir for component 'uds-rds' in stack 'justastring-dev1'
💡 Tip: use !terraform.state instead of !terraform.output to read outputs without terraform init
✓ Fetching rds_properties output from uds-rds in <MASKED>-dev1
⚠ 3 component(s) skipped after an earlier failure
Error
Error: terraform execution failed: component=$platform-uds-pkg-dbeaver stack=<MASKED>-dev1: subcommand exited with code 1
terraform output:Zack
08/04/2026, 6:51 PMZack
08/04/2026, 6:53 PMrds_sensitive_properties = <sensitive> is a real output from this component (module), and is senstive, but we aren't even consuming thatZack
08/04/2026, 6:53 PMjustastring would be the string being <MASKED>Zack
08/04/2026, 6:54 PMhooks:
store-outputs:
outputs:
rds_properties: .rds_properties
but this is a different variable, and not sensitiveZack
08/04/2026, 6:55 PMZack
08/04/2026, 6:57 PMZack
08/04/2026, 6:57 PMZack
08/04/2026, 6:58 PM"db_name" = "justastring" - that exists inside the output rds_properties ¯\_(ツ)_/¯Zack
08/04/2026, 7:01 PMZack
08/04/2026, 7:10 PMjustastring also exists inside of rds_sensitive_properties
output "rds_sensitive_properties" {
sensitive = true
description = <<-EOF
RDS Sensitive Properties:
db_instance_username: "The master username for the database"
db_instance_password: "The password for the master user (null if AWS-managed)"
EOF
value = {
db_instance_username = var.rds_requirements.username
db_instance_password = var.rds_options.manage_master_user_password ? null : random_password.rds_password[0].result
}
}
In this case it would be the db_instance_username
Again, still not actually using that output anywhere, but the string would match
but this seems onto something
The Recommended Next Step
Check every output on the component, not only rds_properties, for the sensitive = true marker. Run this command:
atmos terraform output <component> -s <stack> --json | jq 'to_entries[] | select(.value.sensitive)'
Or, search the module file <http://outputs.tf|outputs.tf> for the text sensitive = true.
If a sensitive output's value shares text with the stack name, that output is the source of the masked text. The store, the variable, and rds_properties are not the source.Zack
08/04/2026, 7:49 PMZack
08/04/2026, 8:05 PMErik Osterman (Cloud Posse)
08/04/2026, 8:11 PMZack
08/04/2026, 8:11 PMZack
08/04/2026, 8:11 PMErik Osterman (Cloud Posse)
08/04/2026, 8:11 PMZack
08/04/2026, 8:54 PMErik Osterman (Cloud Posse)
08/04/2026, 8:57 PMZack
08/04/2026, 9:51 PMErik Osterman (Cloud Posse)
08/04/2026, 9:57 PMErik Osterman (Cloud Posse)
08/04/2026, 9:57 PMZack
08/04/2026, 10:00 PMZack
08/04/2026, 10:01 PMZack
08/04/2026, 10:06 PMZack
08/04/2026, 10:12 PMErik Osterman (Cloud Posse)
08/04/2026, 10:13 PMErik Osterman (Cloud Posse)
08/04/2026, 10:13 PMZack
08/04/2026, 10:14 PMZack
08/04/2026, 11:49 PMErik Osterman (Cloud Posse)
08/05/2026, 2:19 AMErik Osterman (Cloud Posse)
08/05/2026, 2:20 AM