Customize Routing Profiles
WARNING: This subskill cannot be run independently. It must be invoked from the
routing-customizationrouter. It only updates the config file -- it does NOT restart services or rebuild routing graphs. The router handles service restarts, graph rebuilding, MAP_CONFIG updates, and Function Tester redeployment in Steps 4-6 after this subskill completes.
Configure which routing profiles are available in your Routing Solution.
Prerequisites
- Active Snowflake connection
- OpenRouteService Native App deployed
Input Parameters
<REGION_NAME>: Target region name selected by user (e.g., "SanFrancisco", "NewYork", "London")
Available Profiles
| Profile | Category | Description |
|---|---|---|
driving-car |
Driving | Standard passenger vehicles |
driving-hgv |
Driving | Heavy goods vehicles (trucks) |
cycling-regular |
Cycling | Standard bicycles |
cycling-road |
Cycling | Road/racing bicycles |
cycling-mountain |
Cycling | Mountain bikes |
cycling-electric |
Cycling | Electric bicycles |
foot-walking |
Foot | Standard walking |
foot-hiking |
Foot | Hiking trails |
wheelchair |
Wheelchair | Wheelchair accessible routes |
Error Logging
Follow the Error Logging convention in AGENTS.md. Log file prefix:
routing-customization.
Workflow
Step 1: Get User Preferences
Goal: Determine which profiles to enable/disable
Actions:
Ask user what changes they want:
- "Which profiles do you want to ENABLE?" (list any currently disabled)
- "Which profiles do you want to DISABLE?" (list any currently enabled)
Warn about resource impact:
- More profiles = longer graph build time
- More profiles = more memory usage
- Default (car, cycling-electric) covers most use cases
Output: User selections recorded
Step 2: Update Configuration
Goal: Write new ors-config.yml to the region's stage using the WRITE_ORS_CONFIG stored procedure
Actions:
Option A - For new cities provisioned via the Cities tab UI: Profile selection is built into the RegionBuilder UI. Users select routing profile checkboxes before clicking Deploy. No manual config editing needed.
Option B - For the default (San Francisco) instance or existing cities:
Determine the PBF filename for the region (e.g.,
SanFrancisco.osm.pbf)Call the WRITE_ORS_CONFIG procedure to generate and upload the config:
CALL OPENROUTESERVICE_APP.CORE.WRITE_ORS_CONFIG( '<REGION_NAME>', '<PBF_FILENAME>', 'driving-car,driving-hgv,cycling-electric' -- comma-separated list of profiles to ENABLE );This generates a complete
ors-config.ymlwith only the specified profiles enabled and uploads it to@CORE.ORS_SPCS_STAGE/<REGION_NAME>/ors-config.yml.
Option C - Manual editing (fallback):
Edit
.cortex/skills/install-fleet-apps/openrouteservice_app/staged_files/ors-config.yml:- For each profile, set
enabled: trueorenabled: false - Update
source_fileto match the region's PBF filename
- For each profile, set
Upload modified file:
snow stage copy .cortex/skills/install-fleet-apps/openrouteservice_app/staged_files/ors-config.yml @OPENROUTESERVICE_APP.CORE.ORS_SPCS_STAGE/<REGION_NAME>/ --connection <ACTIVE_CONNECTION> --overwrite
Output: Configuration updated with new profiles
Return to Router
After completing all steps in this subskill, return to the routing-customization router and continue from Step 4: Update Routing Graphs. This subskill does NOT restart services or rebuild graphs -- the router handles that.
Error Handling
| Issue | Solution |
|---|---|
WRITE_ORS_CONFIG not found |
App needs upgrade. Upload latest setup_script.sql and run ALTER APPLICATION ... UPGRADE |
| Config file not found locally | Re-download from stage: snow stage copy @OPENROUTESERVICE_APP.CORE.ORS_SPCS_STAGE/<REGION_NAME>/ors-config.yml .cortex/skills/install-fleet-apps/openrouteservice_app/staged_files/ --connection <ACTIVE_CONNECTION> --overwrite |
| Stage upload fails | Verify WRITE privilege on stage and correct --connection value |
| Profile name typo | Use exact names from Available Profiles table above |
Stopping Points
- ✋ After Step 1: Confirm user selections before modifying config