fix(service_definition): honrar dimensions del template y admitir la forma required - #561
Open
fedemaleh wants to merge 1 commit into
Open
fix(service_definition): honrar dimensions del template y admitir la forma required#561fedemaleh wants to merge 1 commit into
fedemaleh wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
El síntoma
Un service specification registrado con este módulo pierde sus dimensiones. En la UI eso se ve como un campo que tendría que ser un selector y sale como textbox: sin dimensiones declaradas, el formulario no las pide, y sin dimensiones resueltas el
additionalKeywords.enumno tiene contexto contra el cual filtrar.scopes.Cuesta de encontrar porque el spec queda registrado igual, sin error, y la diferencia sólo aparece al usar el formulario.
Dos causas, las dos acá
1. El service spec ignora las
dimensionsdel template. Las lee devar.dimensions, mientras que todo lo demás —type,attributes,selectors,use_default_actions— sale del archivo. Quien escribe el template ponedimensionsahí y se descarta en silencio.El link specification del mismo archivo ya hace lo correcto:
Este cambio alinea el service spec con esa forma, dejando
var.dimensionscomo fallback para no romper a quien lo pasa por variable:2. El tipo no puede expresar lo que la API acepta.
var.dimensionsesmap(string), así que sólo admite{environment = "production"}. La forma que necesita un spec para declarar una dimensión obligatoria es un objeto:{"environment": {"required": true}}Y esa forma es la que el provider documenta en la descripción de su propio atributo:
Pasa a
any.map(string)es un subconjunto, así que ningún consumidor actual cambia de comportamiento.Compatibilidad
dimensionsse comporta igual que antes: usavar.dimensions.var.dimensionscomomap(string)sigue funcionando.dimensionsempieza a respetarlas — que es el cambio buscado, y es el motivo por el que esto no puede ser un patch silencioso: un spec cuyo template ya las declaraba va a pasar de{}a lo que diga el archivo en el próximo apply.Verificación
tofu fmt -checklimpio y el HCL parsea.tofu validatecompleto no corre en el módulo aislado: falla resolviendonullplatform_packagecon el provider que bajainit, algo previo a este cambio y ajeno a él.La tabla del README se actualizó a mano para que coincida con lo que emitiría terraform-docs.