69 Commits
Author SHA1 Message Date
Ruslan Bakiev 7da13c895d Provision configured Geo database
Build and deploy Docker image / build (push) Successful in 31s
2026-08-20 17:33:17 +07:00
Ruslan Bakiev f2c2f7f99f Use provisioned Geo database
Build and deploy Docker image / build (push) Successful in 47s
2026-08-20 17:30:25 +07:00
Ruslan Bakiev 32f7e480e3 Restore Africa navigation graph
Build and deploy Docker image / build (push) Successful in 1m18s
2026-08-20 17:23:31 +07:00
Ruslan Bakiev e0cd782ec5 ci: deploy through Earth Dokploy
Build and deploy Docker image / build (push) Successful in 56s
2026-08-19 18:24:29 +07:00
Ruslan Bakiev 639e43621f Enrich geo products from exchange catalog
Build and deploy Docker image / build (push) Successful in 1m43s
2026-06-11 21:38:16 +07:00
Ruslan Bakiev 9aed152765 Seed geo catalog images
Build and deploy Docker image / build (push) Successful in 1m35s
2026-06-11 15:34:10 +07:00
Ruslan Bakiev 41cc2d7886 Seed multimodal demo geo graph
Build and deploy Docker image / build (push) Successful in 1m17s
2026-06-08 07:30:27 +07:00
Ruslan Bakiev 489f6dbf81 Connect demo geo catalog graph
Build and deploy Docker image / build (push) Successful in 1m27s
2026-06-07 14:09:31 +07:00
Ruslan Bakiev 38972ebce7 Fix demo seed runtime
Build and deploy Docker image / build (push) Successful in 1m43s
2026-06-07 11:09:56 +07:00
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 BakievandClaude 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