feast icon indicating copy to clipboard operation
feast copied to clipboard

Feast UI: URL scheme "postgresql" is not supported when specifying SQL registry in `projects-list.json`

Open TomSteenbergen opened this issue 11 months ago • 5 comments

Expected Behavior

The UI created using a custom React app with a SQL registry shows the entities, feature views, etc. per project.

Current Behavior

It is unclear how to specify the registryPath in your projects-list.json file. The structure of this file could definitely benefit from some more documentation.

While the Feast UI does spin up and shows the project names and descriptions from the projects-list.json on the homepage, it does not load and visualize the corresponding Feast objects when clicking on one of these projects, even though the registry does contain that data (see screenshot).

image

The browser console shows the following error:

Fetch API cannot load postgresql://postgres:test@db:5432/feast. URL scheme "postgresql" is not supported.

The part postgresql://postgres:test@db:5432/feast is the connection string to my SQL registry that I created through docker-compose and that I pass in projects-list.json under the registryPath key.

Is a SQL registry is not supported yet by the UI? Or did I format registryPath incorrectly?

Steps to reproduce

  1. Follow steps from the docs to create a React app.
  2. Add your projects-list.json to the public directory. My file looked like this:
{
  "projects": [
    {
      "name": "Project 1",
      "description": "Description 1.",
      "id": "project_1",
      "registryPath": "postgresql://postgres:test@db:5432/feast"
    },
    {
      "name": "Project 2",
      "description": "Description 2.",
      "id": "project_2",
      "registryPath": "postgresql://postgres:test@db:5432/feast"
    }
  ]
}
  1. Start a Postgres database using the following docker-compose.yml
version: "3"
services:
  db:
    restart: always
    image: postgres:16-alpine
    ports:
      - "5432:5432"
    networks:
      - backend
    volumes:
      - ~/feast_postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=feast
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=test
networks:
  backend:
    driver: bridge

volumes:
  feast_postgres_data: null
  1. Run yarn start.

Specifications

  • Version: 0.35.0
  • Platform: MacOS
  • Subsystem: Sonoma 14.2

Possible Solution

More documentation on setting up the UI would be very much welcome.

TomSteenbergen avatar Feb 28 '24 09:02 TomSteenbergen

Hey @TomSteenbergen thanks for raising your issue. My initial suspicion is that the postgres protocol isn't supported for UI's registryPath, so we're looking into this to confirm. Should this be the case, we'll take a look at a docs update to better specify possible values there &, if appropriate based on findings, potentially open another issue to consider supporting the protocol as a feature request. We'll keep you posted here.

jeremyary avatar Mar 04 '24 17:03 jeremyary

Currently registryPath parameters supports only a file location or url value.

Will add a note in the reference documentation mentioning that.

tmihalac avatar Mar 05 '24 16:03 tmihalac

Currently registryPath parameters supports only a file location or url value.

@tmihalac Thanks for confirming! Do you happen to know whether support for a SQL registry is somewhere on the roadmap?

TomSteenbergen avatar Mar 07 '24 08:03 TomSteenbergen

@TomSteenbergen I feel we're still working on our community roadmap & I can't unilaterally say with certainty, but I can share that there's been interest outside of your own expressed in seeing SQL-based registry/offline/online followed up so I'd think it's likely to be explored.

jeremyary avatar Mar 07 '24 12:03 jeremyary

We recently added grpc registry server in #3924. The intention for it was to be used from go and java servers, but i guess it could be a solution in here as well... if someone figures out a way to call grpc from the browser :) and get the registry proto from there.

tokoko avatar Mar 19 '24 05:03 tokoko