Steampipe Plugin SDK is a simple abstraction layer to write a Steampipe plugin. Plugins automatically work across all engine types including the Steampipe CLI, Postgres FDW, SQLite extension and the export CLI.
Here, the awsConfig properties are loading correctly; they do not require to be defined with the cty. However, the properties of assumeRoleConfig, which is a child of awsConfig, are not loading as expected.
If at least one property of the assumeRoleConfig is not defined with cty, then getting the below error -
Error: failed to start plugin 'hub.steampipe.io/plugins/turbot/aws@latest': failed to start 'hub.steampipe.io/plugins/turbot/aws@latest': ConnectionConfigSchema parse failed with panic unsuitable DecodeExpression target: no cty.Type for aws.assumeRoleConfig (no cty field tags)
Without cty like Duration, ExternalId, and SessionName are not loading.
If any property is defined with an optional and cty tag - like -> ExternalId *string hcl:"external_id,optional" cty:"external_id" -
When the ExternalId is present in the connection config, it works fine.
If it is not present, then getting the below error and it is not honouring the optional tag-
Error: failed to start plugin 'hub.steampipe.io/plugins/turbot/aws@latest': failed to start 'hub.steampipe.io/plugins/turbot/aws@latest': failed to parse connection config for connection 'aws':
Unsuitable value type: Unsuitable value: attribute "external_id" is required
Here is a sample connection -
Below is the schema -
Here, the awsConfig properties are loading correctly; they do not require to be defined with the
cty
. However, the properties of assumeRoleConfig, which is a child of awsConfig, are not loading as expected.cty
, then getting the below error -Without
cty
like Duration, ExternalId, and SessionName are not loading.If any property is defined with an optional and cty tag - like -> ExternalId *string
hcl:"external_id,optional" cty:"external_id"
-This could be due to the parsing mechanism - https://github.com/turbot/steampipe-plugin-sdk/blob/main/plugin/connection_config_schema.go#L88