Skip to content

feat(nullplatform): cover Lambda@Edge associations and aws-parameter-store in the provider_config modules - #562

Merged
agustincelentano merged 2 commits into
mainfrom
feat/provider-config-missing-types
Sep 4, 2026
Merged

feat(nullplatform): cover Lambda@Edge associations and aws-parameter-store in the provider_config modules#562
agustincelentano merged 2 commits into
mainfrom
feat/provider-config-missing-types

Conversation

@agustincelentano

Copy link
Copy Markdown
Collaborator

Why

6.9.0 retyped scope_configuration and parameter_storage_configuration (#9a0e87ab): the free-form attributes input was replaced by typed variables that mirror each provider spec. The types were modelled after the consumers visible at the time, and two configurations that the platform supports were left without a typed path, so installs using them are stuck on the pre-6.9.0 module and its ignore_changes = [attributes]:

  • static-files with Lambda@Edge. scopes-static-files declares distribution.lambda_associations in specs/scope-configuration.json.tpl and its CloudFront setup reads it (providers["scope-configurations"].distribution.lambda_associations). The module never modelled the field.
  • aws-parameter-store. parameter_storage_configuration is hardcoded to aws-secrets-manager. Installs storing non-secret parameters in SSM (parameters-provider, aws-parameter-store-configuration.json.tpl) have no type to select.

What

scope_configuration

  • aws_lambda_associations: list of { event_type, function_arn }, event_type validated against the spec enum (viewer-request, viewer-response, origin-request, origin-response), no repeated events, static-files/aws only.
  • Sent only when non-empty, so existing configurations produce the exact same payload as today.

parameter_storage_configuration

  • New type = "aws-parameter-store" with the spec defaults: sensibility.applies_to = ["non_secret"], setup.kms_key_id = "", setup.tier = "Standard".
  • New tier variable (Standard | Advanced | Intelligent-Tiering), parameter-store only.
  • applies_to now defaults to each type's own spec default instead of a fixed ["secret"]. Callers that set it explicitly are unaffected; aws-secrets-manager callers relying on the default still get ["secret"].

Tests

  • tests/*.tftest.hcl for both modules with a mocked nullplatform provider, same shape as nullplatform/metrics: payload assertions for every type, lambda_associations present/absent, and negative cases (expect_failures) for an unknown event, tier on Secrets Manager and an unknown type.
  • Both modules added to the test-nullplatform-modules job.

Verification

nullplatform/scope_configuration              tofu test: 4 passed
nullplatform/parameter_storage_configuration  tofu test: 5 passed

tofu validate and tofu fmt -check clean on both. Hand-written README sections updated; the inputs tables are left to the docs bot.

Compatibility

No breaking change. Every existing caller of either module produces the same payload after this PR.

🤖 Generated with Claude Code

…-files

The static-files provider spec (scopes-static-files, scope-configuration.json.tpl)
declares distribution.lambda_associations and its CloudFront setup reads it, but
the typed module introduced in 6.9.0 never modelled the field, so an install that
attaches a Lambda@Edge function could not move off the generic attributes input.

Adds aws_lambda_associations (event_type + function_arn, one per CloudFront
event, enum-validated). The key is only sent when the list is non-empty, so
configurations without associations keep producing the same payload as before.
…e type

The module was hardcoded to aws-secrets-manager, the only type in use where it
was written. Installs that store non-secret parameters in SSM Parameter Store
(parameters-provider, aws-parameter-store-configuration.json.tpl) had no typed
path and were stuck on the pre-6.9.0 attributes input.

Adds the type with its spec defaults (applies_to [non_secret], kms_key_id "",
tier Standard) and a validated tier variable. applies_to now defaults to each
type's own spec default instead of a fixed [secret]; callers that set it
explicitly are unaffected. Both provider_config modules get tftest suites and
join the nullplatform test job.
@agustincelentano
agustincelentano merged commit bdb03e0 into main Sep 4, 2026
53 checks passed
@agustincelentano
agustincelentano deleted the feat/provider-config-missing-types branch September 4, 2026 13:24
release-application Bot added a commit that referenced this pull request Sep 4, 2026
🤖 I have created a release *beep* *boop*
---


##
[7.3.0](v7.2.1...v7.3.0)
(2026-09-04)


### Features

* **nullplatform:** cover Lambda@Edge associations and
aws-parameter-store in the provider_config modules
([#562](#562))
([bdb03e0](bdb03e0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants