Destination Anywhere
The REST client for SAP BTP developers.
Why Destination Anywhere?You're coding in VS Code, you need to test an API call against your BTP backend, and suddenly you're out of your editor — opening the BTP cockpit to look up a destination URL, switching to Postman to craft the request, grabbing a bearer token from another tool, and hoping it's still valid by the time you paste it in. Every round-trip breaks your flow. Destination Anywhere keeps you where you already are. Type No cockpit. No Postman. No token juggling. Just your editor.
From Install to First RequestHere's what happens the first time you open the extension — no setup guide needed, the sidebar walks you through it. 1. You're not logged in yetOpen the Destination Anywhere panel in the sidebar. If you're not logged in to Cloud Foundry, the extension tells you immediately and offers a one-click login button.
2. Log in without leaving VS CodeClick Login with CF Tools and the CF sign-in form opens right inside VS Code. Enter your SSO passcode or credentials — no terminal needed.
3. No Destination Service? No problem.
When you open the sidebar, the extension scans your CF space for any existing If no instance exists, the sidebar shows a "Create Destination Service instance…" link. Click it and the extension creates a
4. Browse your destinationsAfter provisioning, your BTP destinations appear in the sidebar tree. Each destination shows its type (Internet / OnPremise) and authentication method. Right-click any destination to insert a sample request into your
5. Inspect destination detailsWant to see what a destination resolves to? Click Destination Info and a panel opens showing the resolved URL, authentication type, proxy settings, and all configuration properties — with sensitive values masked.
Mobile Services (
|
| Mode | How it works | When to use |
|---|---|---|
| Router app (recommended) | One-click deploy of a lightweight Express app to your CF space. It uses SAP Cloud SDK to tunnel requests through Cloud Connector. XSUAA authentication is enforced. View the source code → | No local Cloud Connector or VPN. |
| Direct mode | Sends requests directly to the destination URL using resolved credentials. | Local Cloud Connector or VPN can reach the backend. |
Deploy the router from the sidebar: expand BTP Destinations, and click Deploy On-Premise Router. The extension provisions Connectivity and XSUAA service instances automatically.
Key Features
| Feature | What it does |
|---|---|
dest:// protocol |
Route requests through SAP BTP subaccount destinations. The extension resolves the real URL and injects authentication headers (Basic, OAuth2, SAML, Principal Propagation) automatically. |
mdk:// protocol |
Send requests through SAP Mobile Services App Router. Authenticate once via browser, then fire OData requests against MDK app destinations. |
| Sidebar panel | Browse all BTP destinations and Mobile Services apps in a tree view. Right-click to insert a sample request or view destination details. |
| On-premise routing | Access on-premise systems behind Cloud Connector. Deploy a lightweight router app to your CF space with one click — or use direct mode with a local Cloud Connector / VPN. |
| Variables & environments | Define @var = value in your file, use .env files, or configure per-environment variable sets in settings. Switch environments from the Command Palette. |
| Syntax highlighting | Dedicated .dest language with a TextMate grammar — methods, URLs, dest:// / mdk:// schemes, headers, variables, and JSON bodies are all highlighted. |
| CodeLens | Click "▶ Send Request" above any request block. Or press Cmd+Alt+R. |
| Smart autocomplete | HTTP methods, common headers, content types, and dest:// / mdk:// URL snippets. |
| Response panel | Status code (color-coded), response time, size, headers table, and pretty-printed body with JSON syntax highlighting and XML indentation. Copy body to clipboard in one click. |
| CF guard | Detects CF CLI installation and login state before making any BTP calls. Offers one-click login via CF Tools or a terminal fallback. Log out from the sidebar title bar. |
| Auto-provisioning | No Destination Service instance? The extension creates one for you (lite plan). Service keys are created and rotated as needed. |
| Caching | Resolved destinations, service credentials, and OAuth tokens are cached with configurable TTL. Clear everything with one command. |
Commands
All commands are available in the Command Palette (Cmd+Shift+P / Ctrl+Shift+P):
| Command | Description |
|---|---|
Destination Anywhere: Send Request |
Send the request under the cursor |
Destination Anywhere: Switch Environment |
Change the active variable environment |
Destination Anywhere: Clear Destination Cache |
Purge all cached destinations, credentials, and tokens |
Destination Anywhere: Login to Cloud Foundry |
Open CF login via CF Tools or terminal |
Destination Anywhere: Logout from Cloud Foundry |
Log out from CF and clear all cached credentials |
Destination Anywhere: Login to Mobile Services |
Authenticate with SAP Mobile Services via browser |
Destination Anywhere: Open Destinations Panel |
Focus the sidebar tree view |
Destination Anywhere: Create Destination Service instance |
Create a Destination Service lite instance in the current CF space |
Destination Anywhere: Deploy On-Premise Router |
Deploy the Express-based router app for on-premise connectivity |
Destination Anywhere: Uninstall On-Premise Router |
Remove the router app and its service instances |
Keyboard shortcut: Cmd+Alt+R / Ctrl+Alt+R → Send Request
Configuration
| Setting | Default | Description |
|---|---|---|
destinationAnywhere.timeout |
30000 |
Request timeout (ms) |
destinationAnywhere.followRedirects |
true |
Follow HTTP redirects |
destinationAnywhere.rejectUnauthorized |
true |
Reject unauthorized SSL certificates |
destinationAnywhere.defaultHeaders |
{} |
Headers included in every request |
destinationAnywhere.environmentVariables |
{} |
Per-environment variable sets |
destinationAnywhere.activeEnvironment |
"" |
Currently active environment |
destinationAnywhere.destinationServiceUrl |
"" |
Manual Destination Service URL override (auto-discovered by default) |
destinationAnywhere.mobileServicesUrl |
"" |
Manual Mobile Services URL override |
destinationAnywhere.destinationCacheTTL |
300 |
Destination cache TTL (seconds) |
destinationAnywhere.logLevel |
"info" |
Log level: off, error, warn, info, debug |
Requirements
- VS Code 1.87+
- CF CLI — for
dest://andmdk://features (install guide) - SAP BTP subaccount
Plain HTTP requests (
https://...) work without CF CLI or any SAP services.
License
See LICENSE for details.