Skip to content

Commit 90dcf5a

Browse files
authored
Merge pull request #965 from karrioapi/patch-2026.1.10
fix: resolve OSS admin bugs and developer tools issues
2 parents b2ac21f + ad759a5 commit 90dcf5a

79 files changed

Lines changed: 315 additions & 524 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# Karrio 2026.1.10
2+
3+
## Changes
4+
5+
### Fix
6+
7+
- fix: periodic data archiving task running every minute instead of daily
8+
- fix: replace dynamic InstanceConfigType with JSON scalar for OSS compatibility
9+
- fix: naive datetime warnings when querying Fee records
10+
- fix: health status API double-slash URL causing 404
11+
- fix: add keyword search field to tracing records filter
12+
13+
---
14+
115
# Karrio 2026.1.9
216

317
## Changes

apps/api/karrio/server/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2026.1.9
1+
2026.1.10

apps/api/karrio/server/settings/constance.py

Lines changed: 37 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,12 @@
3434
"ENABLE_ALL_PLUGINS_BY_DEFAULT", default=True if base.DEBUG else False, cast=bool
3535
)
3636

37-
# Create feature flags config only for modules that exist
37+
# Feature flags config — always present with False default when module is absent
3838
FEATURE_FLAGS_CONFIG = {
3939
"AUDIT_LOGGING": (
40-
(
41-
base.AUDIT_LOGGING,
42-
"Audit logging",
43-
bool,
44-
)
45-
if importlib.util.find_spec("karrio.server.audit") is not None
46-
else None
40+
base.AUDIT_LOGGING if importlib.util.find_spec("karrio.server.audit") is not None else False,
41+
"Audit logging",
42+
bool,
4743
),
4844
"ALLOW_SIGNUP": (
4945
base.ALLOW_SIGNUP,
@@ -61,94 +57,54 @@
6157
bool,
6258
),
6359
"ADMIN_DASHBOARD": (
64-
(
65-
base.ADMIN_DASHBOARD,
66-
"Admin dashboard",
67-
bool,
68-
)
69-
if importlib.util.find_spec("karrio.server.admin") is not None
70-
else None
60+
base.ADMIN_DASHBOARD if importlib.util.find_spec("karrio.server.admin") is not None else False,
61+
"Admin dashboard",
62+
bool,
7163
),
7264
"MULTI_ORGANIZATIONS": (
73-
(
74-
base.MULTI_ORGANIZATIONS,
75-
"Multi organizations",
76-
bool,
77-
)
78-
if importlib.util.find_spec("karrio.server.orgs") is not None
79-
else None
65+
base.MULTI_ORGANIZATIONS if importlib.util.find_spec("karrio.server.orgs") is not None else False,
66+
"Multi organizations",
67+
bool,
8068
),
8169
"ORDERS_MANAGEMENT": (
82-
(
83-
base.ORDERS_MANAGEMENT,
84-
"Orders management",
85-
bool,
86-
)
87-
if importlib.util.find_spec("karrio.server.orders") is not None
88-
else None
70+
base.ORDERS_MANAGEMENT if importlib.util.find_spec("karrio.server.orders") is not None else False,
71+
"Orders management",
72+
bool,
8973
),
9074
"APPS_MANAGEMENT": (
91-
(
92-
base.APPS_MANAGEMENT,
93-
"Apps management",
94-
bool,
95-
)
96-
if importlib.util.find_spec("karrio.server.apps") is not None
97-
else None
75+
base.APPS_MANAGEMENT if importlib.util.find_spec("karrio.server.apps") is not None else False,
76+
"Apps management",
77+
bool,
9878
),
9979
"DOCUMENTS_MANAGEMENT": (
100-
(
101-
base.DOCUMENTS_MANAGEMENT,
102-
"Documents management",
103-
bool,
104-
)
105-
if importlib.util.find_spec("karrio.server.documents") is not None
106-
else None
80+
base.DOCUMENTS_MANAGEMENT if importlib.util.find_spec("karrio.server.documents") is not None else False,
81+
"Documents management",
82+
bool,
10783
),
10884
"DATA_IMPORT_EXPORT": (
109-
(
110-
base.DATA_IMPORT_EXPORT,
111-
"Data import export",
112-
bool,
113-
)
114-
if importlib.util.find_spec("karrio.server.data") is not None
115-
else None
85+
base.DATA_IMPORT_EXPORT if importlib.util.find_spec("karrio.server.data") is not None else False,
86+
"Data import export",
87+
bool,
11688
),
11789
"WORKFLOW_MANAGEMENT": (
118-
(
119-
base.WORKFLOW_MANAGEMENT,
120-
"Workflow management",
121-
bool,
122-
)
123-
if importlib.util.find_spec("karrio.server.automation") is not None
124-
else None
90+
base.WORKFLOW_MANAGEMENT if importlib.util.find_spec("karrio.server.automation") is not None else False,
91+
"Workflow management",
92+
bool,
12593
),
12694
"SHIPPING_RULES": (
127-
(
128-
base.SHIPPING_RULES,
129-
"Shipping rules",
130-
bool,
131-
)
132-
if importlib.util.find_spec("karrio.server.automation") is not None
133-
else None
95+
base.SHIPPING_RULES if importlib.util.find_spec("karrio.server.automation") is not None else False,
96+
"Shipping rules",
97+
bool,
13498
),
13599
"SHIPPING_METHODS": (
136-
(
137-
base.SHIPPING_METHODS,
138-
"Shipping methods",
139-
bool,
140-
)
141-
if importlib.util.find_spec("karrio.server.shipping") is not None
142-
else None
100+
base.SHIPPING_METHODS if importlib.util.find_spec("karrio.server.shipping") is not None else False,
101+
"Shipping methods",
102+
bool,
143103
),
144104
"ADVANCED_ANALYTICS": (
145-
(
146-
base.ADVANCED_ANALYTICS,
147-
"Advanced analytics",
148-
bool,
149-
)
150-
if importlib.util.find_spec("karrio.server.analytics") is not None
151-
else None
105+
base.ADVANCED_ANALYTICS if importlib.util.find_spec("karrio.server.analytics") is not None else False,
106+
"Advanced analytics",
107+
bool,
152108
),
153109
"PERSIST_SDK_TRACING": (
154110
base.PERSIST_SDK_TRACING,
@@ -158,7 +114,7 @@
158114
}
159115

160116
# Update fieldsets to only include existing feature flags
161-
FEATURE_FLAGS_FIELDSET = [k for k, v in FEATURE_FLAGS_CONFIG.items() if v is not None]
117+
FEATURE_FLAGS_FIELDSET = list(FEATURE_FLAGS_CONFIG.keys())
162118

163119
# Plugin registry
164120
ref.collect_failed_plugins_data()
@@ -191,7 +147,7 @@
191147
}
192148

193149

194-
# Filter out None values and update CONSTANCE_CONFIG
150+
# Aggregate all config sections into CONSTANCE_CONFIG
195151
CONSTANCE_CONFIG = {
196152
"EMAIL_USE_TLS": (
197153
EMAIL_USE_TLS,
@@ -241,7 +197,7 @@
241197
"API request and SDK tracing logs retention period (in days)",
242198
int,
243199
),
244-
**{k: v for k, v in FEATURE_FLAGS_CONFIG.items() if v is not None},
200+
**FEATURE_FLAGS_CONFIG,
245201
**PLUGIN_REGISTRY,
246202
**PLUGIN_SYSTEM_CONFIG,
247203
}

apps/dashboard/next-env.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/// <reference types="next" />
22
/// <reference types="next/image-types/global" />
3-
import "./.next/types/routes.d.ts";
3+
import "./.next/dev/types/routes.d.ts";
44

55
// NOTE: This file should not be edited
66
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.

apps/web/public/carrier-integrations.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

apps/www/openapi.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ info:
1414
## Versioning
1515
1616
When backwards-incompatible changes are made to the API, a new, dated version is released.
17-
The current version is `2026.1.9`.
17+
The current version is `2026.1.10`.
1818
1919
Read our API changelog to learn more about backwards compatibility.
2020
@@ -84,7 +84,7 @@ info:
8484
All API requests must be made over [HTTPS](http://en.wikipedia.org/wiki/HTTP_Secure).
8585
API requests without authentication will also fail.
8686
title: Karrio API
87-
version: 2026.1.9
87+
version: 2026.1.10
8888
paths:
8989
/:
9090
get:

bin/deploy-hobby

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -e
44

5-
export KARRIO_TAG="${KARRIO_TAG:-2026.1.9}"
5+
export KARRIO_TAG="${KARRIO_TAG:-2026.1.10}"
66
export SENTRY_DSN="${SENTRY_DSN:-'https://public@sentry.example.com/1'}"
77

88
SECRET_KEY=$(head -c 28 /dev/urandom | sha224sum -b | head -c 56)
@@ -22,7 +22,7 @@ echo ""
2222
if ! [ -z "$1" ]; then
2323
export KARRIO_TAG=$1
2424
else
25-
echo "What version of Karrio would you like to install? (We default to '2026.1.9')"
25+
echo "What version of Karrio would you like to install? (We default to '2026.1.10')"
2626
echo "You can check out available versions here: https://hub.docker.com/r/karrio/server/tags"
2727
read -r KARRIO_TAG_READ
2828
if [ -z "$KARRIO_TAG_READ" ]; then

bin/deploy-insiders

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -e
44

5-
export KARRIO_TAG="${KARRIO_TAG:-2026.1.9}"
5+
export KARRIO_TAG="${KARRIO_TAG:-2026.1.10}"
66
export SENTRY_DSN="${SENTRY_DSN:-'https://public@sentry.example.com/1'}"
77

88
SECRET_KEY=$(head -c 28 /dev/urandom | sha224sum -b | head -c 56)

bin/upgrade-hobby

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ else
4141
fi
4242

4343
[[ -f ".env" ]] && export $(cat .env | xargs) || (echo "No .env file found. Please create it with SECRET_KEY and DOMAIN set." && exit 1)
44-
export KARRIO_TAG="${KARRIO_TAG:-2026.1.9}"
44+
export KARRIO_TAG="${KARRIO_TAG:-2026.1.10}"
4545

4646
# get karrio scripts
4747
mkdir -p ./karrio

0 commit comments

Comments
 (0)