What's New
- Enrich `/api/references` endpoint with application metadata info (`APP_NAME`, `APP_VERSION`, `APP_WEBSITE` and other feature flags)
- Enhance JWT refresh with support for org switching by providing `org_id`
- Improve OpenAPI docs with existing extensions `carrier_name`(s) and shipments and trackers filters status enums
- Remove authentication requirement from `/v1/trackers/{id_or_tracking_number}` to simplify trackers access to frontend components
- Remove authentication requirement from `/api/references` as it serves as the server metadata now and share any user private info
- Change authentication rules for Graphql view (`/graphql`)
- The GraphQL Playground can be accessed without being authenticated
- However, an authentication header is required now to send authenticated requests and receive users owned data
- Introduce user registration, password change, password reset and more through GraphQL mutations
- Remove purplship embedded client moving the codebase to https://github.com/purplship/purplship-dashboard
Bug Fixes
- Fix circular reference on GraphQL system `carrier.carrier_name` property
- Fix bugs with exception raised when there is an existing carrier connection in test mode and not live
Dev Ex
- Switched to mono repo bringing `purplship-carriers`, `purplship-bridges`, `purplship-server` and all other satellite projects under `purplship` (this simplifies the development process)
- Improve PHP and Python client generator script options
- Improve docker setup for local developments
- Improve docker setup for testing with the same config as production (went from `6 min` build + test time to `2 min`)
- Change namespaces for consistent branding (went from `purpleserver.*` -> `purplship.server.*`)
- add as shared .vscode configuration.
- Fix JWT regression caused by `PyJWT` dependency
- Enhance Docker image startup and graceful-stop with dumb-init