Commit 9cf3eb7
committed
feat(role-manager): implement snapshot export with schema-compliant JSON format
Phase 6 (User Story 4): Download JSON snapshot of access control state.
Changes:
- Add generateSnapshotFilename utility using truncateMiddle from utils package
- Update AccessSnapshot interface to match access-snapshot.schema.json:
- Root-level version "1.0" and exportedAt timestamp
- Nested contract object with address, label, networkId, networkName
- Transform roles to roleId/roleName format
- Integrate useExportSnapshot in useDashboardData hook
- Connect Dashboard "Download Snapshot" button with loading state
- Add comprehensive tests for snapshot utilities
- Add missing deduplication utility tests1 parent 9063a4b commit 9cf3eb7
File tree
9 files changed
+663
-88
lines changed- apps/role-manager/src
- hooks
- __tests__
- pages
- utils
- __tests__
- specs/007-dashboard-real-data
9 files changed
+663
-88
lines changedLines changed: 47 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
942 | 942 | | |
943 | 943 | | |
944 | 944 | | |
| 945 | + | |
945 | 946 | | |
946 | 947 | | |
947 | 948 | | |
| |||
956 | 957 | | |
957 | 958 | | |
958 | 959 | | |
| 960 | + | |
959 | 961 | | |
960 | 962 | | |
961 | 963 | | |
| |||
970 | 972 | | |
971 | 973 | | |
972 | 974 | | |
| 975 | + | |
973 | 976 | | |
974 | 977 | | |
975 | 978 | | |
| |||
986 | 989 | | |
987 | 990 | | |
988 | 991 | | |
| 992 | + | |
989 | 993 | | |
990 | 994 | | |
991 | 995 | | |
| |||
1004 | 1008 | | |
1005 | 1009 | | |
1006 | 1010 | | |
1007 | | - | |
1008 | | - | |
1009 | | - | |
1010 | | - | |
1011 | | - | |
1012 | | - | |
1013 | | - | |
1014 | | - | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
1015 | 1042 | | |
1016 | 1043 | | |
1017 | 1044 | | |
| |||
1021 | 1048 | | |
1022 | 1049 | | |
1023 | 1050 | | |
| 1051 | + | |
1024 | 1052 | | |
1025 | 1053 | | |
1026 | 1054 | | |
| |||
1051 | 1079 | | |
1052 | 1080 | | |
1053 | 1081 | | |
| 1082 | + | |
1054 | 1083 | | |
1055 | 1084 | | |
1056 | 1085 | | |
| |||
1084 | 1113 | | |
1085 | 1114 | | |
1086 | 1115 | | |
| 1116 | + | |
1087 | 1117 | | |
1088 | 1118 | | |
1089 | 1119 | | |
| |||
1105 | 1135 | | |
1106 | 1136 | | |
1107 | 1137 | | |
| 1138 | + | |
1108 | 1139 | | |
1109 | 1140 | | |
1110 | 1141 | | |
| |||
1130 | 1161 | | |
1131 | 1162 | | |
1132 | 1163 | | |
| 1164 | + | |
1133 | 1165 | | |
1134 | 1166 | | |
1135 | 1167 | | |
| |||
1155 | 1187 | | |
1156 | 1188 | | |
1157 | 1189 | | |
| 1190 | + | |
1158 | 1191 | | |
1159 | 1192 | | |
1160 | 1193 | | |
| |||
1176 | 1209 | | |
1177 | 1210 | | |
1178 | 1211 | | |
| 1212 | + | |
1179 | 1213 | | |
1180 | 1214 | | |
1181 | 1215 | | |
| |||
1205 | 1239 | | |
1206 | 1240 | | |
1207 | 1241 | | |
| 1242 | + | |
1208 | 1243 | | |
1209 | 1244 | | |
1210 | 1245 | | |
| |||
1215 | 1250 | | |
1216 | 1251 | | |
1217 | 1252 | | |
1218 | | - | |
| 1253 | + | |
1219 | 1254 | | |
1220 | 1255 | | |
1221 | 1256 | | |
1222 | | - | |
| 1257 | + | |
1223 | 1258 | | |
1224 | 1259 | | |
1225 | 1260 | | |
1226 | 1261 | | |
1227 | 1262 | | |
1228 | 1263 | | |
| 1264 | + | |
1229 | 1265 | | |
1230 | 1266 | | |
1231 | 1267 | | |
| |||
1236 | 1272 | | |
1237 | 1273 | | |
1238 | 1274 | | |
1239 | | - | |
1240 | | - | |
1241 | | - | |
1242 | | - | |
| 1275 | + | |
1243 | 1276 | | |
1244 | 1277 | | |
1245 | 1278 | | |
Lines changed: 70 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
35 | 43 | | |
36 | 44 | | |
37 | 45 | | |
| |||
77 | 85 | | |
78 | 86 | | |
79 | 87 | | |
80 | | - | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
81 | 92 | | |
82 | 93 | | |
83 | 94 | | |
| |||
121 | 132 | | |
122 | 133 | | |
123 | 134 | | |
124 | | - | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
125 | 139 | | |
126 | 140 | | |
127 | 141 | | |
128 | 142 | | |
129 | 143 | | |
130 | | - | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
131 | 148 | | |
132 | 149 | | |
133 | 150 | | |
134 | 151 | | |
135 | 152 | | |
136 | 153 | | |
137 | | - | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
138 | 158 | | |
139 | 159 | | |
140 | 160 | | |
141 | 161 | | |
142 | 162 | | |
143 | | - | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
144 | 167 | | |
145 | 168 | | |
146 | 169 | | |
| |||
176 | 199 | | |
177 | 200 | | |
178 | 201 | | |
179 | | - | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
180 | 206 | | |
181 | 207 | | |
182 | 208 | | |
| |||
211 | 237 | | |
212 | 238 | | |
213 | 239 | | |
214 | | - | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
215 | 244 | | |
216 | 245 | | |
217 | 246 | | |
| |||
252 | 281 | | |
253 | 282 | | |
254 | 283 | | |
255 | | - | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
256 | 288 | | |
257 | 289 | | |
258 | 290 | | |
| |||
288 | 320 | | |
289 | 321 | | |
290 | 322 | | |
291 | | - | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
292 | 327 | | |
293 | 328 | | |
294 | 329 | | |
| |||
323 | 358 | | |
324 | 359 | | |
325 | 360 | | |
326 | | - | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
327 | 365 | | |
328 | 366 | | |
329 | 367 | | |
| |||
355 | 393 | | |
356 | 394 | | |
357 | 395 | | |
358 | | - | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
359 | 400 | | |
360 | 401 | | |
361 | 402 | | |
| |||
387 | 428 | | |
388 | 429 | | |
389 | 430 | | |
390 | | - | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
391 | 435 | | |
392 | 436 | | |
393 | 437 | | |
| |||
418 | 462 | | |
419 | 463 | | |
420 | 464 | | |
421 | | - | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
422 | 469 | | |
423 | 470 | | |
424 | 471 | | |
| |||
447 | 494 | | |
448 | 495 | | |
449 | 496 | | |
450 | | - | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
451 | 501 | | |
452 | 502 | | |
453 | 503 | | |
| |||
478 | 528 | | |
479 | 529 | | |
480 | 530 | | |
481 | | - | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
482 | 534 | | |
483 | 535 | | |
484 | 536 | | |
| |||
510 | 562 | | |
511 | 563 | | |
512 | 564 | | |
513 | | - | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
514 | 568 | | |
515 | 569 | | |
516 | 570 | | |
| |||
0 commit comments