SAP-samples/recap2026-cap-level-data-federation

26 errors, 34 warningsmain

60 issues need attention.

26 errors and 34 warnings in the paths between 31 routes and 11 tables.

ROUTE FINDINGS31 of 31 · 7/7 rules
ROUTES
31
TABLES
11
FILES READ
22
RULES RUN
7/7

60 findings

  • GET /odata/v4/admin/FlightConnections can reach FlightConnections without authenticating.

    auth-before-dataGET /odata/v4/admin/FlightConnections → FlightConnections

  • POST /odata/v4/admin/FlightConnections can reach FlightConnections without authenticating.

    auth-before-dataPOST /odata/v4/admin/FlightConnections → FlightConnections

  • PATCH /odata/v4/admin/FlightConnections can reach FlightConnections without authenticating.

    auth-before-dataPATCH /odata/v4/admin/FlightConnections → FlightConnections

  • DELETE /odata/v4/admin/FlightConnections can reach FlightConnections without authenticating.

    auth-before-dataDELETE /odata/v4/admin/FlightConnections → FlightConnections

  • GET /odata/v4/admin/Flights can reach Flights without authenticating.

    auth-before-dataGET /odata/v4/admin/Flights → Flights

  • POST /odata/v4/admin/Flights can reach Flights without authenticating.

    auth-before-dataPOST /odata/v4/admin/Flights → Flights

  • PATCH /odata/v4/admin/Flights can reach Flights without authenticating.

    auth-before-dataPATCH /odata/v4/admin/Flights → Flights

  • DELETE /odata/v4/admin/Flights can reach Flights without authenticating.

    auth-before-dataDELETE /odata/v4/admin/Flights → Flights

  • GET /odata/v4/admin/Airlines can reach Airlines without authenticating.

    auth-before-dataGET /odata/v4/admin/Airlines → Airlines

  • POST /odata/v4/admin/Airlines can reach Airlines without authenticating.

    auth-before-dataPOST /odata/v4/admin/Airlines → Airlines

  • PATCH /odata/v4/admin/Airlines can reach Airlines without authenticating.

    auth-before-dataPATCH /odata/v4/admin/Airlines → Airlines

  • DELETE /odata/v4/admin/Airlines can reach Airlines without authenticating.

    auth-before-dataDELETE /odata/v4/admin/Airlines → Airlines

  • GET /odata/v4/admin/Airports can reach Airports without authenticating.

    auth-before-dataGET /odata/v4/admin/Airports → Airports

  • POST /odata/v4/admin/Airports can reach Airports without authenticating.

    auth-before-dataPOST /odata/v4/admin/Airports → Airports

  • PATCH /odata/v4/admin/Airports can reach Airports without authenticating.

    auth-before-dataPATCH /odata/v4/admin/Airports → Airports

  • DELETE /odata/v4/admin/Airports can reach Airports without authenticating.

    auth-before-dataDELETE /odata/v4/admin/Airports → Airports

  • GET /odata/v4/admin/Supplements can reach Supplements without authenticating.

    auth-before-dataGET /odata/v4/admin/Supplements → Supplements

  • POST /odata/v4/admin/Supplements can reach Supplements without authenticating.

    auth-before-dataPOST /odata/v4/admin/Supplements → Supplements

  • PATCH /odata/v4/admin/Supplements can reach Supplements without authenticating.

    auth-before-dataPATCH /odata/v4/admin/Supplements → Supplements

  • DELETE /odata/v4/admin/Supplements can reach Supplements without authenticating.

    auth-before-dataDELETE /odata/v4/admin/Supplements → Supplements

  • GET /odata/v4/travel/Travels can reach Travels without authenticating.

    auth-before-dataGET /odata/v4/travel/Travels → Travels

  • POST /odata/v4/travel/Travels can reach Travels without authenticating.

    auth-before-dataPOST /odata/v4/travel/Travels → Travels

  • PATCH /odata/v4/travel/Travels can reach Travels without authenticating.

    auth-before-dataPATCH /odata/v4/travel/Travels → Travels

  • DELETE /odata/v4/travel/Travels can reach Travels without authenticating.

    auth-before-dataDELETE /odata/v4/travel/Travels → Travels

  • GET /odata/v4/travel/TravelAgencies can reach TravelAgencies without authenticating.

    auth-before-dataGET /odata/v4/travel/TravelAgencies → TravelAgencies

  • GET /odata/v4/travel/Passengers can reach Passengers without authenticating.

    auth-before-dataGET /odata/v4/travel/Passengers → Passengers

  • GET /odata/v4/admin/FlightConnections has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/admin/FlightConnections has no validator or rate limiter attached.

    public-entry-guarded

  • PATCH /odata/v4/admin/FlightConnections has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /odata/v4/admin/FlightConnections has no validator or rate limiter attached.

    public-entry-guarded

  • GET /odata/v4/admin/Flights has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/admin/Flights has no validator or rate limiter attached.

    public-entry-guarded

  • PATCH /odata/v4/admin/Flights has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /odata/v4/admin/Flights has no validator or rate limiter attached.

    public-entry-guarded

  • GET /odata/v4/admin/Airlines has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/admin/Airlines has no validator or rate limiter attached.

    public-entry-guarded

  • PATCH /odata/v4/admin/Airlines has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /odata/v4/admin/Airlines has no validator or rate limiter attached.

    public-entry-guarded

  • GET /odata/v4/admin/Airports has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/admin/Airports has no validator or rate limiter attached.

    public-entry-guarded

  • PATCH /odata/v4/admin/Airports has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /odata/v4/admin/Airports has no validator or rate limiter attached.

    public-entry-guarded

  • GET /odata/v4/admin/Supplements has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/admin/Supplements has no validator or rate limiter attached.

    public-entry-guarded

  • PATCH /odata/v4/admin/Supplements has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /odata/v4/admin/Supplements has no validator or rate limiter attached.

    public-entry-guarded

  • GET /odata/v4/travel/Travels has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/travel/Travels has no validator or rate limiter attached.

    public-entry-guarded

  • PATCH /odata/v4/travel/Travels has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /odata/v4/travel/Travels has no validator or rate limiter attached.

    public-entry-guarded

  • GET /odata/v4/travel/TravelAgencies has no validator or rate limiter attached.

    public-entry-guarded

  • GET /odata/v4/travel/Currencies has no validator or rate limiter attached.

    public-entry-guarded

  • GET /odata/v4/travel/Passengers has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/travel/deductDiscount has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/travel/acceptTravel has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/travel/rejectTravel has no validator or rate limiter attached.

    public-entry-guarded

  • POST /odata/v4/travel/reopenTravel has no validator or rate limiter attached.

    public-entry-guarded

  • Bookings is not connected to anything.

    no-orphan-datastore

  • TravelStatus is not connected to anything.

    no-orphan-datastore

  • SupplementTypes is not connected to anything.

    no-orphan-datastore

Part of this repository was not read, so this report is incomplete. Unread: ws/xtravels/srv/travel-service.cds, ws/xtravels/srv/travel-service.cds, ws/xtravels/srv/travel-service.cds.

Free account, no card. The repository opens as an editable graph.

Add this check to the README

wyro architecture badge
[![wyro architecture](https://wyro.in/api/badge/SAP-samples/recap2026-cap-level-data-federation)](https://wyro.in/scan/SAP-samples/recap2026-cap-level-data-federation)

It updates itself whenever the repository changes and links back to this report.

What this is

Wyro reads the repository’s routes and data models and checks the paths between them: whether a route can reach a table without passing a guard, whether a datastore holding personal data is exposed to a public read, whether an endpoint that issues credentials requires the credentials it issues.

It is rule-based, not a model. The same commit produces the same result every time, and it does not guess at business rules it cannot see. A rule with nothing to look at is reported as not having run — never as a pass.

This check runs on public source through GitHub’s own API and needs no account. A free account adds the editable architecture canvas, private repositories on paid plans, and a CI gate. No card required.

SAP-samples/recap2026-cap-level-data-federation — 60 architecture findings | Wyro