Open sergiimk opened 8 months ago
How about all HTTP-based APIs we separate by /protocol
prefix:
/graphql
/odf/v1/:account/:dataset/blocks/head
/odata/v3/$metadata
All other APIs (e.g. FlightSQL
) will exist on distinct ports.
To preserve nice concise URLs:
kamu login frontend.opendatafabric.net
odf+https://node.opendatafabric.net/odf/
frontend.opendatafabric.net
that resolves to above URLkamu push my.dataset frontend.opendatafabric.net
becomes a push to odf+https://node.opendatafabric.net/odf/my.account/my.dataset/push
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.
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:
/{account}/{dataset}
as a root-level endpoint is for the node, as perhaps we can achieve this URL brevity and convenience for users through some additional level of indirection that happens under the hood./v1/
into path for upgradeability