SampleSampletypeA worked example you read or clone. Evidence: it demonstrates, it never provides.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →Starting point

xtravels

A travel-booking application built on the master data that xflights publishes, composing another package's schema into its own rather than owning master data itself.

npm install then cds watch starts it at localhost:4004, consuming @capire/xflights-data either from GitHub Packages or from a local npm workspace set up alongside the xflights source. It demonstrates cross-repository CAP composition end to end: booking entities defined here, flight and airport entities imported from elsewhere, mashed into one CDS model.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Demonstrates
Reference appsCAPReference appscapabilityA whole application to read rather than a snippet to copy — somewhere to see how the pieces sit together once there are more than three of them.Service integrationCAPService integrationcapabilityUsing a service that runs somewhere else as if it were one of your own: its API imported into the model, a proxy that turns a local query into the remote protocol, and a mock that stands in for it on a laptop. Distinct from [destinations](capability:destinations), which is how the address and the credentials are found, and from [replication](capability:replication), which is holding the data locally.Service compositionCAPService compositioncapabilityBuilding one solution out of parts other projects published: a reuse package brings its models, code, initial data and texts into your project through npm or Maven, you serve what you reference and extend what you import, and the same modules deploy as one application or as several on a shared database. Distinct from [service integration](capability:service-integration), which reaches a service that stays deployed elsewhere, and from [tenant extensibility](capability:tenant-extensibility), which is a subscriber extending a running SaaS.Agent toolingCAPAgent toolingcapabilityBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.Serve your application over MCPCAPServe your application over MCPcapabilityExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through [service integration](capability:service-integration), connecting its exposed contract with [agent access to your systems](capability:agent-systems-access). Development assistance belongs to [agent access to your code](capability:agent-code-access).

Who is behind it

Capire Docs & SamplesCapire Docs & SamplesOrganisationMaintains this
In the atlas: maintains 20, wrote 1
@capire
maintainerChristian GeorgiPersonContributes to this
In the atlas: maintains 1, contributes to 53
@chgeo
Daniel HutzelPersonContributes to this
In the atlas: contributes to 32, wrote 3
@danjoa
Daniel SchlachterPersonContributes to this
In the atlas: contributes to 10, wrote 9
@DanSchlachter
Johannes VogelPersonContributes to this
In the atlas: contributes to 25
@johannes-vogel
Nick JosipovicPersonContributes to this
In the atlas: contributes to 4, wrote 1
@nkaputnik
PaulPersonContributes to this
In the atlas: contributes to 12
@PDT42
René JeglinskyPersonContributes to this
In the atlas: contributes to 20
@renejeglinsky
Simon EngelPersonContributes to this
In the atlas: contributes to 14, wrote 4
@SirSimon04
sjvansPersonContributes to this
In the atlas: contributes to 45
@sjvans
Stefan RudiPersonContributes to this
In the atlas: contributes to 13, wrote 5
@stefanrudi
12 contributors

What it declares

Every artifact

Type
Sample
Origin
By SAP

As a sample

Form
does not say

Connections5

Learn more2

Readings
  1. CAP in the age of AI #5 - agents wrap-upDJ Adams, Johannes Vogt, Simon Engel, Stefan Rudi, Daniel Schlachter, YouTube — SAP Developers playlists
  2. CAP-level Data FederationSAP Developers, YouTube — SAP Developers playlists

ArchitectureBetaRead from the sample's deployment descriptor. Some of the connections it states are not drawn yet.

as mta.yaml states it at 9ccb46d, read
SAP BTP, Cloud Foundry Runtimecapire.xtravelsmta.yaml, module xtravels-app-deployer, requires srv-apisrv-apixtravels-srv, nodejsxtravels-srvxtravels-app-deployer, com.sap.application.contentxtravels-app-deployerxtravels-db-deployer, hdbxtravels-db-deployertravel-processor, html5travel-processorhana, hana, hdi-sharedhanaSAP Authorization and Trust Management service, xsuaa, applicationSAP Authorizationand TrustManagement serviceSAP Destination service, destination, liteSAP DestinationserviceSAP Application Frontend service, app-front, developerSAP ApplicationFrontend serviceSAP AI Core, aicore, extendedSAP AI Core
SAPnot SAP's, or the project's ownstated in the document

Bound, and not drawn

Bound in the descriptor, not joined to an entry

hana

README

quoted from capire/xtravels under Apache-2.0, read
capire/xtravels/readme.mdOn GitHub

@capire/xtravels

A travel booking application using master data provided by capire/xflights.

Get it

git clone https://github.com/capire/xtravels
cd xtravels
npm install

The package has dependencies to other @capire packages, including @capire/xflights-data, that can be pulled from GitHub Packages or from a local workspace setup as follows...

Using GitHub Packages

Reuse packages among the capire samples are published to the GitHub Packages registry, which requires you to npm login once like that:

npm login --scope=@capire --registry=https://npm.pkg.github.com

When prompted for a password enter a Personal Access Token (classic) with read:packages scope. Learn more about that in Authenticating to GitHub Packages.

A successfull npm login adds entries like that to your local ~/.npmrc file, which allow you to npm install @capire packages subsequently using npm add or npm install as usual:

@capire:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=<generated token>
Using Workspaces

Alternatively you can work with related packages in local workspace setups like so:

  1. Create a workspace root, e.g. at cap/samples:

    mkdir -p cap/samples && cd cap/samples
    echo '{"workspaces":["*","*/apis/*"]}' > package.json
  2. Add related projects:

    git clone https://github.com/capire/xtravels
    git clone https://github.com/capire/xflights
    git clone https://github.com/capire/common
    git clone https://github.com/capire/s4
  3. Install dependencies:

    npm install

This will install all dependencies of all cloned projects, with cross dependencies between them being symlinked automatically by npm install. We can inspect this using npm list:

npm ls @capire/xflights-data

... which should display something like this:

samples@ ~/cap/samples
├── @capire/xflights-data@0.1.5 -> ./xflights/apis/data-service
└─┬ @capire/xtravels@1.0.0 -> ./xtravels
  └── @capire/xflights-data@0.1.5 deduped -> ./xflights/apis/data-service

Run it

cds watch

Which should print something like that:

...
[cds] - server listening on { url: 'http://localhost:4114' }
[cds] - server v9.4.0 launched in 444 ms
[cds] - [ terminate with ^C ]

Cmd-click the http://localhost:4114 link in the terminal to open the app in a browser.

Additional Examples

For more (extensive) examples, have a look at the readme file in the xmpls folder.

License

Copyright (c) 2022 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.

Apache-2.0, read

Details

Sources3
Added by handdiscovered herechecked
github.com/capire/xtravelstree, pushes, contributors, CIchecked
readme.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaAdded by hand
first seen in the atlas
ecosystem and domaincap, learning-and-reference
Contributors12
History in the atlas2
  1. plus agent-tooling and mcp-servers
  2. First seen.
For your agent
Ref
artifact:capire-xtravels
JSON
/artifacts/capire-xtravels.json
MCP
Connecting an agent