{"ref":"capability:frontend-boundary","page":"/capabilities/frontend-boundary","json":"/capabilities/frontend-boundary.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"frontend-boundary","name":"Frontend boundary","domain":"ui-and-frontend-bridge","ecosystems":["cap"],"universal":true,"description":"Connecting a separately hosted frontend to an application service: authentication, routing, access to backend systems, user identity propagation and tenant isolation across the hosting boundary.","short":"Connecting a separately hosted frontend to an application service","core_coverage":{"state":"core-only","what_core_does":"cds add vue and cds add react scaffold a starter frontend; cds add app-frontend wires the SAP BTP Application Frontend service; cds add ias or cds add xsuaa picks an authentication mode.","where_it_stops":"It stops at frontends the platform hosts. Everything the paved road provides — routing, token exchange, tenant resolution — comes from the Application Frontend service, so a frontend hosted anywhere else takes all of it back on: authenticating against XSUAA or IAS from outside, replacing the approuter, reaching destinations, and keeping tenants apart under edge caching.","sources":[{"url":"https://cap.cloud.sap/docs/guides/uis/vue-react","title":"Vue.js and React UIs","checked":"2026-08-31","quote":"cds add vue --into catalog ... cds add react --into catalog"}],"assessed_at":"2026-08-31"},"gap":{"open_since":"2026-08-01","note":"The paved road assumes the platform hosts the frontend. The Vercel partnership points directly off it, and nothing on that path is solved yet."},"history":[{"date":"2026-08-31","field":"core_coverage.state","from":"unmapped","to":"left-open-on-purpose","reason":"capire documents cds add vue/react, cds add app-frontend and the BTP Application Frontend service. The claim that every piece is hand-rolled was wrong; the gap is narrower and sits off-platform."},{"date":"2026-08-31","field":"core_coverage.state","from":"left-open-on-purpose","to":"core-and-community","reason":"States renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately."},{"date":"2026-10-17","field":"description","from":"Exposing a CAP service to a frontend that does not live inside BTP. Authenticating an externally-hosted app against an XSUAA or IAS-protected service, what replaces the approuter when the frontend is on a CDN, destinations from outside BTP, principal propagation, and multitenancy under edge caching.","to":"Connecting a separately hosted frontend to an application service: authentication, routing, access to backend systems, user identity propagation and tenant isolation across the hosting boundary.","reason":"Keep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit."},{"date":"2026-10-26","field":"core_coverage.state, core_coverage.relationship","from":"core-and-community (narrow-by-design)","to":"core-only (relationship removed)","reason":"Reassessed against the graph (check:capabilities): both providers of this capability are sap-official, so no artifact of another origin is present behind the door; the schema allows relationship only on a core-and-community block."}],"drafted_with_ai":true,"framing_by_ecosystem":{"cap":{"description":"Exposing a CAP service to a frontend that does not live inside BTP. Authenticating an externally-hosted app against an XSUAA or IAS-protected service, what replaces the approuter when the frontend is on a CDN, destinations from outside BTP, principal propagation, and multitenancy under edge caching."}}},"sap_delivery":{"door":"cap","all":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-appfront-cli","name":"@sap/appfront-cli","json":"/artifacts/sap-appfront-cli.json"}]},"by_flavor":{"node":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-appfront-cli","name":"@sap/appfront-cli","json":"/artifacts/sap-appfront-cli.json"}]},"java":null}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:sap-appfront-cli","name":"@sap/appfront-cli","json":"/artifacts/sap-appfront-cli.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json","ecosystem":"cap","origin_ring":"sap-official"}],"samples":[],"explained_by":[{"ref":"content:devtoberfest-2026-inbox-to-quotation-react-cap","name":"From Inbox to Quotation: An AI-Assisted Sales Workbench in React on SAP CAP","json":"/content/devtoberfest-2026-inbox-to-quotation-react-cap.json"},{"ref":"content:cap-cors-and-custom-headers","name":"CAP, CORS and custom headers","json":"/content/cap-cors-and-custom-headers.json"}],"normative_context":[]}}