aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap
[AWS::QuickSight::Dashboard] - [Coverage] - Support ControlTitleFormatText in filter controls
- Dominant language
- No language data
- Stars
- 1.1k
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
### Name of the resource
AWS::QuickSight::Dashboard
### Description
Please add CloudFormation support for the QuickSight
`ControlTitleFormatText` property on filter controls, including
`FilterDropDownControl`, and align the legacy `Title` validation with the
QuickSight API where appropriate.
The QuickSight API currently supports `ControlTitleFormatText` as a tagged
union containing either `PlainText` or `RichText`. QuickSight authors can
create controls whose visible title is stored in this property.
However, an Asset Bundle export generated by QuickSight itself with
`ExportFormat=CLOUDFORMATION_JSON` can contain a dropdown definition like this:
```json
{
"Dropdown": {
"FilterControlId": "example-control-id",
"SourceFilterId": "example-filter-id",
"Title": "",
"Type": "MULTI_SELECT",
"ControlTitleFormatText": {
"RichText": "Status"
}
}
}
```
Deploying that exported template as `AWS::QuickSight::Dashboard` fails
CloudFormation resource validation with both of these errors:
```text
#/Definition/Sheets/.../FilterControls/.../Dropdown:
extraneous key [ControlTitleFormatText] is not permitted
#/Definition/Sheets/.../FilterControls/.../Dropdown/Title:
expected minLength: 1, actual: 0
```
This creates a compatibility gap where QuickSight can export a CloudFormation
template that the CloudFormation QuickSight resource provider cannot deploy
without a custom normalization step.
#### Expected behavior
- `AWS::QuickSight::Dashboard` accepts `ControlTitleFormatText` on dropdown and
other filter control types where the QuickSight API supports it.
- Both `PlainText` and `RichText` variants are supported consistently with the
QuickSight API.
- A CloudFormation Asset Bundle export produced by QuickSight can be deployed
without removing the property or converting the title manually.
- Existing non-empty legacy `Title` values continue to work.
#### Steps to reproduce
1. In a QuickSight analysis, add a dropdown filter control.
2. Configure its title using the current title formatting UI.
3. Publish the analysis as a dashboard.
4. Start an Asset Bundle export for the dashboard using
`CLOUDFORMATION_JSON`.
5. Deploy the exported `AWS::QuickSight::Dashboard` template with
CloudFormation.
6. Observe the property validation failure above.
The issue was reproduced in `eu-west-1`.
### Other Details
QuickSight API documentation showing `ControlTitleFormatText` on
`FilterDropDownControl`:
https://docs.aws.amazon.com/quicksight/latest/APIReference/API_FilterDropDownControl.html
QuickSight API definition of `ControlTitleFormatText`:
https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ControlTitleFormatText.html
Current CloudFormation `FilterDropDownControl` documentation, where the
property is absent and `Title` is required with minimum length 1:
https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-quicksight-dashboard-filterdropdowncontrol.html
The corresponding CloudFormation property schemas for
`AWS::QuickSight::Analysis` and `AWS::QuickSight::Template` may need the same
update because these resources share QuickSight definition structures.
Contributor guide
Research direction
Start by locating the CloudFormation schemas for AWS::QuickSight::Dashboard filter controls, then compare FilterDropDownControl with the QuickSight API documentation for ControlTitleFormatText. Check the corresponding AWS::QuickSight::Analysis and AWS::QuickSight::Template schemas as well. Done means exported CLOUDFORMATION_JSON definitions accept PlainText and RichText variants while existing non-empty Title values remain valid.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100