354b0b9b30eefa7490c9fccbe9e75765fb1cf4b8
wiki/info/security/permission-migration-tests.md
| ... | ... | @@ -94,7 +94,7 @@ Any security enabled server needs to initially meet some criteria caused by the |
| 94 | 94 | |
| 95 | 95 | ### Verification of the basic security model setup |
| 96 | 96 | |
| 97 | -The following criterias must be fulfilled for new or initially migrated servers after startup: |
|
| 97 | +The following criteria must be fulfilled for new or initially migrated servers after startup: |
|
| 98 | 98 | |
| 99 | 99 | * Predefined RoleDefinitions need to exist as described. All initial RoleDefinitions need to have an ACL attached granting "READ" to all users. |
| 100 | 100 | * Any existing security or domain objects (matching types in SecuredSecurityTypes or SecuredDomainTypes) need to have an initial ownership associated. |
| ... | ... | @@ -181,3 +181,123 @@ DeviceConsigurations for the race manager app were changed to now have an identi |
| 181 | 181 | ### Verification scenarios of changed sailing semantics |
| 182 | 182 | |
| 183 | 183 | TODO |
| 184 | + |
|
| 185 | +## Deployment scenarios |
|
| 186 | + |
|
| 187 | +This chapter is intended to sum up the aspects to be tested along specific deployment scenarios. While the writing above focuses on relevant changes introduced by the security model or specific migration details, the following write up is meant as a checklist to do a system test within the borders of a distinct scenario. |
|
| 188 | + |
|
| 189 | +### Migrate a public server with a big amount of historic event data (aka archive migration) |
|
| 190 | + |
|
| 191 | +A server with a big amount of historic event data needs to get migrated to the new security model. After the initial loading is finished, the following verifications need to be done. This scenario is intended to be focussed on the following aspects: |
|
| 192 | + |
|
| 193 | +* migration of existing data |
|
| 194 | +* consistent restore of data |
|
| 195 | +* availability and publicity of migrated data |
|
| 196 | +* basic visibility activation states of admins vs non admins |
|
| 197 | +* integration of external systems |
|
| 198 | +* possibility for deeper technical evaluations (e.g. memory consumption) |
|
| 199 | + |
|
| 200 | +To verify that all data is migrated as intended, several checks need to get fulfilled as an admin user. The described checks should be done using the global "admin" user as well as a server admin. The results must be identical in both cases for the following criteria: |
|
| 201 | + |
|
| 202 | +* The loaded TrackedRaces need to exactly match the old server |
|
| 203 | +* All existing domain data is shown in tables and provides the full set of actions |
|
| 204 | +* Identify regattas that are tracked using the various tracking technologies (TracTrac, Swiss Timing, Smartphone Tracking) and verify the correctness regarding the following aspects: |
|
| 205 | + * On the Homepage verify statistics, wind information, results, contens of the leaderboard |
|
| 206 | + * Show the stand-alone leaderboard and verify the contents |
|
| 207 | +* External servers need to still be referenced |
|
| 208 | +* Several technical parts of the AdminConsole need to be accessible and provide all available actions: |
|
| 209 | + * Local server |
|
| 210 | + * MDI |
|
| 211 | + * Remote servers |
|
| 212 | + * Replication |
|
| 213 | + * File storage |
|
| 214 | + |
|
| 215 | +The following checks must be repeated with all kinds of users (admin, normal user, anonymous) to ensure the correct functionality regarding publicity of the server: |
|
| 216 | + |
|
| 217 | +* In the global event list, check the statistics of each year to be sure, that all events are available with their respective contents |
|
| 218 | +* Events originating from external servers need to still be visible in the event list |
|
| 219 | +* For an event of each kind (single regatta, multi regatta, series), show the following views (if available for that type): |
|
| 220 | + * Event page |
|
| 221 | + * Regatta page |
|
| 222 | + * series page |
|
| 223 | + * stand-alone leaderboard |
|
| 224 | + * RegattaOverview |
|
| 225 | +* Identify TrackedRaces that are tracked using the various tracking technologies and verify the following for those races: |
|
| 226 | + * The RaceBoard works and shows a valid leaderboard containing all competitors |
|
| 227 | + * In the RaceBoard, all expandable panels show valid data (competitor chart, wind, ...) |
|
| 228 | + * EmbeddedMapAndWindChart can be shown |
|
| 229 | +* Identify a TrackedRace with attached media and verify that the media is correctly played |
|
| 230 | + |
|
| 231 | +The following checks need to be done using a normal user: |
|
| 232 | + |
|
| 233 | +* Technical tabs in the AdminConsole need to be unavailable (e.g. local server) |
|
| 234 | +* Many publicly readable domain objects must not provide update actions in the respective AdminConsole tabs (events, leaderboards, ...) |
|
| 235 | +* Other sensible data must be invisible (either absence of the tab or empty list) to normal users (e.g. Tracking connections, Igtimi accounts, ...) |
|
| 236 | +* The server group may not be available in the default creation tenant selection of the user profile page |
|
| 237 | +* The whole user profile page needs to be available and usable |
|
| 238 | + |
|
| 239 | +### New event server setup |
|
| 240 | + |
|
| 241 | +In addition of the migration test it is intended to do a test setup as shadow server for a real event. The focus for this scenario is defined as follows: |
|
| 242 | + |
|
| 243 | +* Setup of a new server |
|
| 244 | +* consistency of operational tasks |
|
| 245 | +* Replication |
|
| 246 | +* Definition of different user types |
|
| 247 | +* Integration of live tracking technologies |
|
| 248 | + |
|
| 249 | +Note for the tester: All users intended to do administrative tasks need to be added as members of the server group. All such users must set their default creation tenant to the server group to consistently to make all created objects consistently be owned by the server group. This is very important to make the publicity aspect of the server work as intended. |
|
| 250 | + |
|
| 251 | +An event setup needs to be created including various types of domain objects (event, regatta, leaderboard, ...). For each of those objects, the following validations need to be fulfilled: |
|
| 252 | + |
|
| 253 | +* all object consistently have the server group set as owner |
|
| 254 | +* all server admin users as well as the global admin can mutate those object regardless which admin created those objects |
|
| 255 | + |
|
| 256 | +The following operational scenarios need to be checked |
|
| 257 | + |
|
| 258 | +* At least one replica needs to be created using admin credentials to connect to the master server |
|
| 259 | +* One user created an Igtimi account in the server group and another admin tracks a race. The wind needs to be available in this race. |
|
| 260 | +* Users only having specific instance-based mutation permissions (e.g. LEADERBOARD:UPDATE:<name>) only see mutation action for that domain object but not others |
|
| 261 | +* A user having LEADERBOARD:UPDATE:<name> and REGATTA:UPDATE:<name> permissions must be able to edit score corrections |
|
| 262 | +* A moderator only has specific permissions in RaceBoard but none in AdminConsole |
|
| 263 | + |
|
| 264 | +### Smartphone tracking and App interaction test |
|
| 265 | + |
|
| 266 | +A test setup needs to be created to cover an end to end scenarios using our various apps. The following scenarios should be verified in this test: |
|
| 267 | + |
|
| 268 | +* Different types of invitations and QR codes |
|
| 269 | +* Integration of branch.io and redirects of the QRCodePlace |
|
| 270 | +* Compatibility with the old and new tracking apps |
|
| 271 | +* Non-authenticated access and tracking based on the secret |
|
| 272 | +* App based race management |
|
| 273 | + |
|
| 274 | +For the tests of this scenario, we need a fully featured setup consisting of the following domain objects: |
|
| 275 | + |
|
| 276 | +* A public event hierarchy |
|
| 277 | +* A private event hierarchy (not just listed==false, but also not publicly readable) |
|
| 278 | +* A regatta having static competitor/boat assignments |
|
| 279 | +* A regatta having dynamic competitor/boat assignments |
|
| 280 | +* Pinged marks as well as tracked marks |
|
| 281 | + |
|
| 282 | +The a smartphone tracking setup needs to get repeated using the following invitation and app combinations (some cases can be tested in parallel): |
|
| 283 | + |
|
| 284 | +* Legacy invitations/QR codes with the old apps |
|
| 285 | +* Legacy invitations/QR codes with Sail Insight 2.0 |
|
| 286 | +* Branch.io invitations for the old apps |
|
| 287 | +* Branch.io invitations for the new apps |
|
| 288 | + |
|
| 289 | +In addition to the tracking tests, this setup needs to get managed by the race manager app. Due to the fact that the DeviceConfiguration model changed during development of the permission model and this change also affected the app code, both versions need to be tested: |
|
| 290 | + |
|
| 291 | +* The latest store release |
|
| 292 | +* A build that includes the security model changes |
|
| 293 | + |
|
| 294 | +### Public self-service setup |
|
| 295 | + |
|
| 296 | +An additional deployment scenario is the self-service case that will be covered by my.sapsailing.com. This case is already well covered from the perspective of the app development but several backend-focussed validations need ensured as well. The following scenarios need to be covered: |
|
| 297 | + |
|
| 298 | +* Setup and management of open regattas from the App and AdminConsole |
|
| 299 | +* Inviting others to track |
|
| 300 | +* Migrate parts of my stuff to a new group for sharing |
|
| 301 | +* Share my stuff with others |
|
| 302 | + |
|
| 303 | +TODO more detail |
|
| ... | ... | \ No newline at end of file |