SEC-M6: Role-based policy enforcement - ForbiddenError exception for unauthorized access - Policy.authorize!/3 in 6 LiveView modules - Superuser bypass preserved - 45/45 tests pass Architecture: Oversized module splits - topology.ex: 1590 -> 685 lines (-57%) - New sub-modules: topology/evidence.ex, topology/map_view.ex, topology/stats.ex - New devices/ordering.ex - 217/217 tests pass Architecture: Vendor HTTP pagination consolidation - HTTP.paginate/5 shared helper in Towerops.HTTP - visp, splynx, sonar refactored to use shared pagination - 94/94 tests pass Test Health + Credo fixes: - api_tokens.ex: verify_token/1 flattened (nesting depth reduced) - 3 new test files: AgentReleaseWebhookWorker, RfLinkHealthLive, MaintenanceLive.Index - Weak assertions strengthened - doctest Towerops.JobMonitoring added - 255/255 tests pass |
||
|---|---|---|
| .. | ||
| channels | ||
| components | ||
| controllers | ||
| graphql | ||
| helpers | ||
| live | ||
| plugs | ||
| changelog_parser.ex | ||
| endpoint.ex | ||
| gettext.ex | ||
| gettext_helpers.ex | ||
| graphql_socket.ex | ||
| permissions.ex | ||
| plug_exceptions.ex | ||
| remote_ip.ex | ||
| router.ex | ||
| scoped_resource.ex | ||
| telemetry.ex | ||
| user_auth.ex | ||