Simfra Tags Reference
Tags with the simfra: prefix control simulator-specific behavior. They are preserved on the resource for Terraform state compatibility (Simfra never strips them). There are two categories.
Resource ID overrides
A simfra:<FieldName> tag on a create request tells Simfra to use the tag value as the resource ID instead of generating a random one.
For resources that don't accept tags at creation time (Route53 hosted zones, Organizations), use the Simfra Terraform provider instead.
See Resource ID Overrides for the full list of supported fields and examples.
Behavioral tags
These tags change how a resource behaves rather than its ID.
| Tag | Service | Values | Effect |
|---|---|---|---|
simfra:PlaceholderObjects |
S3 (bucket) | true / false (default) |
When true, GetObject/HeadObject for a non-existent key return a synthetic 200 placeholder instead of 404 NoSuchKey. Existing objects are always returned as-is; version-specific requests are unaffected. |
simfra:PlaceholderObjects
Set on a bucket (via aws_s3_bucket tags, which Terraform applies with PutBucketTagging). This lets data "aws_s3_object" lookups succeed against artifacts that were never uploaded — for example, Lambda deployment zips referenced by infrastructure-as-code — without maintaining a static seed list of placeholder objects.
The placeholder response is deterministic: the content type is inferred from the key extension (.zip returns a minimal valid empty zip; other extensions return an empty body), the ETag is the MD5 of that body, and LastModified is the bucket's creation time — so Terraform detects no drift across refreshes.
resource "aws_s3_bucket" "lambda_payloads" {
bucket = "my-shared-service-lambda-payloads-us-east-1"
tags = {
"simfra:PlaceholderObjects" = "true"
}
}