Ruslan Bakiev
6dc480f828
Align backend dependencies
Build and deploy Docker image / build (push) Successful in 1m17s
2026-06-07 10:52:19 +07:00
Ruslan Bakiev
e866f52e88
Add demo seed command
Build and deploy Docker image / build (push) Successful in 1m27s
2026-06-07 10:43:12 +07:00
Ruslan Bakiev
e3d01a6628
Isolate Docker auth in CI
Build and deploy Docker image / build (push) Successful in 1m26s
2026-06-05 13:19:11 +07:00
Ruslan Bakiev
7761d40c7f
Clean local Docker images after CI push
Build and deploy Docker image / build (push) Successful in 1m12s
2026-06-05 12:51:36 +07:00
Ruslan Bakiev
7476e61d0b
Bootstrap geo graph collections
Build and deploy Docker image / build (push) Successful in 37s
2026-06-02 09:25:52 +07:00
Ruslan Bakiev
3e16b50c65
Configure builder registry deployment
Build and deploy Docker image / build (push) Successful in 50s
2026-06-01 17:28:19 +05:00
Ruslan Bakiev
3229a527cc
Use Fastify Mercurius and GraphQL contracts
Build Docker Image / build (push) Has been cancelled
2026-06-01 00:25:27 +05:00
Ruslan Bakiev
430cb1cff6
chore: optimize docker image build pipeline
Build Docker Image / build (push) Successful in 3m57s
2026-03-14 10:38:32 +07:00
Ruslan Bakiev
0bbe245e05
ci: trigger rebuild
Build Docker Image / build (push) Successful in 2m44s
2026-03-10 10:54:17 +07:00
Ruslan Bakiev
576a18a0e6
fix: correct Dokploy webhook URL
Build Docker Image / build (push) Successful in 1m59s
2026-03-10 10:47:19 +07:00
Ruslan Bakiev
190a768d82
fix: add -k to curl for self-signed SSL on Dokploy webhook
Build Docker Image / build (push) Successful in 1m34s
2026-03-10 10:29:33 +07:00
Ruslan Bakiev
665aaf0922
remove: unused Sentry import
Build Docker Image / build (push) Failing after 1m17s
2026-03-10 10:20:00 +07:00
Ruslan Bakiev
9384566610
refactor: convert GraphQL schema from snake_case to camelCase to match frontend expectations
Build Docker Image / build (push) Failing after 2m12s
2026-03-10 10:16:08 +07:00
Ruslan Bakiev
56a7734e8e
Switch from Infisical to Vault for secret loading
Build Docker Image / build (push) Failing after 2m52s
2026-03-09 11:20:34 +07:00
Ruslan Bakiev
e577b41a86
Fix ARANGODB_URL env var name
Build Docker Image / build (push) Successful in 1m21s
2026-03-09 10:12:43 +07:00
Ruslan Bakiev
294f4077f0
Add Infisical secret loading at startup
Build Docker Image / build (push) Successful in 2m4s
2026-03-09 10:00:33 +07:00
Ruslan Bakiev
52cbed91f8
Migrate geo backend from Django/Graphene to Express + Apollo Server + arangojs
...
Build Docker Image / build (push) Successful in 1m5s
Replace Python stack with TypeScript. All 30+ GraphQL queries preserved including
phase-based routing (Dijkstra), H3 clustering, K_SHORTEST_PATHS, and external
routing services (GraphHopper, OpenRailRouting). Single public endpoint, no auth.
2026-03-09 09:45:49 +07:00
Ruslan Bakiev
31fc8cbc34
Move graph routing into route engine
Build Docker Image / build (push) Successful in 1m56s
2026-02-07 11:41:12 +07:00
Ruslan Bakiev
4ec6506633
Unify graph routing analyzer
Build Docker Image / build (push) Successful in 1m53s
2026-02-07 11:28:16 +07:00
Ruslan Bakiev
e99cbf4882
Unify hub offer queries and drop radius filters
Build Docker Image / build (push) Successful in 2m7s
2026-02-07 11:05:52 +07:00
Ruslan Bakiev
3648366ebe
feat(geo): graph-based hubs for product
Build Docker Image / build (push) Successful in 1m52s
2026-02-07 10:14:18 +07:00
Ruslan Bakiev
eb73c5b1a1
feat(geo): filter clustered nodes by product/hub/supplier
Build Docker Image / build (push) Successful in 2m42s
2026-02-07 08:27:54 +07:00
Ruslan Bakiev
f5f261ff89
Add quote calculations query
Build Docker Image / build (push) Successful in 1m53s
2026-02-06 18:57:24 +07:00
Ruslan Bakiev
443dc7fa5d
Fix nearest hubs fallback when source missing
Build Docker Image / build (push) Successful in 1m32s
2026-02-05 20:10:11 +07:00
Ruslan Bakiev
09324bb25e
Filter hubs to rail/sea and add graph-based nearest
Build Docker Image / build (push) Successful in 3m9s
2026-02-05 18:41:07 +07:00
Ruslan Bakiev
387abf03e4
Remove cluster cache and query by bbox
Build Docker Image / build (push) Successful in 3m0s
2026-02-05 10:26:19 +07:00
Ruslan Bakiev
9db56c5edc
feat(schema): add bounds filtering to list endpoints
...
Build Docker Image / build (push) Successful in 1m16s
Add west, south, east, north params to:
- hubs_list
- suppliers_list
- products_list
This enables filtering by map viewport bounds for the catalog.
2026-01-26 21:35:20 +07:00
Ruslan Bakiev
ca01a91019
Add integration tests for nearestOffers with hubUuid parameter
Build Docker Image / build (push) Successful in 1m18s
2026-01-26 16:37:11 +07:00
Ruslan Bakiev
17081e13e4
Fix: resolve_offer_to_hub call in resolve_route_to_coordinate (same graphene self=None bug)
Build Docker Image / build (push) Successful in 1m27s
2026-01-26 16:28:39 +07:00
Ruslan Bakiev
0c19135c49
Fix: resolve_offer_to_hub call in resolve_nearest_offers (self is None in graphene)
Build Docker Image / build (push) Successful in 1m26s
2026-01-26 16:17:27 +07:00
Ruslan Bakiev
9ff7927463
Add hubsList, suppliersList, productsList resolvers and update nearestOffers
...
Build Docker Image / build (push) Successful in 1m24s
- Add hubsList resolver for paginated hub list
- Add suppliersList resolver for paginated supplier list
- Add productsList resolver for paginated product list
- Update nearestOffers to support hubUuid parameter with route calculation
- Add OfferWithRouteType for offers with embedded routes
- Add supplier_name to OfferNodeType
2026-01-26 13:55:02 +07:00
Ruslan Bakiev
81f86b6538
Fix nodes_count query bind_vars - only add bounds when present
Build Docker Image / build (push) Successful in 1m16s
2026-01-25 22:01:54 +07:00
Ruslan Bakiev
2e7f5e7863
Fix nodes query bind_vars - only add bounds when all coordinates present
Build Docker Image / build (push) Successful in 1m16s
2026-01-25 21:54:22 +07:00
Ruslan Bakiev
64f7e4bdba
Fix GraphQL types - add distance_km field
...
Build Docker Image / build (push) Successful in 1m17s
- Add distance_km field to NodeType (used by nearestHubs)
- Add distance_km field to OfferNodeType (used by nearestOffers)
- Expand SupplierType with name, latitude, longitude, distance_km
- Fix nearestSuppliers to return full supplier info from nodes collection
- Fix nearestHubs and nearestOffers to pass distance_km to constructors
This fixes 8 failed integration tests for nearest* endpoints.
Resolves: Cannot query field 'distanceKm' on type 'NodeType/OfferNodeType'
2026-01-25 21:33:12 +07:00
Ruslan Bakiev
40f7f66f83
Add comprehensive tests for all geo GraphQL endpoints
...
Build Docker Image / build (push) Successful in 1m22s
Created test suite covering all 8 main geo service endpoints:
- Basic: products, nodes (with filters/bounds), clusteredNodes
- Nearest: nearestHubs, nearestOffers, nearestSuppliers (with product filters)
- Routing: routeToCoordinate, autoRoute, railRoute
- Edge cases: invalid coordinates, zero radius, nonexistent UUIDs
Test suite uses real API calls to production GraphQL endpoint.
16 tests total across 4 test classes.
Files:
- tests/test_graphql_endpoints.py: Main test suite (600+ lines)
- tests/README.md: Documentation and usage guide
- pytest.ini: Pytest configuration
- run_tests.sh: Convenience script to run tests
- pyproject.toml: Added pytest and requests as dev dependencies
2026-01-25 21:12:59 +07:00
Ruslan Bakiev and Claude Sonnet 4.5
56df2ab37b
Fix OfferNodeType initialization error
...
Build Docker Image / build (push) Successful in 1m19s
Remove supplier_name field from OfferNodeType constructor in resolve_nearest_offers - this field does not exist in the type definition and causes 400 errors.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-25 20:49:22 +07:00
Ruslan Bakiev
5363b113cf
Merge geo-nearest-endpoints - add coordinate-based API endpoints
Build Docker Image / build (push) Successful in 1m18s
2026-01-25 17:10:55 +07:00
Ruslan Bakiev
46c87c7caa
Add coordinate-based nearest endpoints to geo API
...
- Add nearestHubs(lat, lon, radius, productUuid?) - hubs near coordinates
- Add nearestOffers(lat, lon, radius, productUuid?) - offers near coordinates
- Add nearestSuppliers(lat, lon, radius, productUuid?) - suppliers near coordinates
- Add routeToCoordinate(offerUuid, lat, lon) - route from offer to coordinates
These unified endpoints work with coordinates instead of UUIDs, simplifying
the frontend logic by removing the need for entity-specific queries like
GetProductsNearHub, GetHubsNearOffer, etc.
2026-01-25 17:10:32 +07:00
Ruslan Bakiev
27b05cf362
Add bounds filtering to nodes query for map-based selection
Build Docker Image / build (push) Successful in 1m10s
2026-01-24 12:13:29 +07:00
Ruslan Bakiev
e342d68197
Add suppliersForProduct and hubsForProduct queries for cascading filters
Build Docker Image / build (push) Successful in 1m14s
2026-01-24 11:54:24 +07:00
Ruslan Bakiev
3a24f4a9cd
Fix supplier query - aggregate through offers
...
Build Docker Image / build (push) Successful in 1m21s
Only show suppliers that have active offers.
2026-01-23 11:23:54 +07:00
Ruslan Bakiev
0106c84daf
Add offers_count field to ProductType
Build Docker Image / build (push) Successful in 1m16s
2026-01-22 17:22:05 +07:00
Ruslan Bakiev
596bdbf1c5
Add node_type parameter to clusteredNodes for unified server-side clustering
Build Docker Image / build (push) Successful in 1m31s
2026-01-16 17:29:42 +07:00
Ruslan Bakiev
07f89ba5fb
refactor(geo): Clean up queries - rename offers_to_hub to offers_by_hub, add offer_to_hub
...
Build Docker Image / build (push) Successful in 1m24s
- Remove find_routes, find_product_routes, delivery_to_hub queries
- Rename offers_to_hub → offers_by_hub with proper phase-based routing (auto → rail* → auto)
- Add offer_to_hub query for single offer to hub connection
- Both new queries use Dijkstra-like search with transport phases
2026-01-16 16:54:00 +07:00
Ruslan Bakiev
5112f52722
Fix _build_routes call in deliveryToHub
Build Docker Image / build (push) Successful in 1m18s
2026-01-16 16:03:26 +07:00
Ruslan Bakiev
339db65514
Fix resolve_offers_to_hub to use DISTANCE() instead of graph traversal
Build Docker Image / build (push) Successful in 1m23s
2026-01-16 15:56:25 +07:00
Ruslan Bakiev
b6f9b2d70b
Replace graph traversal queries with DISTANCE() queries
...
Build Docker Image / build (push) Successful in 1m53s
- Add new resolvers: products, offersByProduct, hubsNearOffer, suppliers,
productsBySupplier, offersBySupplierProduct, productsNearHub, offersToHub, deliveryToHub
- Remove broken queries that caused OOM on 234k edges
- Use DISTANCE() for geographic proximity instead of graph traversal
2026-01-16 15:39:55 +07:00
Ruslan Bakiev
a3b0b5ff79
Use supplier_uuid instead of team_uuid in findSupplierProductHubs
Build Docker Image / build (push) Successful in 1m27s
2026-01-16 10:50:16 +07:00
Ruslan Bakiev
6084333704
Fix findSupplierProductHubs: use team_uuid instead of supplier_uuid
Build Docker Image / build (push) Successful in 1m39s
2026-01-16 10:35:17 +07:00
Ruslan Bakiev
8f1e3be129
Trigger deploy for catalog navigation queries
Build Docker Image / build (push) Successful in 1m26s
2026-01-16 10:13:40 +07:00