karrio-server-core 2025.5rc12__py3-none-any.whl → 2026.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. karrio/server/core/authentication.py +59 -25
  2. karrio/server/core/config.py +31 -0
  3. karrio/server/core/datatypes.py +30 -4
  4. karrio/server/core/dataunits.py +53 -22
  5. karrio/server/core/exceptions.py +287 -17
  6. karrio/server/core/filters.py +14 -0
  7. karrio/server/core/gateway.py +285 -10
  8. karrio/server/core/logging.py +403 -0
  9. karrio/server/core/management/commands/runserver.py +5 -0
  10. karrio/server/core/middleware.py +104 -2
  11. karrio/server/core/migrations/0006_add_api_log_requested_at_index.py +22 -0
  12. karrio/server/core/models/base.py +34 -1
  13. karrio/server/core/oauth_validators.py +2 -3
  14. karrio/server/core/permissions.py +1 -2
  15. karrio/server/core/serializers.py +183 -10
  16. karrio/server/core/signals.py +22 -28
  17. karrio/server/core/telemetry.py +573 -0
  18. karrio/server/core/tests/__init__.py +27 -0
  19. karrio/server/core/{tests.py → tests/base.py} +6 -7
  20. karrio/server/core/tests/test_exception_level.py +159 -0
  21. karrio/server/core/tests/test_resource_token.py +593 -0
  22. karrio/server/core/utils.py +688 -38
  23. karrio/server/core/validators.py +144 -222
  24. karrio/server/core/views/oauth.py +13 -12
  25. karrio/server/core/views/references.py +2 -2
  26. karrio/server/iam/apps.py +1 -4
  27. karrio/server/iam/migrations/0002_setup_carrier_permission_groups.py +103 -0
  28. karrio/server/iam/migrations/0003_remove_permission_groups.py +91 -0
  29. karrio/server/iam/permissions.py +7 -134
  30. karrio/server/iam/serializers.py +17 -2
  31. karrio/server/iam/signals.py +2 -4
  32. karrio/server/providers/admin.py +1 -1
  33. karrio/server/providers/management/commands/migrate_rate_sheets.py +101 -0
  34. karrio/server/providers/migrations/0082_add_zone_identifiers.py +50 -0
  35. karrio/server/providers/migrations/0083_add_optimized_rate_sheet_structure.py +33 -0
  36. karrio/server/providers/migrations/0084_alter_servicelevel_currency.py +168 -0
  37. karrio/server/providers/migrations/0085_populate_dhl_parcel_de_oauth_credentials.py +82 -0
  38. karrio/server/providers/migrations/0086_rename_dhl_parcel_de_customer_number_to_billing_number.py +71 -0
  39. karrio/server/providers/migrations/0087_alter_carrier_capabilities.py +38 -0
  40. karrio/server/providers/migrations/0088_servicelevel_surcharges.py +24 -0
  41. karrio/server/providers/migrations/0089_servicelevel_cost_max_volume.py +31 -0
  42. karrio/server/providers/migrations/0090_ratesheet_surcharges_servicelevel_zone_surcharge_ids.py +47 -0
  43. karrio/server/providers/migrations/0091_migrate_legacy_zones_surcharges.py +154 -0
  44. karrio/server/providers/models/__init__.py +1 -2
  45. karrio/server/providers/models/carrier.py +103 -18
  46. karrio/server/providers/models/service.py +188 -1
  47. karrio/server/providers/models/sheet.py +371 -0
  48. karrio/server/providers/serializers/base.py +263 -2
  49. karrio/server/providers/signals.py +2 -4
  50. karrio/server/providers/templates/providers/oauth_callback.html +105 -0
  51. karrio/server/providers/tests/__init__.py +5 -0
  52. karrio/server/providers/tests/test_connections.py +895 -0
  53. karrio/server/providers/views/carriers.py +1 -3
  54. karrio/server/providers/views/connections.py +322 -2
  55. karrio/server/samples.py +1 -1
  56. karrio/server/serializers/abstract.py +116 -21
  57. karrio/server/tracing/migrations/0007_tracingrecord_tracing_created_at_idx.py +19 -0
  58. karrio/server/tracing/models.py +2 -0
  59. karrio/server/tracing/utils.py +5 -8
  60. karrio/server/user/migrations/0007_user_metadata.py +25 -0
  61. karrio/server/user/models.py +38 -23
  62. karrio/server/user/serializers.py +1 -0
  63. karrio/server/user/templates/registration/registration_confirm_email.html +1 -1
  64. {karrio_server_core-2025.5rc12.dist-info → karrio_server_core-2026.1.1.dist-info}/METADATA +2 -2
  65. {karrio_server_core-2025.5rc12.dist-info → karrio_server_core-2026.1.1.dist-info}/RECORD +67 -86
  66. karrio/server/providers/extension/__init__.py +0 -1
  67. karrio/server/providers/extension/models/__init__.py +0 -1
  68. karrio/server/providers/extension/models/allied_express.py +0 -22
  69. karrio/server/providers/extension/models/allied_express_local.py +0 -22
  70. karrio/server/providers/extension/models/amazon_shipping.py +0 -27
  71. karrio/server/providers/extension/models/aramex.py +0 -25
  72. karrio/server/providers/extension/models/asendia_us.py +0 -21
  73. karrio/server/providers/extension/models/australiapost.py +0 -20
  74. karrio/server/providers/extension/models/boxknight.py +0 -19
  75. karrio/server/providers/extension/models/bpost.py +0 -21
  76. karrio/server/providers/extension/models/canadapost.py +0 -21
  77. karrio/server/providers/extension/models/canpar.py +0 -19
  78. karrio/server/providers/extension/models/chronopost.py +0 -22
  79. karrio/server/providers/extension/models/colissimo.py +0 -22
  80. karrio/server/providers/extension/models/dhl_express.py +0 -23
  81. karrio/server/providers/extension/models/dhl_parcel_de.py +0 -25
  82. karrio/server/providers/extension/models/dhl_poland.py +0 -22
  83. karrio/server/providers/extension/models/dhl_universal.py +0 -19
  84. karrio/server/providers/extension/models/dicom.py +0 -20
  85. karrio/server/providers/extension/models/dpd.py +0 -37
  86. karrio/server/providers/extension/models/dpdhl.py +0 -26
  87. karrio/server/providers/extension/models/easypost.py +0 -20
  88. karrio/server/providers/extension/models/eshipper.py +0 -21
  89. karrio/server/providers/extension/models/fedex.py +0 -25
  90. karrio/server/providers/extension/models/fedex_ws.py +0 -24
  91. karrio/server/providers/extension/models/freightcom.py +0 -21
  92. karrio/server/providers/extension/models/generic.py +0 -35
  93. karrio/server/providers/extension/models/geodis.py +0 -22
  94. karrio/server/providers/extension/models/hay_post.py +0 -22
  95. karrio/server/providers/extension/models/laposte.py +0 -19
  96. karrio/server/providers/extension/models/locate2u.py +0 -22
  97. karrio/server/providers/extension/models/nationex.py +0 -22
  98. karrio/server/providers/extension/models/purolator.py +0 -21
  99. karrio/server/providers/extension/models/roadie.py +0 -18
  100. karrio/server/providers/extension/models/royalmail.py +0 -19
  101. karrio/server/providers/extension/models/sendle.py +0 -22
  102. karrio/server/providers/extension/models/tge.py +0 -63
  103. karrio/server/providers/extension/models/tnt.py +0 -23
  104. karrio/server/providers/extension/models/ups.py +0 -23
  105. karrio/server/providers/extension/models/usps.py +0 -23
  106. karrio/server/providers/extension/models/usps_international.py +0 -23
  107. karrio/server/providers/extension/models/usps_wt.py +0 -24
  108. karrio/server/providers/extension/models/usps_wt_international.py +0 -24
  109. karrio/server/providers/extension/models/zoom2u.py +0 -23
  110. karrio/server/providers/tests.py +0 -3
  111. {karrio_server_core-2025.5rc12.dist-info → karrio_server_core-2026.1.1.dist-info}/WHEEL +0 -0
  112. {karrio_server_core-2025.5rc12.dist-info → karrio_server_core-2026.1.1.dist-info}/top_level.txt +0 -0
@@ -1,23 +0,0 @@
1
- import django.db.models as models
2
- import karrio.server.providers.models as providers
3
-
4
-
5
- class USPSSettings(providers.Carrier):
6
- CARRIER_NAME = "usps"
7
-
8
- class Meta:
9
- db_table = "usps-settings"
10
- verbose_name = "USPS Settings"
11
- verbose_name_plural = "USPS Settings"
12
-
13
- client_id = models.CharField(max_length=100)
14
- client_secret = models.CharField(max_length=100)
15
- account_type = models.CharField(max_length=100, null=True, blank=True)
16
- account_number = models.CharField(max_length=100, blank=True, null=True)
17
-
18
- @property
19
- def carrier_name(self) -> str:
20
- return self.CARRIER_NAME
21
-
22
-
23
- SETTINGS = USPSSettings
@@ -1,23 +0,0 @@
1
- from django.db import models
2
- from karrio.server.providers.models.carrier import Carrier
3
-
4
-
5
- class USPSInternationalSettings(Carrier):
6
- CARRIER_NAME = "usps_international"
7
-
8
- class Meta:
9
- db_table = "usps_international-settings"
10
- verbose_name = "USPS International Settings"
11
- verbose_name_plural = "USPS International Settings"
12
-
13
- client_id = models.CharField(max_length=100)
14
- client_secret = models.CharField(max_length=100)
15
- account_type = models.CharField(max_length=200, null=True, blank=True)
16
- account_number = models.CharField(max_length=200, blank=True, null=True)
17
-
18
- @property
19
- def carrier_name(self) -> str:
20
- return self.CARRIER_NAME
21
-
22
-
23
- SETTINGS = USPSInternationalSettings
@@ -1,24 +0,0 @@
1
- from django.db import models
2
- from karrio.server.providers.models.carrier import Carrier
3
-
4
-
5
- class USPSWTSettings(Carrier):
6
- class Meta:
7
- db_table = "usps_wt-settings"
8
- verbose_name = "USPS Web Settings"
9
- verbose_name_plural = "USPS Web Settings"
10
-
11
- username = models.CharField(max_length=200)
12
- password = models.CharField(max_length=200)
13
- mailer_id = models.CharField(max_length=200, null=True, blank=True)
14
- customer_registration_id = models.CharField(max_length=200, blank=True, null=True)
15
- logistics_manager_mailer_id = models.CharField(
16
- max_length=200, blank=True, null=True
17
- )
18
-
19
- @property
20
- def carrier_name(self) -> str:
21
- return "usps_wt"
22
-
23
-
24
- SETTINGS = USPSWTSettings
@@ -1,24 +0,0 @@
1
- from django.db import models
2
- from karrio.server.providers.models.carrier import Carrier
3
-
4
-
5
- class USPSWTInternationalSettings(Carrier):
6
- class Meta:
7
- db_table = "usps_wt_international-settings"
8
- verbose_name = "USPS Web Tools International Settings"
9
- verbose_name_plural = "USPS Web Tools International Settings"
10
-
11
- username = models.CharField(max_length=200)
12
- password = models.CharField(max_length=200)
13
- mailer_id = models.CharField(max_length=200, null=True, blank=True)
14
- customer_registration_id = models.CharField(max_length=200, blank=True, null=True)
15
- logistics_manager_mailer_id = models.CharField(
16
- max_length=200, blank=True, null=True
17
- )
18
-
19
- @property
20
- def carrier_name(self) -> str:
21
- return "usps_wt_international"
22
-
23
-
24
- SETTINGS = USPSWTInternationalSettings
@@ -1,23 +0,0 @@
1
- from django.db import models
2
- import karrio.server.providers.models.carrier as providers
3
-
4
-
5
- class Zoom2uSettings(providers.Carrier):
6
- CARRIER_NAME = "zoom2u"
7
-
8
- class Meta:
9
- db_table = "zoom2u-settings"
10
- verbose_name = "Zoom2u Settings"
11
- verbose_name_plural = "Zoom2u Settings"
12
-
13
- api_key = models.CharField(max_length=200)
14
- account_country_code = models.CharField(
15
- max_length=3, blank=True, null=True, choices=providers.COUNTRIES
16
- )
17
-
18
- @property
19
- def carrier_name(self) -> str:
20
- return self.CARRIER_NAME
21
-
22
-
23
- SETTINGS = Zoom2uSettings
@@ -1,3 +0,0 @@
1
- from django.test import TestCase
2
-
3
- # TODO: Write carriers API tests