-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FlatteningError while working with remote "$ref" in typeConfiguration #1084
Comments
There is a pragmatic fix: diff --git a/src/rpdk/core/project.py b/src/rpdk/core/project.py
index bbf0922..b0870ae 100644
--- a/src/rpdk/core/project.py
+++ b/src/rpdk/core/project.py
@@ -509,6 +509,7 @@ class Project: # pylint: disable=too-many-instance-attributes,too-many-public-m
if "typeConfiguration" in self.schema:
configuration_schema = self.schema["typeConfiguration"]
configuration_schema["definitions"] = self.schema.get("definitions", {})
+ configuration_schema["remote"] = self.schema.get("remote", {})
configuration_schema["typeName"] = self.type_name
self.configuration_schema = configuration_schema By simply adding the remote definitions to the to-be generated type-configuration. It will pass the flattening check, and still be valid according to the meta-schema which allows for a I was unable to find a meta-schema specific for the type-configuration. So, I am assuming that the provider one applies here as well. |
I found the appropriate schema for type configuration: https://github.com/aws-cloudformation/cloudformation-cli/blob/master/src/rpdk/core/data/schema/provider.configuration.definition.schema.v1.json |
I am currently resolving this by pulling in the remote schemas by myself, and embedding them before I hand it to |
I am working on a set of custom resource types that share two pieces of configuration over all planned types:
To limit the amount of duplicate JSON definitions, I took a page out of the teams book and created a bucket where I placed my remote definitions. And uploaded the shared definitions in that bucket.
Resulting in a definition JSON like follows:
It works for the Environment property. That by itself and
cfn generate
finishes without problem. But when I add the reference to thetypeConfiguration
,cfn generate
will produce the following error:rpdk.core.jsonutils.utils.FlatteningError: Invalid ref: ('remote', 'schema1')
When perusing through the logs, I do see both schema's being picked up and verified. Both written to
remote/schema0
andremote/schema1
. And files are generated, but the config JSON looks as follows:I tried a few things:
$ref
-s: Flattening error. Resulting generated code did reflect the swapped configuration.I might dive into the code and see how both blocks are rendered and how they differ. But it is late for me, at the time of writing this issue, and maybe someone will see an obvious mistake I missed.
Thanks in advance.
The text was updated successfully, but these errors were encountered: