kamu-data / kamu-node

Back-end implementation of the Open Data Fabric protocol
https://kamu.dev
Other
13 stars 2 forks source link

Better URL / routing design #53

Open sergiimk opened 8 months ago

sergiimk commented 8 months ago

For kamu-web-ui we designed a nice routing scheme that maximally avoids collisions between /{account}/{dataset} paths and other application endpoints.

As the set of supported protocols grows we are facing the same issue in kamu-node, where endpoints like /query introduce ambiguity with accounts.

We want to get this under control and avoid the chance of collisions.

We should:

sergiimk commented 8 months ago

How about all HTTP-based APIs we separate by /protocol prefix:

All other APIs (e.g. FlightSQL) will exist on distinct ports.

To preserve nice concise URLs:

It's unclear how to handle kamu pull odf+https://frontend.opendatafabric.net/my.account/my.dataset. This would likely require frontend to understand that ODF protocol is requested and redirect user to the node URL.