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
@TenantIdannotation - 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