Milestone 2024-06-10 System Software Update
This pre-release milestone of Bosch IoT Rollouts Extension - Systems Software Update comes with the following improvements:
New features
ROLEX-157: Recipe file download
ROLEX-166: Systems mgmt api
ROLEX-163: Add UI
ROLEX-113: Add upload recipe
ROLEX-110: Add new product on management API
ROLEX-111: Add systems feature
ROLEX-296: Introduce e2e tests
ROLEX-290: Manage recipe lifecycle via Mgmt API
ROLEX-112: Systems list - Expose gateway ID as a target link
ROLEX-112: Systems list - Expose modules as a targets link
ROLEX-478: Introduce publishedBy audit field for recipes
ROLEX-341: Add recipe list UI
ROLEX-385: Add mgmt api recipe file download
ROLEX-386: Introduce display attributes for modules
ROLEX-475: Add recipe details UI
ROLEX-385: Management API: Resource collection for recipe signatures
ROLEX-506: Expose sha256 hash of recipe file via Management API
ROLEX-488: Add signature list in UI
ROLEX-506: Introduce WAITING_FOR_APPROVAL state
ROLEX-506: Management API: Expose links for "release recipe" and "deny recipe"
ROLEX-342: Add recipe lifecycle actions in UI
ROLEX-534: Add signature upload in UI
ROLEX-539: Introduce new canonical recipe model
ROLEX-573: Expose delete link for recipes and recipe signatures
ROLEX-573: Delete signature button
ROLEX-536: Introduce tagging of recipes
ROLEX-532: Mgmt API - Allow to search for recipes by name and ID
ROLEX-586: Add tag list in UI
ROLEX-634: Extend API to support recipe tagging
ROLEX-587: Show tags of recipe in UI
ROLEX-542: Management API: Provide read access to module update definitions and system distribution sets
ROLEX-537: Added file size and file count validation for signatures
ROLEX-542: Management API: Provide read access to meta data of recipes, module update definitions, and system distribution sets
ROLEX-587: UI add recipe tag
ROLEX-541: Add recipe transformation to install representation
ROLEX-603: UI module update definitions
ROLEX-602: UI distribution sets list
ROLEX-604: Add module update definition details
ROLEX-607: Distribution set details
ROLEX-609: Mgmt API: Write access to metadata
ROLEX-605: UI metadata lists
ROLEX-541: Use default template if no tenant specific template found
ROLEX-671: Introduce tenant config store
ROLEX-605: UI add metadata
ROLEX-609: Management API: Write access to system distribution sets and module update definitions
ROLEX-609: Management API: add endpoint to update a recipe
ROLEX-605: UI edit metadata
ROLEX-671: Introduce tenant config cache
ROLEX-581: UI add recipe
ROLEX-581: UI recipe delete and edit
ROLEX-719: Manage module update definitions in the UI
ROLEX-718: Manage system distribution sets in the UI
ROLEX-675: Introduce validation framework
ROLEX-530: UI tag management
ROLEX-530: UI tag assignemnt
ROLEX-531: UI recipe filtering
ROLEX-606: Introduced metadata validator
ROLEX-799: Upload recipe endpoint
ROLEX-799: Upload recipe ui
ROLEX-801: Recipe Validation API incl. data model enhancements
ROLEX-282: Introduce RBAC
ROLEX-123: Validate recipes via Management UI
ROLEX-741: Validation Report UI
ROLEX-720: Introduce ordering and sorting of module update definitions via API
ROLEX-838: Add extra state to recipe lifecycle for waiting for signature
ROLEX-838: Introduce new state "Waiting for signature" in Mgmt UI
ROLEX-736: expose system details
ROLEX-815: Introduce tenant-config admin API with extended security config
ROLEX-928: Introduce RBAC API access tests
ROLEX-350: Management API: Allow to filter list of systems
ROLEX-969: system actions
ROLEX-959: UI extend system properties
ROLEX-805: Create match-views and service
ROLEX-1030: Add softwareId to "properties" section in recipe
ROLEX-350: ui systems filtering
ROLEX-1005: Management API: Allow to create a recipe with a pre-defined ID
ROLEX-1029: initialSystemReportTime
ROLEX-805: Normalize version properties of system report
ROLEX-1029: filter systems api
ROLEX-1036: Introduce asynchronous match/count jobs
ROLEX-1029: UI system filtering
ROLEX-1074: Introduce new jobs api
ROLEX-1074: Provide recipe info as link
ROLEX-1075: Provide timestamp of last recipe match to a system
ROLEX-1073: show tag ID
ROLEX-355: filter by recipe match
ROLEX-1011: Provide option to delete systems
ROLEX-929: Provide an option to bind a SOUP tenant with Sign&Encrypt
ROLEX-1032: Refine timestamp validation of update and system reports
ROLEX-355: UI filter for recipe match
ROLEX-1011: Introduce SystemDetailsActions to perform system deletion
ROLEX-1107: UI match job info
ROLEX-1058: Update JSON schema of update report (Install API)
ROLEX-805: adopt version formatting
ROLEX-1106: UI recipe coverage
ROLEX-1011: Delete multiple systems
ROLEX-1141: Extend API security test to confirm CSV is complete
ROLEX-1058: Attach module-level logs from update report to actions in IoT Rollouts
ROLEX-1080: Provide current matching recipes
ROLEX-805: Added missing @TenantId annotation
ROLEX-1139: System action status
ROLEX-1078: Filter out dated systems
ROLEX-1139: Update report: Change log entry timestamps to epoch millis
ROLEX-1150: ui recipe info
ROLEX-1139: Add reportedAt/-By to SystemActionStatus
ROLEX-1132: UI system action logs
ROLEX-1071: Recipe match validator
ROLEX-1180: Send update attributes event when deleting systems
ROLEX-1161: Introduce status code for system action status
ROLEX-1082: Introduce dropdown for system actions filter modal
ROLEX-1161: Extend System Actions view
ROLEX-1170: Introduce tenant config based role mapping
ROLEX-1136: Recipe match job and system match
ROLEX-895: Avoid characters in install file that break the format (potential attack vector)
ROLEX-124: Validate signed reports
ROLEX-1138: Calculate and provide recipe count/coverage
ROLEX-1230: Added support for IN operator
ROLEX-1232: Introduce last system match date time
ROLEX-1246: Update SystemMatchs on system-report processing
ROLEX-1204: Filter recipes by metadata
Improvements
ROLEX-297: Implement paging for getRecipes in Mgmt API
ROLEX-149: Mgmt API requires suite auth OAUTH2 token
ROLEX-149: Spring security authorization code flow
ROLEX-149: added encrypted clientid and secret for QA
ROLEX-299: Configure spring security for Install API
ROLEX-367: Install API enhancements
ROLEX-609: Improve OpenAPI spec
ROLEX-282: Make Recipes with RELEASE_CANDIDATE state only accessible by the TEST_INSTALLER
ROLEX-837: implemented review remarks
ROLEX-745: Change section order and expand certain sections by default
ROLEX-838: Allow demoting recipes in WAITING_FOR_SIGNATURE state
ROLEX-755: Make module update definitions sortable
ROLEX-736: UI system details
ROLEX-805: Add attributes to modules
ROLEX-805: Store module attributes when system-info is processed
ROLEX-815: Extend admin API by new endpoint to manage tenants
ROLEX-930 Add OWASP ZAP scan to release workflow
ROLEX-805: Expand module query and count query on promotion of recipe
ROLEX-952: Perform load test in own stage and introduce warmup
ROLEX-877: Added integration test execution in our CI/CD build
ROLEX-907: link actions of recipe
ROLEX-1008: System outdated banner
ROLEX-1009: update validity icon
ROLEX-1020: Accept partial update reports
ROLEX-982: add CORP header
ROLEX-77: Introduce E2E test to verify the install scenario
ROLEX-1075: Extend RecipeDTO and provide mock data
ROLEX-1025: Install API: Return error 400 (Bad Request) if DS ID specified in update report cannot be deserialized
ROLEX-1081: Improve error messages for invalid system reports
ROLEX-1135: Define recipe match job triggers
ROLEX-722: remember blade status
ROLEX-1139: Enhance SystemE2E test to verify system action status info
ROLEX-1114: Initialize system update status to REGISTERED
ROLEX-1165: Change logic to transform first artifact whose type key starts with 'firmware:'
ROLEX-1165: Remove : to also allow firmware as a valid key
ROLEX-1168: Ensure modifiedAt is updated when tags are added/removed
ROLEX-1082: Replace ID fields with name:version or name to improve usability
ROLEX-1190: Improve info cards
ROLEX-1197: ESLint
ROLEX-1197: Add to ESLINT to pipeline
ROLEX-14: Add Fossid scan action and add to Release and PR workflow
ROLEX-807: Scan UI with sonarqube
ROLEX-124: Update report processing improvements
ROLEX-124: add signed report performance test
ROLEX-1227: Setup SOUP PROD cluster
ROLEX-264: Setup WAF for SOUP LB
ROLEX-1227: Extend Release flow for PROD environment
ROLEX-1298: Update SSL policy to ELBSecurityPolicy-TLS13-1-2-2021-06
ROLEX-1013: Upgrade DB cluster to multi-az deployment for prod
ROLEX-430: Add WAF geoblocking for sanctioned countries
ROLEX-1301: Configure health/liveness checks for soup-app
ROLEX-1300: Allow lowercase timestamp as alias in system-report
ROLEX-383: Add automated security configuration testing
ROLEX-1310: Upgrade TLS configuration to ELBSecurityPolicy-TLS13-1-2-2021-06-Res
Bugs fixed
ROLEX-1155: Fix HibernateException in system identification
ROLEX-1071: Fix keeping security context in parallel stream
ROLEX-1222: Fix UI Sonar issues
ROLEX-1224: Fix UI refreshing bug
ROLEX-1205: Fix updating locked recipe
ROLEX-1136: Fix extracting validation state
ROLEX-1138: Avoid cascaded actions on the countJob of a Recipe
ROLEX-1138: Fix countJob reference to allow multiple ones
ROLEX-1233: Handle NumberFormatException