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