5158c52db5
- Introduced new endpoints for account overview, analytics, and metrics. - Implemented authorization matrix and backup/restore documentation. - Added smoke test script and updated package dependencies. - Created detailed production checklist and runbook for deployment. - Established cron operations and notification event matrix documentation. - Enhanced security and validation audits for analytics and metrics services. - Added unit tests for analytics and metrics functionalities.
3.7 KiB
3.7 KiB
Authorization Matrix
This inventory is derived from the mounted route source. Both /api (legacy) and /api/v1 mount the same router; new clients use /api/v1. SUPER_ADMIN bypasses permission checks through the central middleware.
| Route group | Methods/path | Auth | Permission/account constraint | Ownership/rate limit |
|---|---|---|---|---|
| Auth | /auth/* |
Mixed | Public login/registration; authenticated session actions | Sensitive limiter on credential flows |
| User/profile/address | /user/*, /profile/*, /addresses/*, /account/overview |
Yes | Self or explicit admin permission | User ID derived from token/self query |
| Upload/document | /upload/*, /document/* |
Yes | Owner or media/document permissions | Signed URL after owner/permission check |
| Permissions/admin users | /permissions/*, /admin/users/* |
Yes | Permission/admin-gated | No public mutations |
| Business | /business/*, /admin/business/* |
Yes | Self business or business permissions | Business context resolved from user |
| Catalogue/help | /products, /categories, /brands, /collections, /help/* |
Public GET | Published/active projection | General limiter; help search sensitive limiter |
| Catalogue admin | /admin/products/*, categories/brands/collections/reviews |
Yes | Catalogue permissions | Strict schemas/action endpoints |
| Inventory/pricing/merchandising/shipping admin | /admin/inventory/*, /admin/pricing/*, /admin/promotions/*, /admin/shipping/* |
Yes | Domain permissions | Strict schemas; bounded pages |
| Shopping | /cart/*, /wishlist/*, /checkout/* |
Yes | Authenticated self | Identity derived from token; idempotency/reservations |
| Orders/payments/returns | /orders/*, /returns/* |
Yes | Self ownership | Order/user join checks; strict payment actions |
| Commerce admin | /admin/orders/*, payments/refunds/returns |
Yes | Orders/payments/returns permissions | Explicit actions; no generic status patch |
| Logistics public | /tracking/* |
Public token/reference | Limited safe projection | Sensitive limiter where configured |
| Logistics rider/admin | /rider/*, /admin/shipments/* |
Yes | Rider ownership or logistics permissions | Assignment/state checks |
| Loyalty/wholesale | /loyalty/*, /wholesale/*, corresponding /admin/* |
Yes | Self or loyalty/wholesale permissions | Ledger identity server-derived |
| Support customer | /support/tickets/* |
Yes | Self-owned ticket | Creation/replies rate-limited; internal visibility excluded |
| Support admin | /admin/support/tickets/* |
Yes | Granular support permission per action | Row-lock assignment; staff-only internal notes |
| Newsletter | subscribe/unsubscribe | Public | Token authorizes unsubscribe | Sensitive limiter; enumeration-neutral response |
| Newsletter admin | /admin/newsletter/subscribers |
Yes | newsletter.subscribers.read |
Token hashes excluded |
| Recommendations | public reads; authenticated event/recent/for-you | Mixed | Self for behavioral data | Event allowlist/idempotency; sensitive limiter |
| Analytics | /admin/dashboard/overview, /admin/analytics/* |
Yes | Matching analytics.*.read |
UTC range ≤366 days; bounded SQL aggregates |
| Metrics | /admin/metrics |
Yes | system.metrics.read |
No user/resource labels |
| Queue board | /admin/queues |
Yes | Admin/superadmin account type | Internal operational UI |
| Health | /health, /health/live, /health/ready |
Public | None | No sensitive payload |
Detailed route definitions remain authoritative in app/routes. Security audit found no newly unprotected admin route. Remaining staging work includes an automated route-to-matrix drift check and full authenticated IDOR E2E execution.